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

Side by Side Diff: chrome/browser/ui/webui/print_preview/print_preview_handler.cc

Issue 2606043004: Perform printer setup on Chrome OS before selecting printer. (Closed)
Patch Set: address comments, fix tests Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/print_preview/print_preview_handler.h" 5 #include "chrome/browser/ui/webui/print_preview/print_preview_handler.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 web_ui()->RegisterMessageCallback("getPreview", 563 web_ui()->RegisterMessageCallback("getPreview",
564 base::Bind(&PrintPreviewHandler::HandleGetPreview, 564 base::Bind(&PrintPreviewHandler::HandleGetPreview,
565 base::Unretained(this))); 565 base::Unretained(this)));
566 web_ui()->RegisterMessageCallback("print", 566 web_ui()->RegisterMessageCallback("print",
567 base::Bind(&PrintPreviewHandler::HandlePrint, 567 base::Bind(&PrintPreviewHandler::HandlePrint,
568 base::Unretained(this))); 568 base::Unretained(this)));
569 web_ui()->RegisterMessageCallback( 569 web_ui()->RegisterMessageCallback(
570 "getPrinterCapabilities", 570 "getPrinterCapabilities",
571 base::Bind(&PrintPreviewHandler::HandleGetPrinterCapabilities, 571 base::Bind(&PrintPreviewHandler::HandleGetPrinterCapabilities,
572 base::Unretained(this))); 572 base::Unretained(this)));
573 web_ui()->RegisterMessageCallback(
574 "setupPrinter", base::Bind(&PrintPreviewHandler::HandlePrinterSetup,
575 base::Unretained(this)));
573 #if BUILDFLAG(ENABLE_BASIC_PRINT_DIALOG) 576 #if BUILDFLAG(ENABLE_BASIC_PRINT_DIALOG)
574 web_ui()->RegisterMessageCallback("showSystemDialog", 577 web_ui()->RegisterMessageCallback("showSystemDialog",
575 base::Bind(&PrintPreviewHandler::HandleShowSystemDialog, 578 base::Bind(&PrintPreviewHandler::HandleShowSystemDialog,
576 base::Unretained(this))); 579 base::Unretained(this)));
577 #endif 580 #endif
578 web_ui()->RegisterMessageCallback("signIn", 581 web_ui()->RegisterMessageCallback("signIn",
579 base::Bind(&PrintPreviewHandler::HandleSignin, 582 base::Bind(&PrintPreviewHandler::HandleSignin,
580 base::Unretained(this))); 583 base::Unretained(this)));
581 web_ui()->RegisterMessageCallback("getAccessToken", 584 web_ui()->RegisterMessageCallback("getAccessToken",
582 base::Bind(&PrintPreviewHandler::HandleGetAccessToken, 585 base::Bind(&PrintPreviewHandler::HandleGetAccessToken,
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1072 } 1075 }
1073 1076
1074 printing::PrinterSetupCallback cb = 1077 printing::PrinterSetupCallback cb =
1075 base::Bind(&PrintPreviewHandler::SendPrinterCapabilities, 1078 base::Bind(&PrintPreviewHandler::SendPrinterCapabilities,
1076 weak_factory_.GetWeakPtr(), printer_name); 1079 weak_factory_.GetWeakPtr(), printer_name);
1077 1080
1078 printer_backend_proxy()->ConfigurePrinterAndFetchCapabilities(printer_name, 1081 printer_backend_proxy()->ConfigurePrinterAndFetchCapabilities(printer_name,
1079 cb); 1082 cb);
1080 } 1083 }
1081 1084
1085 void PrintPreviewHandler::HandlePrinterSetup(const base::ListValue* args) {
1086 std::string printer_name;
1087 bool ret = args->GetString(0, &printer_name);
1088 if (!ret || printer_name.empty())
1089 return;
1090
1091 printer_backend_proxy()->ConfigurePrinterAndFetchCapabilities(
1092 printer_name, base::Bind(&PrintPreviewHandler::SendPrinterSetup,
1093 weak_factory_.GetWeakPtr(), printer_name));
1094 }
1095
1082 void PrintPreviewHandler::OnSigninComplete() { 1096 void PrintPreviewHandler::OnSigninComplete() {
1083 if (print_preview_ui()) 1097 if (print_preview_ui())
1084 print_preview_ui()->OnReloadPrintersList(); 1098 print_preview_ui()->OnReloadPrintersList();
1085 } 1099 }
1086 1100
1087 void PrintPreviewHandler::HandleSignin(const base::ListValue* args) { 1101 void PrintPreviewHandler::HandleSignin(const base::ListValue* args) {
1088 bool add_account = false; 1102 bool add_account = false;
1089 bool success = args->GetBoolean(0, &add_account); 1103 bool success = args->GetBoolean(0, &add_account);
1090 DCHECK(success); 1104 DCHECK(success);
1091 1105
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 VLOG(1) << "Get printer capabilities failed"; 1286 VLOG(1) << "Get printer capabilities failed";
1273 web_ui()->CallJavascriptFunctionUnsafe("failedToGetPrinterCapabilities", 1287 web_ui()->CallJavascriptFunctionUnsafe("failedToGetPrinterCapabilities",
1274 base::StringValue(printer_name)); 1288 base::StringValue(printer_name));
1275 return; 1289 return;
1276 } 1290 }
1277 VLOG(1) << "Get printer capabilities finished"; 1291 VLOG(1) << "Get printer capabilities finished";
1278 web_ui()->CallJavascriptFunctionUnsafe("updateWithPrinterCapabilities", 1292 web_ui()->CallJavascriptFunctionUnsafe("updateWithPrinterCapabilities",
1279 *settings_info); 1293 *settings_info);
1280 } 1294 }
1281 1295
1296 void PrintPreviewHandler::SendPrinterSetup(
1297 const std::string& printer_name,
1298 std::unique_ptr<base::DictionaryValue> destination_info) {
1299 bool success = true;
1300 base::DictionaryValue empty_dictionary;
1301 base::DictionaryValue* caps;
1302 if (!destination_info ||
1303 !destination_info->GetDictionary(printing::kPrinterCapabilities, &caps)) {
1304 LOG(WARNING) << "Printer setup failed";
1305 caps = &empty_dictionary;
1306 success = false;
1307 }
1308
1309 web_ui()->CallJavascriptFunctionUnsafe(
1310 "onPrinterSetup", base::StringValue(printer_name),
1311 base::FundamentalValue(success), *caps);
1312 }
1313
1282 void PrintPreviewHandler::SetupPrinterList( 1314 void PrintPreviewHandler::SetupPrinterList(
1283 const printing::PrinterList& printer_list) { 1315 const printing::PrinterList& printer_list) {
1284 base::ListValue printers; 1316 base::ListValue printers;
1285 PrintersToValues(printer_list, &printers); 1317 PrintersToValues(printer_list, &printers);
1286 1318
1287 VLOG(1) << "Enumerate printers finished, found " << printers.GetSize() 1319 VLOG(1) << "Enumerate printers finished, found " << printers.GetSize()
1288 << " printers"; 1320 << " printers";
1289 1321
1290 if (!has_logged_printers_count_) { 1322 if (!has_logged_printers_count_) {
1291 UMA_HISTOGRAM_COUNTS("PrintPreview.NumberOfPrinters", printers.GetSize()); 1323 UMA_HISTOGRAM_COUNTS("PrintPreview.NumberOfPrinters", printers.GetSize());
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
1745 1777
1746 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { 1778 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() {
1747 if (gaia_cookie_manager_service_) 1779 if (gaia_cookie_manager_service_)
1748 gaia_cookie_manager_service_->RemoveObserver(this); 1780 gaia_cookie_manager_service_->RemoveObserver(this);
1749 } 1781 }
1750 1782
1751 void PrintPreviewHandler::SetPdfSavedClosureForTesting( 1783 void PrintPreviewHandler::SetPdfSavedClosureForTesting(
1752 const base::Closure& closure) { 1784 const base::Closure& closure) {
1753 pdf_file_saved_closure_ = closure; 1785 pdf_file_saved_closure_ = closure;
1754 } 1786 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698