| Index: chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| index 3be7765d2e09a66fba97a310db91432bb86b81ed..cd5200be7173f9251e617c083f6bb255da1fccbe 100644
|
| --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| @@ -676,6 +676,10 @@ void PrintPreviewHandler::RegisterMessages() {
|
| "getExtensionPrinterCapabilities",
|
| base::Bind(&PrintPreviewHandler::HandleGetExtensionPrinterCapabilities,
|
| base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + "grantExtensionUsbPrinterAccess",
|
| + base::Bind(&PrintPreviewHandler::HandleGrantExtensionUsbPrinterAccess,
|
| + base::Unretained(this)));
|
| RegisterForGaiaCookieChanges();
|
| }
|
|
|
| @@ -756,6 +760,22 @@ void PrintPreviewHandler::HandleGetExtensionUsbPrinters(
|
| &PrintPreviewHandler::OnGotExtensionUsbPrinters, base::Unretained(this)));
|
| }
|
|
|
| +void PrintPreviewHandler::HandleGrantExtensionUsbPrinterAccess(
|
| + const base::ListValue* args) {
|
| + std::string extension_id;
|
| + bool ok = args->GetString(0, &extension_id);
|
| + DCHECK(ok);
|
| + int device_id;
|
| + ok = args->GetInteger(1, &device_id);
|
| + DCHECK(ok);
|
| +
|
| + EnsureExtensionPrinterHandlerSet();
|
| + extension_printer_handler_->StartGrantUsbPrinterAccess(
|
| + extension_id, device_id,
|
| + base::Bind(&PrintPreviewHandler::OnGotExtensionUsbPrinterInfo,
|
| + base::Unretained(this), extension_id, device_id));
|
| +}
|
| +
|
| void PrintPreviewHandler::HandleGetExtensionPrinterCapabilities(
|
| const base::ListValue* args) {
|
| std::string printer_id;
|
| @@ -1713,6 +1733,20 @@ void PrintPreviewHandler::OnGotExtensionUsbPrinters(
|
| web_ui()->CallJavascriptFunction("onExtensionUsbPrintersAdded", printers);
|
| }
|
|
|
| +void PrintPreviewHandler::OnGotExtensionUsbPrinterInfo(
|
| + const std::string& extension_id,
|
| + int device_id,
|
| + const base::DictionaryValue& printer_info) {
|
| + if (printer_info.empty()) {
|
| + web_ui()->CallJavascriptFunction("failedToGetExtensionUsbPrinterInfo",
|
| + base::StringValue(extension_id),
|
| + base::FundamentalValue(device_id));
|
| + return;
|
| + }
|
| +
|
| + web_ui()->CallJavascriptFunction("onExtensionUsbPrinterAdded", printer_info);
|
| +}
|
| +
|
| void PrintPreviewHandler::OnGotExtensionPrinterCapabilities(
|
| const std::string& printer_id,
|
| const base::DictionaryValue& capabilities) {
|
|
|