| 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" |
| 11 #include "base/callback.h" | 11 #include "base/callback.h" |
| 12 #include "base/files/file.h" | 12 #include "base/files/file.h" |
| 13 #include "base/files/file_path.h" | 13 #include "base/files/file_path.h" |
| 14 #include "base/files/file_util.h" | 14 #include "base/files/file_util.h" |
| 15 #include "base/location.h" | 15 #include "base/location.h" |
| 16 #include "base/memory/ref_counted.h" | 16 #include "base/memory/ref_counted.h" |
| 17 #include "base/memory/ref_counted_memory.h" | 17 #include "base/memory/ref_counted_memory.h" |
| 18 #include "base/strings/string_split.h" | 18 #include "base/strings/string_split.h" |
| 19 #include "base/task_runner_util.h" | 19 #include "base/task_runner_util.h" |
| 20 #include "chrome/browser/local_discovery/pwg_raster_converter.h" | 20 #include "chrome/browser/printing/pwg_raster_converter.h" |
| 21 #include "components/cloud_devices/common/cloud_device_description.h" | 21 #include "components/cloud_devices/common/cloud_device_description.h" |
| 22 #include "components/cloud_devices/common/printer_description.h" | 22 #include "components/cloud_devices/common/printer_description.h" |
| 23 #include "device/core/device_client.h" | 23 #include "device/core/device_client.h" |
| 24 #include "device/usb/usb_device.h" | 24 #include "device/usb/usb_device.h" |
| 25 #include "device/usb/usb_service.h" | 25 #include "device/usb/usb_service.h" |
| 26 #include "extensions/browser/api/device_permissions_manager.h" | 26 #include "extensions/browser/api/device_permissions_manager.h" |
| 27 #include "extensions/browser/api/printer_provider/printer_provider_api.h" | 27 #include "extensions/browser/api/printer_provider/printer_provider_api.h" |
| 28 #include "extensions/browser/api/printer_provider/printer_provider_api_factory.h
" | 28 #include "extensions/browser/api/printer_provider/printer_provider_api_factory.h
" |
| 29 #include "extensions/browser/api/printer_provider/printer_provider_print_job.h" | 29 #include "extensions/browser/api/printer_provider/printer_provider_print_job.h" |
| 30 #include "extensions/browser/extension_registry.h" | 30 #include "extensions/browser/extension_registry.h" |
| 31 #include "extensions/common/api/printer_provider/usb_printer_manifest_data.h" | 31 #include "extensions/common/api/printer_provider/usb_printer_manifest_data.h" |
| 32 #include "extensions/common/permissions/permissions_data.h" | 32 #include "extensions/common/permissions/permissions_data.h" |
| 33 #include "extensions/common/permissions/usb_device_permission.h" | 33 #include "extensions/common/permissions/usb_device_permission.h" |
| 34 #include "extensions/common/permissions/usb_device_permission_data.h" | 34 #include "extensions/common/permissions/usb_device_permission_data.h" |
| 35 #include "extensions/common/value_builder.h" | 35 #include "extensions/common/value_builder.h" |
| 36 #include "printing/pdf_render_settings.h" | 36 #include "printing/pdf_render_settings.h" |
| 37 #include "printing/pwg_raster_settings.h" | 37 #include "printing/pwg_raster_settings.h" |
| 38 | 38 |
| 39 using device::UsbDevice; | 39 using device::UsbDevice; |
| 40 using extensions::DevicePermissionsManager; | 40 using extensions::DevicePermissionsManager; |
| 41 using extensions::DictionaryBuilder; | 41 using extensions::DictionaryBuilder; |
| 42 using extensions::Extension; | 42 using extensions::Extension; |
| 43 using extensions::ExtensionRegistry; | 43 using extensions::ExtensionRegistry; |
| 44 using extensions::ListBuilder; | 44 using extensions::ListBuilder; |
| 45 using extensions::UsbPrinterManifestData; | 45 using extensions::UsbPrinterManifestData; |
| 46 using local_discovery::PWGRasterConverter; | 46 using printing::PWGRasterConverter; |
| 47 | 47 |
| 48 namespace { | 48 namespace { |
| 49 | 49 |
| 50 const char kContentTypePdf[] = "application/pdf"; | 50 const char kContentTypePdf[] = "application/pdf"; |
| 51 const char kContentTypePWGRaster[] = "image/pwg-raster"; | 51 const char kContentTypePWGRaster[] = "image/pwg-raster"; |
| 52 const char kContentTypeAll[] = "*/*"; | 52 const char kContentTypeAll[] = "*/*"; |
| 53 | 53 |
| 54 const char kInvalidDataPrintError[] = "INVALID_DATA"; | 54 const char kInvalidDataPrintError[] = "INVALID_DATA"; |
| 55 const char kInvalidTicketPrintError[] = "INVALID_TICKET"; | 55 const char kInvalidTicketPrintError[] = "INVALID_TICKET"; |
| 56 | 56 |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 permissions_manager->AllowUsbDevice(extension_id, device); | 247 permissions_manager->AllowUsbDevice(extension_id, device); |
| 248 | 248 |
| 249 extensions::PrinterProviderAPIFactory::GetInstance() | 249 extensions::PrinterProviderAPIFactory::GetInstance() |
| 250 ->GetForBrowserContext(browser_context_) | 250 ->GetForBrowserContext(browser_context_) |
| 251 ->DispatchGetUsbPrinterInfoRequested( | 251 ->DispatchGetUsbPrinterInfoRequested( |
| 252 extension_id, device, | 252 extension_id, device, |
| 253 base::Bind(&ExtensionPrinterHandler::WrapGetPrinterInfoCallback, | 253 base::Bind(&ExtensionPrinterHandler::WrapGetPrinterInfoCallback, |
| 254 weak_ptr_factory_.GetWeakPtr(), callback)); | 254 weak_ptr_factory_.GetWeakPtr(), callback)); |
| 255 } | 255 } |
| 256 | 256 |
| 257 void ExtensionPrinterHandler::SetPwgRasterConverterForTesting( | 257 void ExtensionPrinterHandler::SetPWGRasterConverterForTesting( |
| 258 scoped_ptr<local_discovery::PWGRasterConverter> pwg_raster_converter) { | 258 scoped_ptr<PWGRasterConverter> pwg_raster_converter) { |
| 259 pwg_raster_converter_ = std::move(pwg_raster_converter); | 259 pwg_raster_converter_ = std::move(pwg_raster_converter); |
| 260 } | 260 } |
| 261 | 261 |
| 262 void ExtensionPrinterHandler::ConvertToPWGRaster( | 262 void ExtensionPrinterHandler::ConvertToPWGRaster( |
| 263 const scoped_refptr<base::RefCountedMemory>& data, | 263 const scoped_refptr<base::RefCountedMemory>& data, |
| 264 const cloud_devices::CloudDeviceDescription& printer_description, | 264 const cloud_devices::CloudDeviceDescription& printer_description, |
| 265 const cloud_devices::CloudDeviceDescription& ticket, | 265 const cloud_devices::CloudDeviceDescription& ticket, |
| 266 const gfx::Size& page_size, | 266 const gfx::Size& page_size, |
| 267 scoped_ptr<extensions::PrinterProviderPrintJob> job, | 267 scoped_ptr<extensions::PrinterProviderPrintJob> job, |
| 268 const ExtensionPrinterHandler::PrintJobCallback& callback) { | 268 const ExtensionPrinterHandler::PrintJobCallback& callback) { |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 .Set("extensionName", extension->name()) | 365 .Set("extensionName", extension->name()) |
| 366 .Set("provisional", true))); | 366 .Set("provisional", true))); |
| 367 } | 367 } |
| 368 } | 368 } |
| 369 } | 369 } |
| 370 | 370 |
| 371 DCHECK_GT(pending_enumeration_count_, 0); | 371 DCHECK_GT(pending_enumeration_count_, 0); |
| 372 pending_enumeration_count_--; | 372 pending_enumeration_count_--; |
| 373 callback.Run(*printer_list.Build().get(), pending_enumeration_count_ == 0); | 373 callback.Run(*printer_list.Build().get(), pending_enumeration_count_ == 0); |
| 374 } | 374 } |
| OLD | NEW |