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 <string> | 7 #include <string> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #if !defined(OS_CHROMEOS) | 10 #if !defined(OS_CHROMEOS) |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
66 const char kPskDuplexFeature[] = "psk:JobDuplexAllDocumentsContiguously"; | 66 const char kPskDuplexFeature[] = "psk:JobDuplexAllDocumentsContiguously"; |
67 const char kPskTwoSided[] = "psk:TwoSided"; | 67 const char kPskTwoSided[] = "psk:TwoSided"; |
68 #endif | 68 #endif |
69 | 69 |
70 enum UserActionBuckets { | 70 enum UserActionBuckets { |
71 PRINT_TO_PRINTER, | 71 PRINT_TO_PRINTER, |
72 PRINT_TO_PDF, | 72 PRINT_TO_PDF, |
73 CANCEL, | 73 CANCEL, |
74 FALLBACK_TO_ADVANCED_SETTINGS_DIALOG, | 74 FALLBACK_TO_ADVANCED_SETTINGS_DIALOG, |
75 PREVIEW_FAILED, | 75 PREVIEW_FAILED, |
76 INITIATOR_TAB_CRASHED, | |
Lei Zhang
2011/08/16 03:30:41
do we need a corresponding change in some UMA .xml
kmadhusu
2011/08/16 16:46:47
Yeah. That will be a seperate CL.
| |
76 PREVIEW_STARTED, | 77 PREVIEW_STARTED, |
77 USERACTION_BUCKET_BOUNDARY | 78 USERACTION_BUCKET_BOUNDARY |
78 }; | 79 }; |
79 | 80 |
80 enum PrintSettingsBuckets { | 81 enum PrintSettingsBuckets { |
81 LANDSCAPE, | 82 LANDSCAPE, |
82 PORTRAIT, | 83 PORTRAIT, |
83 COLOR, | 84 COLOR, |
84 BLACK_AND_WHITE, | 85 BLACK_AND_WHITE, |
85 COLLATE, | 86 COLLATE, |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
425 web_ui_->RegisterMessageCallback("morePrinters", | 426 web_ui_->RegisterMessageCallback("morePrinters", |
426 NewCallback(this, &PrintPreviewHandler::HandleShowSystemDialog)); | 427 NewCallback(this, &PrintPreviewHandler::HandleShowSystemDialog)); |
427 web_ui_->RegisterMessageCallback("signIn", | 428 web_ui_->RegisterMessageCallback("signIn", |
428 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); | 429 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); |
429 web_ui_->RegisterMessageCallback("addCloudPrinter", | 430 web_ui_->RegisterMessageCallback("addCloudPrinter", |
430 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); | 431 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); |
431 web_ui_->RegisterMessageCallback("manageCloudPrinters", | 432 web_ui_->RegisterMessageCallback("manageCloudPrinters", |
432 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); | 433 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); |
433 web_ui_->RegisterMessageCallback("manageLocalPrinters", | 434 web_ui_->RegisterMessageCallback("manageLocalPrinters", |
434 NewCallback(this, &PrintPreviewHandler::HandleManagePrinters)); | 435 NewCallback(this, &PrintPreviewHandler::HandleManagePrinters)); |
436 web_ui_->RegisterMessageCallback("reloadCrashedInitiatorTab", | |
437 NewCallback(this, &PrintPreviewHandler::HandleReloadCrashedInitiatorTab)); | |
435 web_ui_->RegisterMessageCallback("closePrintPreviewTab", | 438 web_ui_->RegisterMessageCallback("closePrintPreviewTab", |
436 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); | 439 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); |
437 web_ui_->RegisterMessageCallback("hidePreview", | 440 web_ui_->RegisterMessageCallback("hidePreview", |
438 NewCallback(this, &PrintPreviewHandler::HandleHidePreview)); | 441 NewCallback(this, &PrintPreviewHandler::HandleHidePreview)); |
439 web_ui_->RegisterMessageCallback("cancelPendingPrintRequest", | 442 web_ui_->RegisterMessageCallback("cancelPendingPrintRequest", |
440 NewCallback(this, &PrintPreviewHandler::HandleCancelPendingPrintRequest)); | 443 NewCallback(this, &PrintPreviewHandler::HandleCancelPendingPrintRequest)); |
441 web_ui_->RegisterMessageCallback("saveLastPrinter", | 444 web_ui_->RegisterMessageCallback("saveLastPrinter", |
442 NewCallback(this, &PrintPreviewHandler::HandleSaveLastPrinter)); | 445 NewCallback(this, &PrintPreviewHandler::HandleSaveLastPrinter)); |
443 } | 446 } |
444 | 447 |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
644 printing::PrintViewManager* manager = wrapper->print_view_manager(); | 647 printing::PrintViewManager* manager = wrapper->print_view_manager(); |
645 manager->set_observer(this); | 648 manager->set_observer(this); |
646 manager->PrintForSystemDialogNow(); | 649 manager->PrintForSystemDialogNow(); |
647 } | 650 } |
648 | 651 |
649 void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) { | 652 void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) { |
650 ++manage_printers_dialog_request_count_; | 653 ++manage_printers_dialog_request_count_; |
651 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); | 654 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); |
652 } | 655 } |
653 | 656 |
657 void PrintPreviewHandler::HandleReloadCrashedInitiatorTab(const ListValue*) { | |
658 ReportStats(); | |
659 ReportUserActionHistogram(INITIATOR_TAB_CRASHED); | |
660 | |
661 TabContents* initiator_tab = GetInitiatorTab(); | |
662 if (!initiator_tab) | |
663 return; | |
664 | |
665 initiator_tab->OpenURL( | |
666 initiator_tab->GetURL(), GURL(), CURRENT_TAB, PageTransition::RELOAD); | |
667 ActivateInitiatorTabAndClosePreviewTab(); | |
668 } | |
669 | |
654 void PrintPreviewHandler::HandleClosePreviewTab(const ListValue* args) { | 670 void PrintPreviewHandler::HandleClosePreviewTab(const ListValue* args) { |
655 ReportStats(); | 671 ReportStats(); |
656 ReportUserActionHistogram(CANCEL); | 672 ReportUserActionHistogram(CANCEL); |
657 | 673 |
658 // Record the number of times the user requests to regenerate preview data | 674 // Record the number of times the user requests to regenerate preview data |
659 // before cancelling. | 675 // before cancelling. |
660 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel", | 676 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel", |
661 regenerate_preview_request_count_); | 677 regenerate_preview_request_count_); |
662 | 678 |
663 ActivateInitiatorTabAndClosePreviewTab(); | 679 ActivateInitiatorTabAndClosePreviewTab(); |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
823 string16(), | 839 string16(), |
824 last_saved_path_->Append(default_filename), | 840 last_saved_path_->Append(default_filename), |
825 &file_type_info, | 841 &file_type_info, |
826 0, | 842 0, |
827 FILE_PATH_LITERAL(""), | 843 FILE_PATH_LITERAL(""), |
828 preview_tab(), | 844 preview_tab(), |
829 platform_util::GetTopLevel(preview_tab()->GetNativeView()), | 845 platform_util::GetTopLevel(preview_tab()->GetNativeView()), |
830 NULL); | 846 NULL); |
831 } | 847 } |
832 | 848 |
833 void PrintPreviewHandler::OnNavigation() { | 849 void PrintPreviewHandler::OnTabDestroyed() { |
834 TabContents* initiator_tab = GetInitiatorTab(); | 850 TabContents* initiator_tab = GetInitiatorTab(); |
835 if (!initiator_tab) | 851 if (!initiator_tab) |
836 return; | 852 return; |
837 | 853 |
838 TabContentsWrapper* wrapper = | 854 TabContentsWrapper* wrapper = |
839 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); | 855 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); |
840 wrapper->print_view_manager()->set_observer(NULL); | 856 wrapper->print_view_manager()->set_observer(NULL); |
841 | 857 |
842 // Tell the initiator tab to stop rendering the print preview, if any, | 858 // Tell the initiator tab to stop rendering the print preview, if any, |
843 // since the preview tab is gone. | 859 // since the preview tab is gone. |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
887 return; | 903 return; |
888 | 904 |
889 // We no longer require the initiator tab details. Remove those details | 905 // We no longer require the initiator tab details. Remove those details |
890 // associated with the preview tab to allow the initiator tab to create | 906 // associated with the preview tab to allow the initiator tab to create |
891 // another preview tab. | 907 // another preview tab. |
892 printing::PrintPreviewTabController* tab_controller = | 908 printing::PrintPreviewTabController* tab_controller = |
893 printing::PrintPreviewTabController::GetInstance(); | 909 printing::PrintPreviewTabController::GetInstance(); |
894 if (tab_controller) | 910 if (tab_controller) |
895 tab_controller->EraseInitiatorTabInfo(preview_tab()); | 911 tab_controller->EraseInitiatorTabInfo(preview_tab()); |
896 } | 912 } |
OLD | NEW |