OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_handler.h" | 5 #include "chrome/browser/ui/webui/print_preview_handler.h" |
6 | 6 |
7 #include <ctype.h> | 7 #include <ctype.h> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/base64.h" | 10 #include "base/base64.h" |
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 web_ui_->RegisterMessageCallback("getPreview", | 558 web_ui_->RegisterMessageCallback("getPreview", |
559 NewCallback(this, &PrintPreviewHandler::HandleGetPreview)); | 559 NewCallback(this, &PrintPreviewHandler::HandleGetPreview)); |
560 web_ui_->RegisterMessageCallback("print", | 560 web_ui_->RegisterMessageCallback("print", |
561 NewCallback(this, &PrintPreviewHandler::HandlePrint)); | 561 NewCallback(this, &PrintPreviewHandler::HandlePrint)); |
562 web_ui_->RegisterMessageCallback("getPrinterCapabilities", | 562 web_ui_->RegisterMessageCallback("getPrinterCapabilities", |
563 NewCallback(this, &PrintPreviewHandler::HandleGetPrinterCapabilities)); | 563 NewCallback(this, &PrintPreviewHandler::HandleGetPrinterCapabilities)); |
564 web_ui_->RegisterMessageCallback("showSystemDialog", | 564 web_ui_->RegisterMessageCallback("showSystemDialog", |
565 NewCallback(this, &PrintPreviewHandler::HandleShowSystemDialog)); | 565 NewCallback(this, &PrintPreviewHandler::HandleShowSystemDialog)); |
566 web_ui_->RegisterMessageCallback("signIn", | 566 web_ui_->RegisterMessageCallback("signIn", |
567 NewCallback(this, &PrintPreviewHandler::HandleSignin)); | 567 NewCallback(this, &PrintPreviewHandler::HandleSignin)); |
568 web_ui_->RegisterMessageCallback("printWithCloudPrint", | |
569 NewCallback(this, &PrintPreviewHandler::HandlePrintWithCloudPrint)); | |
570 web_ui_->RegisterMessageCallback("manageCloudPrinters", | 568 web_ui_->RegisterMessageCallback("manageCloudPrinters", |
571 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); | 569 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); |
572 web_ui_->RegisterMessageCallback("manageLocalPrinters", | 570 web_ui_->RegisterMessageCallback("manageLocalPrinters", |
573 NewCallback(this, &PrintPreviewHandler::HandleManagePrinters)); | 571 NewCallback(this, &PrintPreviewHandler::HandleManagePrinters)); |
574 web_ui_->RegisterMessageCallback("reloadCrashedInitiatorTab", | 572 web_ui_->RegisterMessageCallback("reloadCrashedInitiatorTab", |
575 NewCallback(this, &PrintPreviewHandler::HandleReloadCrashedInitiatorTab)); | 573 NewCallback(this, &PrintPreviewHandler::HandleReloadCrashedInitiatorTab)); |
576 web_ui_->RegisterMessageCallback("closePrintPreviewTab", | 574 web_ui_->RegisterMessageCallback("closePrintPreviewTab", |
577 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); | 575 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); |
578 web_ui_->RegisterMessageCallback("hidePreview", | 576 web_ui_->RegisterMessageCallback("hidePreview", |
579 NewCallback(this, &PrintPreviewHandler::HandleHidePreview)); | 577 NewCallback(this, &PrintPreviewHandler::HandleHidePreview)); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
708 int color_mode; | 706 int color_mode; |
709 if (!settings->GetInteger(printing::kSettingColor, &color_mode)) | 707 if (!settings->GetInteger(printing::kSettingColor, &color_mode)) |
710 color_mode = printing::GRAY; | 708 color_mode = printing::GRAY; |
711 last_used_color_setting_ = (color_mode != printing::GRAY); | 709 last_used_color_setting_ = (color_mode != printing::GRAY); |
712 | 710 |
713 bool print_to_pdf = false; | 711 bool print_to_pdf = false; |
714 settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf); | 712 settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf); |
715 | 713 |
716 settings->SetBoolean(printing::kSettingHeaderFooterEnabled, false); | 714 settings->SetBoolean(printing::kSettingHeaderFooterEnabled, false); |
717 | 715 |
718 bool print_to_cloud = settings->HasKey(printing::kSettingCloudPrintId); | 716 bool is_cloud_printer = settings->HasKey(printing::kSettingCloudPrintId); |
719 if (print_to_cloud) { | 717 bool is_cloud_dialog = false; |
| 718 settings->GetBoolean(printing::kSettingCloudPrintDialog, &is_cloud_dialog); |
| 719 if (is_cloud_printer) { |
720 std::string print_ticket; | 720 std::string print_ticket; |
721 args->GetString(1, &print_ticket); | 721 args->GetString(1, &print_ticket); |
722 SendCloudPrintJob(*settings, print_ticket); | 722 SendCloudPrintJob(*settings, print_ticket); |
723 } else if (print_to_pdf) { | 723 } else if (print_to_pdf) { |
724 HandlePrintToPdf(*settings); | 724 HandlePrintToPdf(*settings); |
| 725 } else if (is_cloud_dialog) { |
| 726 HandlePrintWithCloudPrint(); |
725 } else { | 727 } else { |
726 ReportPrintSettingsStats(*settings); | 728 ReportPrintSettingsStats(*settings); |
727 ReportUserActionHistogram(PRINT_TO_PRINTER); | 729 ReportUserActionHistogram(PRINT_TO_PRINTER); |
728 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPrinter", | 730 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPrinter", |
729 GetPageCountFromSettingsDictionary(*settings)); | 731 GetPageCountFromSettingsDictionary(*settings)); |
730 | 732 |
731 // This tries to activate the initiator tab as well, so do not clear the | 733 // This tries to activate the initiator tab as well, so do not clear the |
732 // association with the initiator tab yet. | 734 // association with the initiator tab yet. |
733 HidePreviewTab(); | 735 HidePreviewTab(); |
734 | 736 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 BrowserThread::FILE, FROM_HERE, | 825 BrowserThread::FILE, FROM_HERE, |
824 NewRunnableMethod(task.get(), | 826 NewRunnableMethod(task.get(), |
825 &PrintSystemTaskProxy::GetPrinterCapabilities, | 827 &PrintSystemTaskProxy::GetPrinterCapabilities, |
826 printer_name)); | 828 printer_name)); |
827 } | 829 } |
828 | 830 |
829 void PrintPreviewHandler::HandleSignin(const ListValue* /*args*/) { | 831 void PrintPreviewHandler::HandleSignin(const ListValue* /*args*/) { |
830 cloud_print_signin_dialog::CreateCloudPrintSigninDialog(preview_tab()); | 832 cloud_print_signin_dialog::CreateCloudPrintSigninDialog(preview_tab()); |
831 } | 833 } |
832 | 834 |
833 void PrintPreviewHandler::HandlePrintWithCloudPrint(const ListValue* /*args*/) { | 835 void PrintPreviewHandler::HandlePrintWithCloudPrint() { |
834 // Record the number of times the user asks to print via cloud print | 836 // Record the number of times the user asks to print via cloud print |
835 // instead of the print preview dialog. | 837 // instead of the print preview dialog. |
836 ReportStats(); | 838 ReportStats(); |
837 ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT); | 839 ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT); |
838 | 840 |
839 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); | 841 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); |
840 scoped_refptr<RefCountedBytes> data; | 842 scoped_refptr<RefCountedBytes> data; |
841 print_preview_ui->GetPrintPreviewDataForIndex( | 843 print_preview_ui->GetPrintPreviewDataForIndex( |
842 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, &data); | 844 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, &data); |
843 CHECK(data.get()); | 845 CHECK(data.get()); |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1155 return; | 1157 return; |
1156 | 1158 |
1157 // We no longer require the initiator tab details. Remove those details | 1159 // We no longer require the initiator tab details. Remove those details |
1158 // associated with the preview tab to allow the initiator tab to create | 1160 // associated with the preview tab to allow the initiator tab to create |
1159 // another preview tab. | 1161 // another preview tab. |
1160 printing::PrintPreviewTabController* tab_controller = | 1162 printing::PrintPreviewTabController* tab_controller = |
1161 printing::PrintPreviewTabController::GetInstance(); | 1163 printing::PrintPreviewTabController::GetInstance(); |
1162 if (tab_controller) | 1164 if (tab_controller) |
1163 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); | 1165 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); |
1164 } | 1166 } |
OLD | NEW |