Chromium Code Reviews| 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( |