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

Unified Diff: chrome/browser/ui/webui/print_preview/extension_printer_handler.cc

Issue 1163743002: Revert of Include USB printers in printer list as "provisional" devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/print_preview/extension_printer_handler.cc
diff --git a/chrome/browser/ui/webui/print_preview/extension_printer_handler.cc b/chrome/browser/ui/webui/print_preview/extension_printer_handler.cc
index 3021dcf223cb7727660e2b5e7707661de1899168..3236e3ecda46426e5261994ef313b501b8fbc0f7 100644
--- a/chrome/browser/ui/webui/print_preview/extension_printer_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/extension_printer_handler.cc
@@ -18,29 +18,12 @@
#include "chrome/browser/local_discovery/pwg_raster_converter.h"
#include "components/cloud_devices/common/cloud_device_description.h"
#include "components/cloud_devices/common/printer_description.h"
-#include "device/core/device_client.h"
-#include "device/usb/usb_device.h"
-#include "device/usb/usb_service.h"
-#include "extensions/browser/api/device_permissions_manager.h"
#include "extensions/browser/api/printer_provider/printer_provider_api.h"
#include "extensions/browser/api/printer_provider/printer_provider_api_factory.h"
#include "extensions/browser/api/printer_provider/printer_provider_print_job.h"
-#include "extensions/browser/extension_registry.h"
-#include "extensions/common/api/printer_provider/usb_printer_manifest_data.h"
-#include "extensions/common/permissions/permissions_data.h"
-#include "extensions/common/permissions/usb_device_permission.h"
-#include "extensions/common/permissions/usb_device_permission_data.h"
-#include "extensions/common/value_builder.h"
#include "printing/pdf_render_settings.h"
#include "printing/pwg_raster_settings.h"
-using device::UsbDevice;
-using extensions::DevicePermissionsManager;
-using extensions::DictionaryBuilder;
-using extensions::Extension;
-using extensions::ExtensionRegistry;
-using extensions::ListBuilder;
-using extensions::UsbPrinterManifestData;
using local_discovery::PWGRasterConverter;
namespace {
@@ -83,14 +66,6 @@
callback);
}
-bool HasUsbPrinterProviderPermissions(const Extension* extension) {
- return extension->permissions_data() &&
- extension->permissions_data()->HasAPIPermission(
- extensions::APIPermission::kPrinterProvider) &&
- extension->permissions_data()->HasAPIPermission(
- extensions::APIPermission::kUsb);
-}
-
} // namespace
ExtensionPrinterHandler::ExtensionPrinterHandler(
@@ -107,34 +82,11 @@
void ExtensionPrinterHandler::Reset() {
// TODO(tbarzic): Keep track of pending request ids issued by |this| and
// cancel them from here.
- pending_enumeration_count_ = 0;
weak_ptr_factory_.InvalidateWeakPtrs();
}
void ExtensionPrinterHandler::StartGetPrinters(
const PrinterHandler::GetPrintersCallback& callback) {
- // Assume that there can only be one printer enumeration occuring at once.
- DCHECK_EQ(pending_enumeration_count_, 0);
- pending_enumeration_count_ = 1;
-
- bool extension_supports_usb_printers = false;
- ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_);
- for (const auto& extension : registry->enabled_extensions()) {
- if (UsbPrinterManifestData::Get(extension.get()) &&
- HasUsbPrinterProviderPermissions(extension.get())) {
- extension_supports_usb_printers = true;
- break;
- }
- }
-
- if (extension_supports_usb_printers) {
- device::UsbService* service = device::DeviceClient::Get()->GetUsbService();
- pending_enumeration_count_++;
- service->GetDevices(
- base::Bind(&ExtensionPrinterHandler::OnUsbDevicesEnumerated,
- weak_ptr_factory_.GetWeakPtr(), callback));
- }
-
extensions::PrinterProviderAPIFactory::GetInstance()
->GetForBrowserContext(browser_context_)
->DispatchGetPrintersRequested(
@@ -240,11 +192,7 @@
const PrinterHandler::GetPrintersCallback& callback,
const base::ListValue& printers,
bool done) {
- DCHECK_GT(pending_enumeration_count_, 0);
- if (done)
- pending_enumeration_count_--;
-
- callback.Run(printers, pending_enumeration_count_ == 0);
+ callback.Run(printers, done);
}
void ExtensionPrinterHandler::WrapGetCapabilityCallback(
@@ -260,54 +208,3 @@
const std::string& status) {
callback.Run(success, status);
}
-
-void ExtensionPrinterHandler::OnUsbDevicesEnumerated(
- const PrinterHandler::GetPrintersCallback& callback,
- const std::vector<scoped_refptr<UsbDevice>>& devices) {
- ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_);
- DevicePermissionsManager* permissions_manager =
- DevicePermissionsManager::Get(browser_context_);
-
- ListBuilder printer_list;
-
- for (const auto& extension : registry->enabled_extensions()) {
- const UsbPrinterManifestData* manifest_data =
- UsbPrinterManifestData::Get(extension.get());
- if (!manifest_data || !HasUsbPrinterProviderPermissions(extension.get()))
- continue;
-
- const extensions::DevicePermissions* device_permissions =
- permissions_manager->GetForExtension(extension->id());
- for (const auto& device : devices) {
- if (manifest_data->SupportsDevice(device)) {
- extensions::UsbDevicePermission::CheckParam param(
- device->vendor_id(), device->product_id(),
- extensions::UsbDevicePermissionData::UNSPECIFIED_INTERFACE);
- if (device_permissions->FindUsbDeviceEntry(device) ||
- extension->permissions_data()->CheckAPIPermissionWithParam(
- extensions::APIPermission::kUsbDevice, &param)) {
- // Skip devices the extension already has permission to access.
- continue;
- }
-
- printer_list.Append(
- DictionaryBuilder()
- .Set("id", base::StringPrintf("provisional-usb:%s:%u",
- extension->id().c_str(),
- device->unique_id()))
- .Set("name",
- DevicePermissionsManager::GetPermissionMessage(
- device->vendor_id(), device->product_id(),
- device->manufacturer_string(),
- device->product_string(), base::string16(), false))
- .Set("extensionId", extension->id())
- .Set("extensionName", extension->name())
- .Set("provisional", true));
- }
- }
- }
-
- DCHECK_GT(pending_enumeration_count_, 0);
- pending_enumeration_count_--;
- callback.Run(*printer_list.Build().get(), pending_enumeration_count_ == 0);
-}

Powered by Google App Engine
This is Rietveld 408576698