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