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 = settings->HasKey(printing::kSettingCloudPrintDialog); |
| 718 if (is_cloud_printer) { |
720 std::string print_ticket; | 719 std::string print_ticket; |
721 args->GetString(1, &print_ticket); | 720 args->GetString(1, &print_ticket); |
722 SendCloudPrintJob(*settings, print_ticket); | 721 SendCloudPrintJob(*settings, print_ticket); |
723 } else if (print_to_pdf) { | 722 } else if (print_to_pdf) { |
724 HandlePrintToPdf(*settings); | 723 HandlePrintToPdf(*settings); |
| 724 } else if (is_cloud_dialog) { |
| 725 HandlePrintWithCloudPrint(); |
725 } else { | 726 } else { |
726 ReportPrintSettingsStats(*settings); | 727 ReportPrintSettingsStats(*settings); |
727 ReportUserActionHistogram(PRINT_TO_PRINTER); | 728 ReportUserActionHistogram(PRINT_TO_PRINTER); |
728 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPrinter", | 729 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPrinter", |
729 GetPageCountFromSettingsDictionary(*settings)); | 730 GetPageCountFromSettingsDictionary(*settings)); |
730 | 731 |
731 // This tries to activate the initiator tab as well, so do not clear the | 732 // This tries to activate the initiator tab as well, so do not clear the |
732 // association with the initiator tab yet. | 733 // association with the initiator tab yet. |
733 HidePreviewTab(); | 734 HidePreviewTab(); |
734 | 735 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 BrowserThread::FILE, FROM_HERE, | 824 BrowserThread::FILE, FROM_HERE, |
824 NewRunnableMethod(task.get(), | 825 NewRunnableMethod(task.get(), |
825 &PrintSystemTaskProxy::GetPrinterCapabilities, | 826 &PrintSystemTaskProxy::GetPrinterCapabilities, |
826 printer_name)); | 827 printer_name)); |
827 } | 828 } |
828 | 829 |
829 void PrintPreviewHandler::HandleSignin(const ListValue* /*args*/) { | 830 void PrintPreviewHandler::HandleSignin(const ListValue* /*args*/) { |
830 cloud_print_signin_dialog::CreateCloudPrintSigninDialog(preview_tab()); | 831 cloud_print_signin_dialog::CreateCloudPrintSigninDialog(preview_tab()); |
831 } | 832 } |
832 | 833 |
833 void PrintPreviewHandler::HandlePrintWithCloudPrint(const ListValue* /*args*/) { | 834 void PrintPreviewHandler::HandlePrintWithCloudPrint() { |
834 // Record the number of times the user asks to print via cloud print | 835 // Record the number of times the user asks to print via cloud print |
835 // instead of the print preview dialog. | 836 // instead of the print preview dialog. |
836 ReportStats(); | 837 ReportStats(); |
837 ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT); | 838 ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT); |
838 | 839 |
839 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); | 840 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); |
840 scoped_refptr<RefCountedBytes> data; | 841 scoped_refptr<RefCountedBytes> data; |
841 print_preview_ui->GetPrintPreviewDataForIndex( | 842 print_preview_ui->GetPrintPreviewDataForIndex( |
842 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, &data); | 843 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, &data); |
843 CHECK(data.get()); | 844 CHECK(data.get()); |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1155 return; | 1156 return; |
1156 | 1157 |
1157 // We no longer require the initiator tab details. Remove those details | 1158 // We no longer require the initiator tab details. Remove those details |
1158 // associated with the preview tab to allow the initiator tab to create | 1159 // associated with the preview tab to allow the initiator tab to create |
1159 // another preview tab. | 1160 // another preview tab. |
1160 printing::PrintPreviewTabController* tab_controller = | 1161 printing::PrintPreviewTabController* tab_controller = |
1161 printing::PrintPreviewTabController::GetInstance(); | 1162 printing::PrintPreviewTabController::GetInstance(); |
1162 if (tab_controller) | 1163 if (tab_controller) |
1163 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); | 1164 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); |
1164 } | 1165 } |
OLD | NEW |