| 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 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 | 511 |
| 512 DISALLOW_COPY_AND_ASSIGN(AccessTokenService); | 512 DISALLOW_COPY_AND_ASSIGN(AccessTokenService); |
| 513 }; | 513 }; |
| 514 | 514 |
| 515 PrintPreviewHandler::PrintPreviewHandler() | 515 PrintPreviewHandler::PrintPreviewHandler() |
| 516 : regenerate_preview_request_count_(0), | 516 : regenerate_preview_request_count_(0), |
| 517 manage_printers_dialog_request_count_(0), | 517 manage_printers_dialog_request_count_(0), |
| 518 manage_cloud_printers_dialog_request_count_(0), | 518 manage_cloud_printers_dialog_request_count_(0), |
| 519 reported_failed_preview_(false), | 519 reported_failed_preview_(false), |
| 520 has_logged_printers_count_(false), | 520 has_logged_printers_count_(false), |
| 521 gaia_cookie_manager_service_(NULL), | 521 gaia_cookie_manager_service_(nullptr), |
| 522 printer_backend_proxy_(nullptr), |
| 522 weak_factory_(this) { | 523 weak_factory_(this) { |
| 523 ReportUserActionHistogram(PREVIEW_STARTED); | 524 ReportUserActionHistogram(PREVIEW_STARTED); |
| 524 } | 525 } |
| 525 | 526 |
| 526 PrintPreviewHandler::~PrintPreviewHandler() { | 527 PrintPreviewHandler::~PrintPreviewHandler() { |
| 527 if (select_file_dialog_.get()) | 528 if (select_file_dialog_.get()) |
| 528 select_file_dialog_->ListenerDestroyed(); | 529 select_file_dialog_->ListenerDestroyed(); |
| 529 | 530 |
| 530 UnregisterForGaiaCookieChanges(); | 531 UnregisterForGaiaCookieChanges(); |
| 531 } | 532 } |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 604 } | 605 } |
| 605 | 606 |
| 606 WebContents* PrintPreviewHandler::preview_web_contents() const { | 607 WebContents* PrintPreviewHandler::preview_web_contents() const { |
| 607 return web_ui()->GetWebContents(); | 608 return web_ui()->GetWebContents(); |
| 608 } | 609 } |
| 609 | 610 |
| 610 PrintPreviewUI* PrintPreviewHandler::print_preview_ui() const { | 611 PrintPreviewUI* PrintPreviewHandler::print_preview_ui() const { |
| 611 return static_cast<PrintPreviewUI*>(web_ui()->GetController()); | 612 return static_cast<PrintPreviewUI*>(web_ui()->GetController()); |
| 612 } | 613 } |
| 613 | 614 |
| 615 printing::PrinterBackendProxy* PrintPreviewHandler::printer_backend_proxy() { |
| 616 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 617 |
| 618 if (!printer_backend_proxy_) { |
| 619 #if defined(OS_CHROMEOS) |
| 620 // ChromeOS stores printer information in printer prefs which requires a |
| 621 // profile. Other plaforms retrieve printer information from OS resources. |
| 622 printer_backend_proxy_ = |
| 623 printing::PrinterBackendProxy::Create(Profile::FromWebUI(web_ui())); |
| 624 #else |
| 625 printer_backend_proxy_ = printing::PrinterBackendProxy::Create(); |
| 626 #endif |
| 627 } |
| 628 |
| 629 return printer_backend_proxy_.get(); |
| 630 } |
| 631 |
| 614 void PrintPreviewHandler::HandleGetPrinters(const base::ListValue* /*args*/) { | 632 void PrintPreviewHandler::HandleGetPrinters(const base::ListValue* /*args*/) { |
| 615 VLOG(1) << "Enumerate printers start"; | 633 VLOG(1) << "Enumerate printers start"; |
| 616 printing::EnumeratePrinters(Profile::FromWebUI(web_ui()), | 634 printer_backend_proxy()->EnumeratePrinters(base::Bind( |
| 617 base::Bind(&PrintPreviewHandler::SetupPrinterList, | 635 &PrintPreviewHandler::SetupPrinterList, weak_factory_.GetWeakPtr())); |
| 618 weak_factory_.GetWeakPtr())); | |
| 619 } | 636 } |
| 620 | 637 |
| 621 void PrintPreviewHandler::HandleGetPrivetPrinters(const base::ListValue* args) { | 638 void PrintPreviewHandler::HandleGetPrivetPrinters(const base::ListValue* args) { |
| 622 if (!PrivetPrintingEnabled()) | 639 if (!PrivetPrintingEnabled()) |
| 623 return web_ui()->CallJavascriptFunctionUnsafe("onPrivetPrinterSearchDone"); | 640 return web_ui()->CallJavascriptFunctionUnsafe("onPrivetPrinterSearchDone"); |
| 624 #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) | 641 #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) |
| 625 using local_discovery::ServiceDiscoverySharedClient; | 642 using local_discovery::ServiceDiscoverySharedClient; |
| 626 scoped_refptr<ServiceDiscoverySharedClient> service_discovery = | 643 scoped_refptr<ServiceDiscoverySharedClient> service_discovery = |
| 627 ServiceDiscoverySharedClient::GetInstance(); | 644 ServiceDiscoverySharedClient::GetInstance(); |
| 628 StartPrivetLister(service_discovery); | 645 StartPrivetLister(service_discovery); |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1022 printing::kPrinterCapabilities, | 1039 printing::kPrinterCapabilities, |
| 1023 GetPdfCapabilities(g_browser_process->GetApplicationLocale())); | 1040 GetPdfCapabilities(g_browser_process->GetApplicationLocale())); |
| 1024 SendPrinterCapabilities(printer_name, std::move(printer_info)); | 1041 SendPrinterCapabilities(printer_name, std::move(printer_info)); |
| 1025 return; | 1042 return; |
| 1026 } | 1043 } |
| 1027 | 1044 |
| 1028 printing::PrinterSetupCallback cb = | 1045 printing::PrinterSetupCallback cb = |
| 1029 base::Bind(&PrintPreviewHandler::SendPrinterCapabilities, | 1046 base::Bind(&PrintPreviewHandler::SendPrinterCapabilities, |
| 1030 weak_factory_.GetWeakPtr(), printer_name); | 1047 weak_factory_.GetWeakPtr(), printer_name); |
| 1031 | 1048 |
| 1032 printing::ConfigurePrinterAndFetchCapabilities(Profile::FromWebUI(web_ui()), | 1049 printer_backend_proxy()->ConfigurePrinterAndFetchCapabilities(printer_name, |
| 1033 printer_name, cb); | 1050 cb); |
| 1034 } | 1051 } |
| 1035 | 1052 |
| 1036 void PrintPreviewHandler::OnSigninComplete() { | 1053 void PrintPreviewHandler::OnSigninComplete() { |
| 1037 if (print_preview_ui()) | 1054 if (print_preview_ui()) |
| 1038 print_preview_ui()->OnReloadPrintersList(); | 1055 print_preview_ui()->OnReloadPrintersList(); |
| 1039 } | 1056 } |
| 1040 | 1057 |
| 1041 void PrintPreviewHandler::HandleSignin(const base::ListValue* args) { | 1058 void PrintPreviewHandler::HandleSignin(const base::ListValue* args) { |
| 1042 bool add_account = false; | 1059 bool add_account = false; |
| 1043 bool success = args->GetBoolean(0, &add_account); | 1060 bool success = args->GetBoolean(0, &add_account); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1145 // Getting the number formatting based on the locale and writing to | 1162 // Getting the number formatting based on the locale and writing to |
| 1146 // dictionary. | 1163 // dictionary. |
| 1147 settings->SetString(kNumberFormat, base::FormatDouble(123456.78, 2)); | 1164 settings->SetString(kNumberFormat, base::FormatDouble(123456.78, 2)); |
| 1148 settings->SetInteger(kMeasurementSystem, system); | 1165 settings->SetInteger(kMeasurementSystem, system); |
| 1149 } | 1166 } |
| 1150 | 1167 |
| 1151 void PrintPreviewHandler::HandleGetInitialSettings( | 1168 void PrintPreviewHandler::HandleGetInitialSettings( |
| 1152 const base::ListValue* /*args*/) { | 1169 const base::ListValue* /*args*/) { |
| 1153 // Send before SendInitialSettings() to allow cloud printer auto select. | 1170 // Send before SendInitialSettings() to allow cloud printer auto select. |
| 1154 SendCloudPrintEnabled(); | 1171 SendCloudPrintEnabled(); |
| 1155 base::PostTaskAndReplyWithResult( | 1172 printer_backend_proxy()->GetDefaultPrinter(base::Bind( |
| 1156 BrowserThread::GetBlockingPool(), FROM_HERE, | 1173 &PrintPreviewHandler::SendInitialSettings, weak_factory_.GetWeakPtr())); |
| 1157 base::Bind(&printing::GetDefaultPrinterOnBlockingPoolThread), | |
| 1158 base::Bind(&PrintPreviewHandler::SendInitialSettings, | |
| 1159 weak_factory_.GetWeakPtr())); | |
| 1160 } | 1174 } |
| 1161 | 1175 |
| 1162 void PrintPreviewHandler::HandleForceOpenNewTab(const base::ListValue* args) { | 1176 void PrintPreviewHandler::HandleForceOpenNewTab(const base::ListValue* args) { |
| 1163 std::string url; | 1177 std::string url; |
| 1164 if (!args->GetString(0, &url)) | 1178 if (!args->GetString(0, &url)) |
| 1165 return; | 1179 return; |
| 1166 Browser* browser = chrome::FindBrowserWithWebContents(GetInitiator()); | 1180 Browser* browser = chrome::FindBrowserWithWebContents(GetInitiator()); |
| 1167 if (!browser) | 1181 if (!browser) |
| 1168 return; | 1182 return; |
| 1169 chrome::AddSelectedTabWithURL(browser, | 1183 chrome::AddSelectedTabWithURL(browser, |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1702 | 1716 |
| 1703 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { | 1717 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { |
| 1704 if (gaia_cookie_manager_service_) | 1718 if (gaia_cookie_manager_service_) |
| 1705 gaia_cookie_manager_service_->RemoveObserver(this); | 1719 gaia_cookie_manager_service_->RemoveObserver(this); |
| 1706 } | 1720 } |
| 1707 | 1721 |
| 1708 void PrintPreviewHandler::SetPdfSavedClosureForTesting( | 1722 void PrintPreviewHandler::SetPdfSavedClosureForTesting( |
| 1709 const base::Closure& closure) { | 1723 const base::Closure& closure) { |
| 1710 pdf_file_saved_closure_ = closure; | 1724 pdf_file_saved_closure_ = closure; |
| 1711 } | 1725 } |
| OLD | NEW |