Index: chrome/browser/ui/webui/print_preview_handler.cc |
diff --git a/chrome/browser/ui/webui/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview_handler.cc |
index f807a6c50af0f31a25f8bd538cd67bcb7f90f78b..6b9bd23f73040a8fb422b0ebec47fcc7d54a0f8f 100644 |
--- a/chrome/browser/ui/webui/print_preview_handler.cc |
+++ b/chrome/browser/ui/webui/print_preview_handler.cc |
@@ -432,6 +432,8 @@ void PrintPreviewHandler::RegisterMessages() { |
NewCallback(this, &PrintPreviewHandler::HandleManageCloudPrint)); |
web_ui_->RegisterMessageCallback("manageLocalPrinters", |
NewCallback(this, &PrintPreviewHandler::HandleManagePrinters)); |
+ web_ui_->RegisterMessageCallback("reloadCrashedInitiatorTab", |
+ NewCallback(this, &PrintPreviewHandler::HandleReloadCrashedInitiatorTab)); |
web_ui_->RegisterMessageCallback("closePrintPreviewTab", |
NewCallback(this, &PrintPreviewHandler::HandleClosePreviewTab)); |
web_ui_->RegisterMessageCallback("hidePreview", |
@@ -651,6 +653,20 @@ void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) { |
printing::PrinterManagerDialog::ShowPrinterManagerDialog(); |
} |
+void PrintPreviewHandler::HandleReloadCrashedInitiatorTab( |
+ const ListValue* /* args */) { |
+ ReportStats(); |
+ ReportUserActionHistogram(PREVIEW_FAILED); |
+ |
+ TabContents* initiator_tab = GetInitiatorTab(); |
+ if (!initiator_tab) |
+ return; |
+ |
+ initiator_tab->OpenURL( |
+ initiator_tab->GetURL(), GURL(), CURRENT_TAB, PageTransition::RELOAD); |
+ ActivateInitiatorTabAndClosePreviewTab(); |
+} |
+ |
void PrintPreviewHandler::HandleClosePreviewTab(const ListValue* args) { |
ReportStats(); |
ReportUserActionHistogram(CANCEL); |