| 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 a499f4745d42efcb5eb97d4b3f1f726e635a1c6e..5becb91995beb07698a26cb716922aeb5b152ba6 100644
|
| --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| @@ -709,13 +709,18 @@ void PrintPreviewHandler::HandleGetPrivetPrinterCapabilities(
|
|
|
| void PrintPreviewHandler::HandleGetExtensionPrinters(
|
| const base::ListValue* args) {
|
| + std::string callback_id;
|
| + CHECK(args->GetString(0, &callback_id));
|
| + CHECK(!callback_id.empty());
|
| +
|
| + AllowJavascript();
|
| EnsureExtensionPrinterHandlerSet();
|
| // Make sure all in progress requests are canceled before new printer search
|
| // starts.
|
| extension_printer_handler_->Reset();
|
| extension_printer_handler_->StartGetPrinters(
|
| base::Bind(&PrintPreviewHandler::OnGotPrintersForExtension,
|
| - weak_factory_.GetWeakPtr()));
|
| + weak_factory_.GetWeakPtr(), callback_id));
|
| }
|
|
|
| void PrintPreviewHandler::HandleGrantExtensionPrinterAccess(
|
| @@ -1735,10 +1740,15 @@ void PrintPreviewHandler::EnsureExtensionPrinterHandlerSet() {
|
| }
|
|
|
| void PrintPreviewHandler::OnGotPrintersForExtension(
|
| + const std::string& callback_id,
|
| const base::ListValue& printers,
|
| bool done) {
|
| - web_ui()->CallJavascriptFunctionUnsafe("onExtensionPrintersAdded", printers,
|
| - base::Value(done));
|
| + AllowJavascript();
|
| +
|
| + FireWebUIListener("extension-printers-added", printers);
|
| + if (done) {
|
| + ResolveJavascriptCallback(base::Value(callback_id), base::Value(true));
|
| + }
|
| }
|
|
|
| void PrintPreviewHandler::OnGotExtensionPrinterInfo(
|
|
|