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