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)); |
dpapad
2017/06/07 03:20:11
Is the boolean passed here needed? It seems that w
rbpotter
2017/06/07 03:46:42
Done.
|
+ } |
} |
void PrintPreviewHandler::OnGotExtensionPrinterInfo( |