Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: device/hid/hid_service_linux.cc

Issue 523743005: Fix HidService lifetime issues (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: where did that stupid line come from Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « device/hid/hid_service_linux.h ('k') | device/hid/hid_service_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "device/hid/hid_service_linux.h" 5 #include "device/hid/hid_service_linux.h"
6 6
7 #include <linux/hidraw.h> 7 #include <linux/hidraw.h>
8 #include <sys/ioctl.h> 8 #include <sys/ioctl.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 23 matching lines...) Expand all
34 namespace { 34 namespace {
35 35
36 const char kHidrawSubsystem[] = "hidraw"; 36 const char kHidrawSubsystem[] = "hidraw";
37 const char kHIDID[] = "HID_ID"; 37 const char kHIDID[] = "HID_ID";
38 const char kHIDName[] = "HID_NAME"; 38 const char kHIDName[] = "HID_NAME";
39 const char kHIDUnique[] = "HID_UNIQ"; 39 const char kHIDUnique[] = "HID_UNIQ";
40 40
41 } // namespace 41 } // namespace
42 42
43 HidServiceLinux::HidServiceLinux( 43 HidServiceLinux::HidServiceLinux(
44 scoped_refptr<base::MessageLoopProxy> ui_message_loop) 44 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
45 : ui_message_loop_(ui_message_loop), 45 : ui_task_runner_(ui_task_runner),
46 weak_factory_(this) { 46 weak_factory_(this) {
47 DeviceMonitorLinux* monitor = DeviceMonitorLinux::GetInstance(); 47 DeviceMonitorLinux* monitor = DeviceMonitorLinux::GetInstance();
48 monitor->AddObserver(this); 48 monitor->AddObserver(this);
49 monitor->Enumerate( 49 monitor->Enumerate(
50 base::Bind(&HidServiceLinux::OnDeviceAdded, weak_factory_.GetWeakPtr())); 50 base::Bind(&HidServiceLinux::OnDeviceAdded, weak_factory_.GetWeakPtr()));
51 } 51 }
52 52
53 scoped_refptr<HidConnection> HidServiceLinux::Connect( 53 scoped_refptr<HidConnection> HidServiceLinux::Connect(
54 const HidDeviceId& device_id) { 54 const HidDeviceId& device_id) {
55 HidDeviceInfo device_info; 55 HidDeviceInfo device_info;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 #if defined(OS_CHROMEOS) 125 #if defined(OS_CHROMEOS)
126 // ChromeOS builds on non-ChromeOS machines (dev) should not attempt to 126 // ChromeOS builds on non-ChromeOS machines (dev) should not attempt to
127 // use permission broker. 127 // use permission broker.
128 if (base::SysInfo::IsRunningOnChromeOS()) { 128 if (base::SysInfo::IsRunningOnChromeOS()) {
129 chromeos::PermissionBrokerClient* client = 129 chromeos::PermissionBrokerClient* client =
130 chromeos::DBusThreadManager::Get()->GetPermissionBrokerClient(); 130 chromeos::DBusThreadManager::Get()->GetPermissionBrokerClient();
131 DCHECK(client) << "Could not get permission broker client."; 131 DCHECK(client) << "Could not get permission broker client.";
132 if (!client) { 132 if (!client) {
133 return; 133 return;
134 } 134 }
135 ui_message_loop_->PostTask( 135 ui_task_runner_->PostTask(
136 FROM_HERE, 136 FROM_HERE,
137 base::Bind(&chromeos::PermissionBrokerClient::RequestPathAccess, 137 base::Bind(&chromeos::PermissionBrokerClient::RequestPathAccess,
138 base::Unretained(client), 138 base::Unretained(client),
139 dev_node, 139 dev_node,
140 -1, 140 -1,
141 base::Bind(&HidServiceLinux::OnRequestAccessComplete, 141 base::Bind(&HidServiceLinux::OnRequestAccessComplete,
142 weak_factory_.GetWeakPtr(), 142 weak_factory_.GetWeakPtr(),
143 dev_node, 143 dev_node,
144 base::Passed(&device_info)))); 144 base::Passed(&device_info))));
145 } else { 145 } else {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 report_descriptor.GetDetails(&device_info->collections, 192 report_descriptor.GetDetails(&device_info->collections,
193 &device_info->has_report_id, 193 &device_info->has_report_id,
194 &device_info->max_input_report_size, 194 &device_info->max_input_report_size,
195 &device_info->max_output_report_size, 195 &device_info->max_output_report_size,
196 &device_info->max_feature_report_size); 196 &device_info->max_feature_report_size);
197 197
198 AddDevice(*device_info); 198 AddDevice(*device_info);
199 } 199 }
200 200
201 } // namespace device 201 } // namespace device
OLDNEW
« no previous file with comments | « device/hid/hid_service_linux.h ('k') | device/hid/hid_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698