Index: chrome/browser/ui/webui/print_preview_handler.cc |
=================================================================== |
--- chrome/browser/ui/webui/print_preview_handler.cc (revision 105575) |
+++ chrome/browser/ui/webui/print_preview_handler.cc (working copy) |
@@ -21,9 +21,7 @@ |
#include "base/threading/thread_restrictions.h" |
#include "base/utf_string_conversions.h" |
#include "base/values.h" |
-#include "chrome/browser/browser_process.h" |
#include "chrome/browser/platform_util.h" |
-#include "chrome/browser/printing/background_printing_manager.h" |
#include "chrome/browser/printing/cloud_print/cloud_print_url.h" |
#include "chrome/browser/printing/print_dialog_cloud.h" |
#include "chrome/browser/printing/print_job_manager.h" |
@@ -31,8 +29,6 @@ |
#include "chrome/browser/printing/print_system_task_proxy.h" |
#include "chrome/browser/printing/print_view_manager.h" |
#include "chrome/browser/printing/printer_manager_dialog.h" |
-#include "chrome/browser/sessions/restore_tab_helper.h" |
-#include "chrome/browser/tabs/tab_strip_model.h" |
#include "chrome/browser/ui/browser_list.h" |
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
#include "chrome/browser/ui/webui/cloud_print_signin_dialog.h" |
@@ -62,7 +58,7 @@ |
FALLBACK_TO_ADVANCED_SETTINGS_DIALOG, |
PREVIEW_FAILED, |
PREVIEW_STARTED, |
- INITIATOR_TAB_CRASHED, |
+ INITIATOR_TAB_CRASHED, // UNUSED |
INITIATOR_TAB_CLOSED, |
PRINT_WITH_CLOUD_PRINT, |
USERACTION_BUCKET_BOUNDARY |
@@ -157,10 +153,6 @@ |
} |
} |
-printing::BackgroundPrintingManager* GetBackgroundPrintingManager() { |
- return g_browser_process->background_printing_manager(); |
-} |
- |
} // namespace |
// A Task implementation that stores a PDF file on disk. |
@@ -240,9 +232,6 @@ |
web_ui_->RegisterMessageCallback("manageLocalPrinters", |
base::Bind(&PrintPreviewHandler::HandleManagePrinters, |
base::Unretained(this))); |
- web_ui_->RegisterMessageCallback("reloadCrashedInitiatorTab", |
- base::Bind(&PrintPreviewHandler::HandleReloadCrashedInitiatorTab, |
- base::Unretained(this))); |
web_ui_->RegisterMessageCallback("closePrintPreviewTab", |
base::Bind(&PrintPreviewHandler::HandleClosePreviewTab, |
base::Unretained(this))); |
@@ -312,7 +301,7 @@ |
TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
if (!initiator_tab) { |
ReportUserActionHistogram(INITIATOR_TAB_CLOSED); |
- print_preview_ui->OnInitiatorTabClosed(); |
+ print_preview_ui->OnClosePrintPreviewTab(); |
return; |
} |
@@ -407,7 +396,8 @@ |
// This tries to activate the initiator tab as well, so do not clear the |
// association with the initiator tab yet. |
- HidePreviewTab(); |
+ PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); |
+ print_preview_ui->OnHidePreviewTab(); |
// Do this so the initiator tab can open a new print preview tab. |
ClearInitiatorTabDetails(); |
@@ -417,6 +407,8 @@ |
settings->Remove(printing::kSettingPageRange, NULL); |
RenderViewHost* rvh = web_ui_->tab_contents()->render_view_host(); |
rvh->Send(new PrintMsg_PrintForPrintPreview(rvh->routing_id(), *settings)); |
+ if (initiator_tab) |
+ initiator_tab->print_view_manager()->PrintPreviewDone(); |
kmadhusu
2011/10/14 22:48:13
How do you exit the nested loop in other cases?
Lei Zhang
2011/10/14 23:22:07
The other cases all close the print preview dialog
|
} |
} |
@@ -451,7 +443,8 @@ |
} |
void PrintPreviewHandler::HandleHidePreview(const ListValue* /*args*/) { |
- HidePreviewTab(); |
+ PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); |
+ print_preview_ui->OnHidePreviewTab(); |
} |
void PrintPreviewHandler::HandleCancelPendingPrintRequest( |
@@ -562,21 +555,6 @@ |
printing::PrinterManagerDialog::ShowPrinterManagerDialog(); |
} |
-void PrintPreviewHandler::HandleReloadCrashedInitiatorTab( |
- const ListValue* /*args*/) { |
- ReportStats(); |
- ReportUserActionHistogram(INITIATOR_TAB_CRASHED); |
- |
- TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
- if (!initiator_tab) |
- return; |
- |
- TabContents* contents = initiator_tab->tab_contents(); |
- contents->OpenURL(contents->GetURL(), GURL(), CURRENT_TAB, |
- content::PAGE_TRANSITION_RELOAD); |
- ActivateInitiatorTabAndClosePreviewTab(); |
-} |
- |
void PrintPreviewHandler::HandleClosePreviewTab(const ListValue* /*args*/) { |
ReportStats(); |
ReportUserActionHistogram(CANCEL); |
@@ -585,8 +563,6 @@ |
// before cancelling. |
UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforeCancel", |
regenerate_preview_request_count_); |
- |
- ActivateInitiatorTabAndClosePreviewTab(); |
} |
void PrintPreviewHandler::ReportStats() { |
@@ -607,7 +583,8 @@ |
static_cast<RenderViewHostDelegate*>( |
initiator_tab->tab_contents())->Activate(); |
} |
- ClosePrintPreviewTab(); |
+ PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_); |
+ print_preview_ui->OnClosePrintPreviewTab(); |
} |
void PrintPreviewHandler::SendPrinterCapabilities( |
@@ -703,25 +680,6 @@ |
return tab_controller->GetInitiatorTab(preview_tab_wrapper()); |
} |
-void PrintPreviewHandler::ClosePrintPreviewTab() { |
- TabContentsWrapper* tab = |
- TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); |
- if (!tab) |
- return; |
- Browser* preview_tab_browser = BrowserList::FindBrowserWithID( |
- tab->restore_tab_helper()->window_id().id()); |
- if (!preview_tab_browser) |
- return; |
- TabStripModel* tabstrip = preview_tab_browser->tabstrip_model(); |
- int index = tabstrip->GetIndexOfTabContents(tab); |
- if (index == TabStripModel::kNoTab) |
- return; |
- |
- // Keep print preview tab out of the recently closed tab list, because |
- // re-opening that page will just display a non-functional print preview page. |
- tabstrip->CloseTabContentsAt(index, TabStripModel::CLOSE_NONE); |
-} |
- |
void PrintPreviewHandler::OnPrintDialogShown() { |
ActivateInitiatorTabAndClosePreviewTab(); |
} |
@@ -810,12 +768,6 @@ |
print_preview_ui->OnFileSelectionCancelled(); |
} |
-void PrintPreviewHandler::HidePreviewTab() { |
- if (GetBackgroundPrintingManager()->HasPrintPreviewTab(preview_tab_wrapper())) |
- return; |
- GetBackgroundPrintingManager()->OwnPrintPreviewTab(preview_tab_wrapper()); |
-} |
- |
void PrintPreviewHandler::ClearInitiatorTabDetails() { |
TabContentsWrapper* initiator_tab = GetInitiatorTab(); |
if (!initiator_tab) |