Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3197)

Unified Diff: chrome/browser/ui/webui/print_preview/print_preview_handler.cc

Issue 2919693002: Print Preview: Change getPrinters to cr.sendWithPromise (Closed)
Patch Set: Address comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 fba7d030cbe994b591e1a75813efc958445ddacc..710dcd915401134262bb52b84f40a2a6b6f3bacc 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -661,10 +661,17 @@ printing::PrinterBackendProxy* PrintPreviewHandler::printer_backend_proxy() {
return printer_backend_proxy_.get();
}
-void PrintPreviewHandler::HandleGetPrinters(const base::ListValue* /*args*/) {
+void PrintPreviewHandler::HandleGetPrinters(const base::ListValue* args) {
VLOG(1) << "Enumerate printers start";
- printer_backend_proxy()->EnumeratePrinters(base::Bind(
- &PrintPreviewHandler::SetupPrinterList, weak_factory_.GetWeakPtr()));
+ std::string callback_id;
+ CHECK(args->GetString(0, &callback_id));
+ CHECK(!callback_id.empty());
+
+ AllowJavascript();
+
+ printer_backend_proxy()->EnumeratePrinters(
+ base::Bind(&PrintPreviewHandler::SetupPrinterList,
+ weak_factory_.GetWeakPtr(), callback_id));
}
void PrintPreviewHandler::HandleGetPrivetPrinters(const base::ListValue* args) {
@@ -1325,6 +1332,7 @@ void PrintPreviewHandler::SendPrinterSetup(
}
void PrintPreviewHandler::SetupPrinterList(
+ const std::string& callback_id,
const printing::PrinterList& printer_list) {
base::ListValue printers;
PrintersToValues(printer_list, &printers);
@@ -1337,7 +1345,7 @@ void PrintPreviewHandler::SetupPrinterList(
has_logged_printers_count_ = true;
}
- web_ui()->CallJavascriptFunctionUnsafe("setPrinters", printers);
+ ResolveJavascriptCallback(base::Value(callback_id), printers);
}
void PrintPreviewHandler::SendCloudPrintEnabled() {

Powered by Google App Engine
This is Rietveld 408576698