| OLD | NEW |
| 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 "extensions/browser/api/device_permissions_prompt.h" | 5 #include "extensions/browser/api/device_permissions_prompt.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/i18n/message_formatter.h" | 10 #include "base/i18n/message_formatter.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 callback_.Run(devices); | 123 callback_.Run(devices); |
| 124 callback_.Reset(); | 124 callback_.Reset(); |
| 125 } | 125 } |
| 126 | 126 |
| 127 // device::UsbService::Observer implementation: | 127 // device::UsbService::Observer implementation: |
| 128 void OnDeviceAdded(scoped_refptr<UsbDevice> device) override { | 128 void OnDeviceAdded(scoped_refptr<UsbDevice> device) override { |
| 129 if (!(filters_.empty() || UsbDeviceFilter::MatchesAny(device, filters_))) { | 129 if (!(filters_.empty() || UsbDeviceFilter::MatchesAny(device, filters_))) { |
| 130 return; | 130 return; |
| 131 } | 131 } |
| 132 | 132 |
| 133 scoped_ptr<DeviceInfo> device_info(new UsbDeviceInfo(device)); | 133 std::unique_ptr<DeviceInfo> device_info(new UsbDeviceInfo(device)); |
| 134 device->CheckUsbAccess( | 134 device->CheckUsbAccess( |
| 135 base::Bind(&UsbDevicePermissionsPrompt::AddCheckedDevice, this, | 135 base::Bind(&UsbDevicePermissionsPrompt::AddCheckedDevice, this, |
| 136 base::Passed(&device_info))); | 136 base::Passed(&device_info))); |
| 137 } | 137 } |
| 138 | 138 |
| 139 void OnDeviceRemoved(scoped_refptr<UsbDevice> device) override { | 139 void OnDeviceRemoved(scoped_refptr<UsbDevice> device) override { |
| 140 for (auto it = devices_.begin(); it != devices_.end(); ++it) { | 140 for (auto it = devices_.begin(); it != devices_.end(); ++it) { |
| 141 const UsbDeviceInfo* entry = | 141 const UsbDeviceInfo* entry = |
| 142 static_cast<const UsbDeviceInfo*>((*it).get()); | 142 static_cast<const UsbDeviceInfo*>((*it).get()); |
| 143 if (entry->device() == device) { | 143 if (entry->device() == device) { |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 } | 236 } |
| 237 DCHECK(multiple() || devices.size() <= 1); | 237 DCHECK(multiple() || devices.size() <= 1); |
| 238 callback_.Run(devices); | 238 callback_.Run(devices); |
| 239 callback_.Reset(); | 239 callback_.Reset(); |
| 240 } | 240 } |
| 241 | 241 |
| 242 // device::HidService::Observer implementation: | 242 // device::HidService::Observer implementation: |
| 243 void OnDeviceAdded(scoped_refptr<device::HidDeviceInfo> device) override { | 243 void OnDeviceAdded(scoped_refptr<device::HidDeviceInfo> device) override { |
| 244 if (HasUnprotectedCollections(device) && | 244 if (HasUnprotectedCollections(device) && |
| 245 (filters_.empty() || HidDeviceFilter::MatchesAny(device, filters_))) { | 245 (filters_.empty() || HidDeviceFilter::MatchesAny(device, filters_))) { |
| 246 scoped_ptr<DeviceInfo> device_info(new HidDeviceInfo(device)); | 246 std::unique_ptr<DeviceInfo> device_info(new HidDeviceInfo(device)); |
| 247 #if defined(OS_CHROMEOS) | 247 #if defined(OS_CHROMEOS) |
| 248 chromeos::PermissionBrokerClient* client = | 248 chromeos::PermissionBrokerClient* client = |
| 249 chromeos::DBusThreadManager::Get()->GetPermissionBrokerClient(); | 249 chromeos::DBusThreadManager::Get()->GetPermissionBrokerClient(); |
| 250 DCHECK(client) << "Could not get permission broker client."; | 250 DCHECK(client) << "Could not get permission broker client."; |
| 251 device::HidDeviceInfoLinux* linux_device_info = | 251 device::HidDeviceInfoLinux* linux_device_info = |
| 252 static_cast<device::HidDeviceInfoLinux*>(device.get()); | 252 static_cast<device::HidDeviceInfoLinux*>(device.get()); |
| 253 client->CheckPathAccess( | 253 client->CheckPathAccess( |
| 254 linux_device_info->device_node(), | 254 linux_device_info->device_node(), |
| 255 base::Bind(&HidDevicePermissionsPrompt::AddCheckedDevice, this, | 255 base::Bind(&HidDevicePermissionsPrompt::AddCheckedDevice, this, |
| 256 base::Passed(&device_info))); | 256 base::Passed(&device_info))); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 | 336 |
| 337 void DevicePermissionsPrompt::Prompt::GrantDevicePermission(size_t index) { | 337 void DevicePermissionsPrompt::Prompt::GrantDevicePermission(size_t index) { |
| 338 DCHECK_LT(index, devices_.size()); | 338 DCHECK_LT(index, devices_.size()); |
| 339 devices_[index]->set_granted(); | 339 devices_[index]->set_granted(); |
| 340 } | 340 } |
| 341 | 341 |
| 342 DevicePermissionsPrompt::Prompt::~Prompt() { | 342 DevicePermissionsPrompt::Prompt::~Prompt() { |
| 343 } | 343 } |
| 344 | 344 |
| 345 void DevicePermissionsPrompt::Prompt::AddCheckedDevice( | 345 void DevicePermissionsPrompt::Prompt::AddCheckedDevice( |
| 346 scoped_ptr<DeviceInfo> device, | 346 std::unique_ptr<DeviceInfo> device, |
| 347 bool allowed) { | 347 bool allowed) { |
| 348 if (allowed) { | 348 if (allowed) { |
| 349 devices_.push_back(std::move(device)); | 349 devices_.push_back(std::move(device)); |
| 350 if (observer_) { | 350 if (observer_) { |
| 351 observer_->OnDevicesChanged(); | 351 observer_->OnDevicesChanged(); |
| 352 } | 352 } |
| 353 } | 353 } |
| 354 } | 354 } |
| 355 | 355 |
| 356 DevicePermissionsPrompt::DevicePermissionsPrompt( | 356 DevicePermissionsPrompt::DevicePermissionsPrompt( |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 // static | 395 // static |
| 396 scoped_refptr<DevicePermissionsPrompt::Prompt> | 396 scoped_refptr<DevicePermissionsPrompt::Prompt> |
| 397 DevicePermissionsPrompt::CreateUsbPromptForTest(const Extension* extension, | 397 DevicePermissionsPrompt::CreateUsbPromptForTest(const Extension* extension, |
| 398 bool multiple) { | 398 bool multiple) { |
| 399 return make_scoped_refptr(new UsbDevicePermissionsPrompt( | 399 return make_scoped_refptr(new UsbDevicePermissionsPrompt( |
| 400 extension, nullptr, multiple, std::vector<UsbDeviceFilter>(), | 400 extension, nullptr, multiple, std::vector<UsbDeviceFilter>(), |
| 401 base::Bind(&NoopUsbCallback))); | 401 base::Bind(&NoopUsbCallback))); |
| 402 } | 402 } |
| 403 | 403 |
| 404 } // namespace extensions | 404 } // namespace extensions |
| OLD | NEW |