| Index: chrome/browser/ui/webui/print_preview/extension_printer_handler.h
|
| diff --git a/chrome/browser/ui/webui/print_preview/extension_printer_handler.h b/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
|
| index 6ea9e0184a6c755290b00e047b99d033654b9ac8..6060da769d549730f6d6715834cef2d95edc1a83 100644
|
| --- a/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
|
| +++ b/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
|
| @@ -11,6 +11,7 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "chrome/browser/ui/webui/print_preview/printer_handler.h"
|
| +#include "extensions/browser/api/printer_provider/printer_provider_api.h"
|
|
|
| namespace base {
|
| class DictionaryValue;
|
| @@ -22,10 +23,25 @@ namespace content {
|
| class BrowserContext;
|
| }
|
|
|
| +namespace cloud_devices {
|
| +class CloudDeviceDescription;
|
| +}
|
| +
|
| +namespace gfx {
|
| +class Size;
|
| +}
|
| +
|
| +namespace local_discovery {
|
| +class PWGRasterConverter;
|
| +}
|
| +
|
| // Implementation of PrinterHandler interface backed by printerProvider
|
| // extension API.
|
| class ExtensionPrinterHandler : public PrinterHandler {
|
| public:
|
| + using RefCountedMemoryCallback =
|
| + base::Callback<void(const scoped_refptr<base::RefCountedMemory>&)>;
|
| +
|
| explicit ExtensionPrinterHandler(content::BrowserContext* browser_context);
|
|
|
| ~ExtensionPrinterHandler() override;
|
| @@ -41,10 +57,29 @@ class ExtensionPrinterHandler : public PrinterHandler {
|
| void StartPrint(const std::string& destination_id,
|
| const std::string& capability,
|
| const std::string& ticket_json,
|
| + const gfx::Size& page_size,
|
| const scoped_refptr<base::RefCountedMemory>& print_data,
|
| const PrinterHandler::PrintCallback& callback) override;
|
|
|
| private:
|
| + // Converts |data| to PWG raster format (from PDF) for a printer described
|
| + // by |printer_description|.
|
| + // |callback| is called with the converted data.
|
| + void ConvertToPWGRaster(
|
| + const scoped_refptr<base::RefCountedMemory>& data,
|
| + const cloud_devices::CloudDeviceDescription& printer_description,
|
| + const std::string& ticket,
|
| + const gfx::Size& page_size,
|
| + const RefCountedMemoryCallback& callback);
|
| +
|
| + // Sets print job document data and dispatches it using printerProvider API.
|
| + // TODO(tbarzic): Move PrinterProvider::PrintJob to it's own file so it can
|
| + // be forward-declared.
|
| + void DispatchPrintJob(
|
| + const PrinterHandler::PrintCallback& callback,
|
| + scoped_ptr<extensions::PrinterProviderAPI::PrintJob> print_job,
|
| + const scoped_refptr<base::RefCountedMemory>& data);
|
| +
|
| // Methods used as wrappers to callbacks for extensions::PrinterProviderAPI
|
| // methods, primarily so the callbacks can be bound to this class' weak ptr.
|
| // They just propagate results to callbacks passed to them.
|
| @@ -62,6 +97,8 @@ class ExtensionPrinterHandler : public PrinterHandler {
|
|
|
| content::BrowserContext* browser_context_;
|
|
|
| + scoped_ptr<local_discovery::PWGRasterConverter> pwg_raster_converter_;
|
| +
|
| base::WeakPtrFactory<ExtensionPrinterHandler> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ExtensionPrinterHandler);
|
|
|