Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: chrome/browser/ui/webui/print_preview_handler.cc

Issue 7550063: Print Preview: Handle a crashed initiator tab by showing a message in PP. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix a style issue Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 web_ui_->RegisterMessageCallback("morePrinters", 425 web_ui_->RegisterMessageCallback("morePrinters",
426 NewCallback(this, &PrintPreviewHandler::HandleShowSystemDialog)); 426 NewCallback(this, &PrintPreviewHandler::HandleShowSystemDialog));
427 web_ui_->RegisterMessageCallback("signIn", 427 web_ui_->RegisterMessageCallback("signIn",
428 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); 428 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint));
429 web_ui_->RegisterMessageCallback("addCloudPrinter", 429 web_ui_->RegisterMessageCallback("addCloudPrinter",
430 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); 430 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint));
431 web_ui_->RegisterMessageCallback("manageCloudPrinters", 431 web_ui_->RegisterMessageCallback("manageCloudPrinters",
432 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); 432 NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint));
433 web_ui_->RegisterMessageCallback("manageLocalPrinters", 433 web_ui_->RegisterMessageCallback("manageLocalPrinters",
434 NewCallback(this, &PrintPreviewHandler::HandleManagePrinters)); 434 NewCallback(this, &PrintPreviewHandler::HandleManagePrinters));
435 web_ui_->RegisterMessageCallback("reloadCrashedInitiatorTab",
436 NewCallback(this, &PrintPreviewHandler::HandleReloadCrashedInitiatorTab));
435 web_ui_->RegisterMessageCallback("closePrintPreviewTab", 437 web_ui_->RegisterMessageCallback("closePrintPreviewTab",
436 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); 438 NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab));
437 web_ui_->RegisterMessageCallback("hidePreview", 439 web_ui_->RegisterMessageCallback("hidePreview",
438 NewCallback(this, &PrintPreviewHandler::HandleHidePreview)); 440 NewCallback(this, &PrintPreviewHandler::HandleHidePreview));
439 web_ui_->RegisterMessageCallback("cancelPendingPrintRequest", 441 web_ui_->RegisterMessageCallback("cancelPendingPrintRequest",
440 NewCallback(this, &PrintPreviewHandler::HandleCancelPendingPrintRequest)); 442 NewCallback(this, &PrintPreviewHandler::HandleCancelPendingPrintRequest));
441 web_ui_->RegisterMessageCallback("saveLastPrinter", 443 web_ui_->RegisterMessageCallback("saveLastPrinter",
442 NewCallback(this, &PrintPreviewHandler::HandleSaveLastPrinter)); 444 NewCallback(this, &PrintPreviewHandler::HandleSaveLastPrinter));
443 } 445 }
444 446
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 printing::PrintViewManager* manager = wrapper->print_view_manager(); 646 printing::PrintViewManager* manager = wrapper->print_view_manager();
645 manager->set_observer(this); 647 manager->set_observer(this);
646 manager->PrintForSystemDialogNow(); 648 manager->PrintForSystemDialogNow();
647 } 649 }
648 650
649 void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) { 651 void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) {
650 ++manage_printers_dialog_request_count_; 652 ++manage_printers_dialog_request_count_;
651 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); 653 printing::PrinterManagerDialog::ShowPrinterManagerDialog();
652 } 654 }
653 655
656 void PrintPreviewHandler::HandleReloadCrashedInitiatorTab(
657 const ListValue* /* args */) {
Lei Zhang 2011/08/16 00:59:23 nit: just leave off /* args */ like we do in the r
kmadhusu 2011/08/16 01:31:37 Done.
658 ReportStats();
659 ReportUserActionHistogram(PREVIEW_FAILED);
Lei Zhang 2011/08/16 00:59:23 Can we use a different histogram value so we can d
kmadhusu 2011/08/16 01:31:37 + INITIATOR_TAB_CRASHED Once you are fine with th
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698