| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/ui/webui/print_preview/extension_printer_handler.h" | 5 #include "chrome/browser/ui/webui/print_preview/extension_printer_handler.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 for (const auto& extension : registry->enabled_extensions()) { | 336 for (const auto& extension : registry->enabled_extensions()) { |
| 337 const UsbPrinterManifestData* manifest_data = | 337 const UsbPrinterManifestData* manifest_data = |
| 338 UsbPrinterManifestData::Get(extension.get()); | 338 UsbPrinterManifestData::Get(extension.get()); |
| 339 if (!manifest_data || !HasUsbPrinterProviderPermissions(extension.get())) | 339 if (!manifest_data || !HasUsbPrinterProviderPermissions(extension.get())) |
| 340 continue; | 340 continue; |
| 341 | 341 |
| 342 const extensions::DevicePermissions* device_permissions = | 342 const extensions::DevicePermissions* device_permissions = |
| 343 permissions_manager->GetForExtension(extension->id()); | 343 permissions_manager->GetForExtension(extension->id()); |
| 344 for (const auto& device : devices) { | 344 for (const auto& device : devices) { |
| 345 if (manifest_data->SupportsDevice(device)) { | 345 if (manifest_data->SupportsDevice(device)) { |
| 346 extensions::UsbDevicePermission::CheckParam param( | 346 std::unique_ptr<extensions::UsbDevicePermission::CheckParam> param = |
| 347 device->vendor_id(), device->product_id(), | 347 extensions::UsbDevicePermission::CheckParam::ForUsbDevice( |
| 348 extensions::UsbDevicePermissionData::UNSPECIFIED_INTERFACE); | 348 extension.get(), device.get()); |
| 349 if (device_permissions->FindUsbDeviceEntry(device) || | 349 if (device_permissions->FindUsbDeviceEntry(device) || |
| 350 extension->permissions_data()->CheckAPIPermissionWithParam( | 350 extension->permissions_data()->CheckAPIPermissionWithParam( |
| 351 extensions::APIPermission::kUsbDevice, ¶m)) { | 351 extensions::APIPermission::kUsbDevice, param.get())) { |
| 352 // Skip devices the extension already has permission to access. | 352 // Skip devices the extension already has permission to access. |
| 353 continue; | 353 continue; |
| 354 } | 354 } |
| 355 | 355 |
| 356 printer_list.Append( | 356 printer_list.Append( |
| 357 DictionaryBuilder() | 357 DictionaryBuilder() |
| 358 .Set("id", GenerateProvisionalUsbPrinterId(extension.get(), | 358 .Set("id", GenerateProvisionalUsbPrinterId(extension.get(), |
| 359 device.get())) | 359 device.get())) |
| 360 .Set("name", | 360 .Set("name", |
| 361 DevicePermissionsManager::GetPermissionMessage( | 361 DevicePermissionsManager::GetPermissionMessage( |
| 362 device->vendor_id(), device->product_id(), | 362 device->vendor_id(), device->product_id(), |
| 363 device->manufacturer_string(), | 363 device->manufacturer_string(), |
| 364 device->product_string(), base::string16(), false)) | 364 device->product_string(), base::string16(), false)) |
| 365 .Set("extensionId", extension->id()) | 365 .Set("extensionId", extension->id()) |
| 366 .Set("extensionName", extension->name()) | 366 .Set("extensionName", extension->name()) |
| 367 .Set("provisional", true) | 367 .Set("provisional", true) |
| 368 .Build()); | 368 .Build()); |
| 369 } | 369 } |
| 370 } | 370 } |
| 371 } | 371 } |
| 372 | 372 |
| 373 DCHECK_GT(pending_enumeration_count_, 0); | 373 DCHECK_GT(pending_enumeration_count_, 0); |
| 374 pending_enumeration_count_--; | 374 pending_enumeration_count_--; |
| 375 callback.Run(*printer_list.Build().get(), pending_enumeration_count_ == 0); | 375 callback.Run(*printer_list.Build().get(), pending_enumeration_count_ == 0); |
| 376 } | 376 } |
| OLD | NEW |