| 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 0f0bde1698ffb13967aaf4c507c063f10e8e190e..fba7d030cbe994b591e1a75813efc958445ddacc 100644
|
| --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| @@ -1208,11 +1208,18 @@ void PrintPreviewHandler::GetNumberFormatAndMeasurementSystem(
|
| }
|
|
|
| void PrintPreviewHandler::HandleGetInitialSettings(
|
| - const base::ListValue* /*args*/) {
|
| + const base::ListValue* args) {
|
| + std::string callback_id;
|
| + CHECK(args->GetString(0, &callback_id));
|
| + CHECK(!callback_id.empty());
|
| +
|
| + AllowJavascript();
|
| +
|
| // Send before SendInitialSettings() to allow cloud printer auto select.
|
| SendCloudPrintEnabled();
|
| - printer_backend_proxy()->GetDefaultPrinter(base::Bind(
|
| - &PrintPreviewHandler::SendInitialSettings, weak_factory_.GetWeakPtr()));
|
| + printer_backend_proxy()->GetDefaultPrinter(
|
| + base::Bind(&PrintPreviewHandler::SendInitialSettings,
|
| + weak_factory_.GetWeakPtr(), callback_id));
|
| }
|
|
|
| void PrintPreviewHandler::HandleForceOpenNewTab(const base::ListValue* args) {
|
| @@ -1228,6 +1235,7 @@ void PrintPreviewHandler::HandleForceOpenNewTab(const base::ListValue* args) {
|
| }
|
|
|
| void PrintPreviewHandler::SendInitialSettings(
|
| + const std::string& callback_id,
|
| const std::string& default_printer) {
|
| base::DictionaryValue initial_settings;
|
| initial_settings.SetString(kInitiatorTitle,
|
| @@ -1262,8 +1270,7 @@ void PrintPreviewHandler::SendInitialSettings(
|
|
|
| if (print_preview_ui()->source_is_modifiable())
|
| GetNumberFormatAndMeasurementSystem(&initial_settings);
|
| - web_ui()->CallJavascriptFunctionUnsafe("setInitialSettings",
|
| - initial_settings);
|
| + ResolveJavascriptCallback(base::Value(callback_id), initial_settings);
|
| }
|
|
|
| void PrintPreviewHandler::ClosePreviewDialog() {
|
|
|