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

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

Issue 2542363002: Interrogate PpdProvider from PrintPreview. (Closed)
Patch Set: address comment from dpapad@ Created 4 years 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 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698