diff options
author | Rene Ladan <rene@FreeBSD.org> | 2018-02-20 18:51:06 +0000 |
---|---|---|
committer | Rene Ladan <rene@FreeBSD.org> | 2018-02-20 18:51:06 +0000 |
commit | 2312775f8ebc90aa20f4e45bd252816e24314844 (patch) | |
tree | 34414a0b8d8a904cd0eb4023b41603862897f7c9 /www/chromium/files/patch-device_hid_hid__service__freebsd.cc | |
parent | Update to 0.9704. (diff) |
www/chromium: update to 63.0.3239.132
Submitted by: cpm
Obtained from: https://github.com/cpu82/freebsd-chromium
MFH: 2018Q1
Security: https://vuxml.freebsd.org/freebsd/e264e74e-ffe0-11e7-8b91-e8e0b747a45a.html
Security: https://vuxml.freebsd.org/freebsd/1d951e85-ffdb-11e7-8b91-e8e0b747a45a.html
Security: https://vuxml.freebsd.org/freebsd/82894193-ffd4-11e7-8b91-e8e0b747a45a.html
Security: https://vuxml.freebsd.org/freebsd/f8e72cd4-c66a-11e7-bb17-e8e0b747a45a.html
Security: https://vuxml.freebsd.org/freebsd/3cd46257-bbc5-11e7-a3bc-e8e0b747a45a.html
Security: https://vuxml.freebsd.org/freebsd/a692bffe-b6ad-11e7-a1c2-e8e0b747a45a.html
Diffstat (limited to 'www/chromium/files/patch-device_hid_hid__service__freebsd.cc')
-rw-r--r-- | www/chromium/files/patch-device_hid_hid__service__freebsd.cc | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/www/chromium/files/patch-device_hid_hid__service__freebsd.cc b/www/chromium/files/patch-device_hid_hid__service__freebsd.cc index d3e77324fcb9..34c3fb6b2340 100644 --- a/www/chromium/files/patch-device_hid_hid__service__freebsd.cc +++ b/www/chromium/files/patch-device_hid_hid__service__freebsd.cc @@ -1,6 +1,6 @@ ---- device/hid/hid_service_freebsd.cc.orig 2017-12-03 15:37:32.168519000 -0800 -+++ device/hid/hid_service_freebsd.cc 2017-12-03 15:37:32.179514000 -0800 -@@ -0,0 +1,370 @@ +--- device/hid/hid_service_freebsd.cc.orig 2018-01-26 21:53:10.804422000 +0100 ++++ device/hid/hid_service_freebsd.cc 2018-01-26 21:53:10.805522000 +0100 +@@ -0,0 +1,371 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -34,14 +34,13 @@ +#include "base/threading/thread_task_runner_handle.h" +#include "components/device_event_log/device_event_log.h" +#include "device/hid/hid_connection_freebsd.h" -+#include "device/hid/hid_device_info_freebsd.h" + +const int kMaxPermissionChecks = 5; + +namespace device { + +struct HidServiceFreeBSD::ConnectParams { -+ ConnectParams(scoped_refptr<HidDeviceInfoFreeBSD> device_info, ++ ConnectParams(scoped_refptr<HidDeviceInfo> device_info, + const ConnectCallback& callback) + : device_info(std::move(device_info)), + callback(callback), @@ -50,7 +49,7 @@ + base::CreateSequencedTaskRunnerWithTraits(kBlockingTaskTraits)) {} + ~ConnectParams() {} + -+ scoped_refptr<HidDeviceInfoFreeBSD> device_info; ++ scoped_refptr<HidDeviceInfo> device_info; + ConnectCallback callback; + scoped_refptr<base::SequencedTaskRunner> task_runner; + scoped_refptr<base::SequencedTaskRunner> blocking_task_runner; @@ -160,11 +159,10 @@ + return; + } + -+ scoped_refptr<HidDeviceInfoFreeBSD> device_info(new HidDeviceInfoFreeBSD( -+ device_id, device_node, vendor_id, product_id, product_name, -+ serial_number, -+ kHIDBusTypeUSB, -+ report_descriptor)); ++ scoped_refptr<HidDeviceInfo> device_info(new HidDeviceInfo( ++ device_id, vendor_id, product_id, product_name, serial_number, ++ device::mojom::HidBusType::kHIDBusTypeUSB, ++ report_descriptor, device_node)); + + task_runner_->PostTask(FROM_HERE, base::Bind(&HidServiceFreeBSD::AddDevice, + service_, device_info)); @@ -241,7 +239,7 @@ + devd_buffer_->data()[bytes_read] = 0; + char *data = devd_buffer_->data(); + // It may take some time for devd to change permissions -+ // on /dev/uhidX node. So do not fail immediately if ++ // on /dev/uhidX node. So do not fail immediately if + // open fail. Retry each second for kMaxPermissionChecks + // times before giving up entirely + if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) { @@ -252,7 +250,7 @@ + if (HaveReadWritePermissions(device_name)) + OnDeviceAdded(parts[0].substr(1)); + else { -+ // Do not re-add to checks ++ // Do not re-add to checks + if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) { + permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks)); + timer_->Start(FROM_HERE, base::TimeDelta::FromSeconds(1), @@ -307,6 +305,10 @@ + blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); +} + ++base::WeakPtr<HidService> HidServiceFreeBSD::GetWeakPtr() { ++ return weak_factory_.GetWeakPtr(); ++} ++ +// static +void HidServiceFreeBSD::OpenOnBlockingThread( + std::unique_ptr<ConnectParams> params) { @@ -329,19 +331,18 @@ + FinishOpen(std::move(params)); +} + -+void HidServiceFreeBSD::Connect(const HidDeviceId& device_id, ++void HidServiceFreeBSD::Connect(const std::string& device_guid, + const ConnectCallback& callback) { + DCHECK(thread_checker_.CalledOnValidThread()); + -+ const auto& map_entry = devices().find(device_id); ++ const auto& map_entry = devices().find(device_guid); + if (map_entry == devices().end()) { + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::Bind(callback, nullptr)); + return; + } + -+ scoped_refptr<HidDeviceInfoFreeBSD> device_info = -+ static_cast<HidDeviceInfoFreeBSD*>(map_entry->second.get()); ++ scoped_refptr<HidDeviceInfo> device_info = map_entry->second; + + auto params = base::MakeUnique<ConnectParams>(device_info, callback); + |