| 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 |