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 |