| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 // |args| is expected to contain a string with representing the callback id |
| 1086 // followed by a list of arguments the first of which should be the printer id. |
| 1087 void PrintPreviewHandler::HandlePrinterSetup(const base::ListValue* args) { |
| 1088 AllowJavascript(); |
| 1089 |
| 1090 std::string callback_id; |
| 1091 std::string printer_name; |
| 1092 const base::ListValue* real_args; |
| 1093 if (!args->GetString(0, &callback_id) || !args->GetList(1, &real_args) || |
| 1094 !real_args->GetString(0, &printer_name) || callback_id.empty() || |
| 1095 printer_name.empty()) { |
| 1096 RejectJavascriptCallback(base::StringValue(callback_id), |
| 1097 base::StringValue(printer_name)); |
| 1098 return; |
| 1099 } |
| 1100 |
| 1101 printer_backend_proxy()->ConfigurePrinterAndFetchCapabilities( |
| 1102 printer_name, |
| 1103 base::Bind(&PrintPreviewHandler::SendPrinterSetup, |
| 1104 weak_factory_.GetWeakPtr(), callback_id, printer_name)); |
| 1105 } |
| 1106 |
| 1082 void PrintPreviewHandler::OnSigninComplete() { | 1107 void PrintPreviewHandler::OnSigninComplete() { |
| 1083 if (print_preview_ui()) | 1108 if (print_preview_ui()) |
| 1084 print_preview_ui()->OnReloadPrintersList(); | 1109 print_preview_ui()->OnReloadPrintersList(); |
| 1085 } | 1110 } |
| 1086 | 1111 |
| 1087 void PrintPreviewHandler::HandleSignin(const base::ListValue* args) { | 1112 void PrintPreviewHandler::HandleSignin(const base::ListValue* args) { |
| 1088 bool add_account = false; | 1113 bool add_account = false; |
| 1089 bool success = args->GetBoolean(0, &add_account); | 1114 bool success = args->GetBoolean(0, &add_account); |
| 1090 DCHECK(success); | 1115 DCHECK(success); |
| 1091 | 1116 |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1272 VLOG(1) << "Get printer capabilities failed"; | 1297 VLOG(1) << "Get printer capabilities failed"; |
| 1273 web_ui()->CallJavascriptFunctionUnsafe("failedToGetPrinterCapabilities", | 1298 web_ui()->CallJavascriptFunctionUnsafe("failedToGetPrinterCapabilities", |
| 1274 base::StringValue(printer_name)); | 1299 base::StringValue(printer_name)); |
| 1275 return; | 1300 return; |
| 1276 } | 1301 } |
| 1277 VLOG(1) << "Get printer capabilities finished"; | 1302 VLOG(1) << "Get printer capabilities finished"; |
| 1278 web_ui()->CallJavascriptFunctionUnsafe("updateWithPrinterCapabilities", | 1303 web_ui()->CallJavascriptFunctionUnsafe("updateWithPrinterCapabilities", |
| 1279 *settings_info); | 1304 *settings_info); |
| 1280 } | 1305 } |
| 1281 | 1306 |
| 1307 void PrintPreviewHandler::SendPrinterSetup( |
| 1308 const std::string& callback_id, |
| 1309 const std::string& printer_name, |
| 1310 std::unique_ptr<base::DictionaryValue> destination_info) { |
| 1311 auto response = base::MakeUnique<base::DictionaryValue>(); |
| 1312 bool success = true; |
| 1313 auto caps_value = base::Value::CreateNullValue(); |
| 1314 auto caps = base::MakeUnique<base::DictionaryValue>(); |
| 1315 if (destination_info && |
| 1316 destination_info->Remove(printing::kPrinterCapabilities, &caps_value) && |
| 1317 caps_value->IsType(base::Value::Type::DICTIONARY)) { |
| 1318 caps = base::DictionaryValue::From(std::move(caps_value)); |
| 1319 } else { |
| 1320 LOG(WARNING) << "Printer setup failed"; |
| 1321 success = false; |
| 1322 } |
| 1323 |
| 1324 response->SetString("printerId", printer_name); |
| 1325 response->SetBoolean("success", success); |
| 1326 response->Set("capabilities", std::move(caps)); |
| 1327 |
| 1328 ResolveJavascriptCallback(base::StringValue(callback_id), *response); |
| 1329 } |
| 1330 |
| 1282 void PrintPreviewHandler::SetupPrinterList( | 1331 void PrintPreviewHandler::SetupPrinterList( |
| 1283 const printing::PrinterList& printer_list) { | 1332 const printing::PrinterList& printer_list) { |
| 1284 base::ListValue printers; | 1333 base::ListValue printers; |
| 1285 PrintersToValues(printer_list, &printers); | 1334 PrintersToValues(printer_list, &printers); |
| 1286 | 1335 |
| 1287 VLOG(1) << "Enumerate printers finished, found " << printers.GetSize() | 1336 VLOG(1) << "Enumerate printers finished, found " << printers.GetSize() |
| 1288 << " printers"; | 1337 << " printers"; |
| 1289 | 1338 |
| 1290 if (!has_logged_printers_count_) { | 1339 if (!has_logged_printers_count_) { |
| 1291 UMA_HISTOGRAM_COUNTS("PrintPreview.NumberOfPrinters", printers.GetSize()); | 1340 UMA_HISTOGRAM_COUNTS("PrintPreview.NumberOfPrinters", printers.GetSize()); |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1745 | 1794 |
| 1746 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { | 1795 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { |
| 1747 if (gaia_cookie_manager_service_) | 1796 if (gaia_cookie_manager_service_) |
| 1748 gaia_cookie_manager_service_->RemoveObserver(this); | 1797 gaia_cookie_manager_service_->RemoveObserver(this); |
| 1749 } | 1798 } |
| 1750 | 1799 |
| 1751 void PrintPreviewHandler::SetPdfSavedClosureForTesting( | 1800 void PrintPreviewHandler::SetPdfSavedClosureForTesting( |
| 1752 const base::Closure& closure) { | 1801 const base::Closure& closure) { |
| 1753 pdf_file_saved_closure_ = closure; | 1802 pdf_file_saved_closure_ = closure; |
| 1754 } | 1803 } |
| OLD | NEW |