| 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 29 matching lines...) Expand all  Loading... | 
| 40 | 40 | 
| 41 namespace { | 41 namespace { | 
| 42 | 42 | 
| 43 void NoopHidCallback(const std::vector<scoped_refptr<device::HidDeviceInfo>>&) { | 43 void NoopHidCallback(const std::vector<scoped_refptr<device::HidDeviceInfo>>&) { | 
| 44 } | 44 } | 
| 45 | 45 | 
| 46 void NoopUsbCallback(const std::vector<scoped_refptr<device::UsbDevice>>&) {} | 46 void NoopUsbCallback(const std::vector<scoped_refptr<device::UsbDevice>>&) {} | 
| 47 | 47 | 
| 48 class UsbDeviceInfo : public DevicePermissionsPrompt::Prompt::DeviceInfo { | 48 class UsbDeviceInfo : public DevicePermissionsPrompt::Prompt::DeviceInfo { | 
| 49  public: | 49  public: | 
| 50   UsbDeviceInfo(scoped_refptr<UsbDevice> device) : device_(device) { | 50   explicit UsbDeviceInfo(scoped_refptr<UsbDevice> device) : device_(device) { | 
| 51     name_ = DevicePermissionsManager::GetPermissionMessage( | 51     name_ = DevicePermissionsManager::GetPermissionMessage( | 
| 52         device->vendor_id(), device->product_id(), | 52         device->vendor_id(), device->product_id(), | 
| 53         device->manufacturer_string(), device->product_string(), | 53         device->manufacturer_string(), device->product_string(), | 
| 54         base::string16(),  // Serial number is displayed separately. | 54         base::string16(),  // Serial number is displayed separately. | 
| 55         true); | 55         true); | 
| 56     serial_number_ = device->serial_number(); | 56     serial_number_ = device->serial_number(); | 
| 57   } | 57   } | 
| 58 | 58 | 
| 59   ~UsbDeviceInfo() override {} | 59   ~UsbDeviceInfo() override {} | 
| 60 | 60 | 
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 113         } | 113         } | 
| 114       } | 114       } | 
| 115     } | 115     } | 
| 116     DCHECK(multiple() || devices.size() <= 1); | 116     DCHECK(multiple() || devices.size() <= 1); | 
| 117     callback_.Run(devices); | 117     callback_.Run(devices); | 
| 118     callback_.Reset(); | 118     callback_.Reset(); | 
| 119   } | 119   } | 
| 120 | 120 | 
| 121   // device::UsbService::Observer implementation: | 121   // device::UsbService::Observer implementation: | 
| 122   void OnDeviceAdded(scoped_refptr<UsbDevice> device) override { | 122   void OnDeviceAdded(scoped_refptr<UsbDevice> device) override { | 
| 123     if (!UsbDeviceFilter::MatchesAny(device, filters_)) | 123     if (!UsbDeviceFilter::MatchesAny(*device, filters_)) | 
| 124       return; | 124       return; | 
| 125 | 125 | 
| 126     std::unique_ptr<DeviceInfo> device_info(new UsbDeviceInfo(device)); | 126     std::unique_ptr<DeviceInfo> device_info(new UsbDeviceInfo(device)); | 
| 127     device->CheckUsbAccess( | 127     device->CheckUsbAccess( | 
| 128         base::Bind(&UsbDevicePermissionsPrompt::AddCheckedDevice, this, | 128         base::Bind(&UsbDevicePermissionsPrompt::AddCheckedDevice, this, | 
| 129                    base::Passed(&device_info))); | 129                    base::Passed(&device_info))); | 
| 130   } | 130   } | 
| 131 | 131 | 
| 132   void OnDeviceRemoved(scoped_refptr<UsbDevice> device) override { | 132   void OnDeviceRemoved(scoped_refptr<UsbDevice> device) override { | 
| 133     for (auto it = devices_.begin(); it != devices_.end(); ++it) { | 133     for (auto it = devices_.begin(); it != devices_.end(); ++it) { | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 151     } | 151     } | 
| 152   } | 152   } | 
| 153 | 153 | 
| 154   std::vector<UsbDeviceFilter> filters_; | 154   std::vector<UsbDeviceFilter> filters_; | 
| 155   DevicePermissionsPrompt::UsbDevicesCallback callback_; | 155   DevicePermissionsPrompt::UsbDevicesCallback callback_; | 
| 156   ScopedObserver<UsbService, UsbService::Observer> service_observer_; | 156   ScopedObserver<UsbService, UsbService::Observer> service_observer_; | 
| 157 }; | 157 }; | 
| 158 | 158 | 
| 159 class HidDeviceInfo : public DevicePermissionsPrompt::Prompt::DeviceInfo { | 159 class HidDeviceInfo : public DevicePermissionsPrompt::Prompt::DeviceInfo { | 
| 160  public: | 160  public: | 
| 161   HidDeviceInfo(scoped_refptr<device::HidDeviceInfo> device) : device_(device) { | 161   explicit HidDeviceInfo(scoped_refptr<device::HidDeviceInfo> device) | 
|  | 162       : device_(device) { | 
| 162     name_ = DevicePermissionsManager::GetPermissionMessage( | 163     name_ = DevicePermissionsManager::GetPermissionMessage( | 
| 163         device->vendor_id(), device->product_id(), | 164         device->vendor_id(), device->product_id(), | 
| 164         base::string16(),  // HID devices include manufacturer in product name. | 165         base::string16(),  // HID devices include manufacturer in product name. | 
| 165         base::UTF8ToUTF16(device->product_name()), | 166         base::UTF8ToUTF16(device->product_name()), | 
| 166         base::string16(),  // Serial number is displayed separately. | 167         base::string16(),  // Serial number is displayed separately. | 
| 167         false); | 168         false); | 
| 168     serial_number_ = base::UTF8ToUTF16(device->serial_number()); | 169     serial_number_ = base::UTF8ToUTF16(device->serial_number()); | 
| 169   } | 170   } | 
| 170 | 171 | 
| 171   ~HidDeviceInfo() override {} | 172   ~HidDeviceInfo() override {} | 
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 379 // static | 380 // static | 
| 380 scoped_refptr<DevicePermissionsPrompt::Prompt> | 381 scoped_refptr<DevicePermissionsPrompt::Prompt> | 
| 381 DevicePermissionsPrompt::CreateUsbPromptForTest(const Extension* extension, | 382 DevicePermissionsPrompt::CreateUsbPromptForTest(const Extension* extension, | 
| 382                                                 bool multiple) { | 383                                                 bool multiple) { | 
| 383   return make_scoped_refptr(new UsbDevicePermissionsPrompt( | 384   return make_scoped_refptr(new UsbDevicePermissionsPrompt( | 
| 384       extension, nullptr, multiple, std::vector<UsbDeviceFilter>(), | 385       extension, nullptr, multiple, std::vector<UsbDeviceFilter>(), | 
| 385       base::Bind(&NoopUsbCallback))); | 386       base::Bind(&NoopUsbCallback))); | 
| 386 } | 387 } | 
| 387 | 388 | 
| 388 }  // namespace extensions | 389 }  // namespace extensions | 
| OLD | NEW | 
|---|