| 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 8d4aff67125967a527e2d81bc5646636d8274c36..8a141e6b6042e2856edfd8218178217980dbf829 100644
|
| --- a/chrome/browser/ui/webui/print_preview_handler.cc
|
| +++ b/chrome/browser/ui/webui/print_preview_handler.cc
|
| @@ -568,13 +568,12 @@ void PrintPreviewHandler::HandleShowSystemDialog(const ListValue* args) {
|
| TabContents* initiator_tab = GetInitiatorTab();
|
| if (!initiator_tab)
|
| return;
|
| - initiator_tab->Activate();
|
|
|
| TabContentsWrapper* wrapper =
|
| TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab);
|
| - wrapper->print_view_manager()->PrintNow();
|
| -
|
| - ClosePrintPreviewTab();
|
| + printing::PrintViewManager* manager = wrapper->print_view_manager();
|
| + manager->set_observer(this);
|
| + manager->PrintNow();
|
| }
|
|
|
| void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) {
|
| @@ -647,6 +646,14 @@ void PrintPreviewHandler::ClosePrintPreviewTab() {
|
| &preview_tab()->controller()), TabStripModel::CLOSE_NONE);
|
| }
|
|
|
| +void PrintPreviewHandler::OnPrintDialogShown() {
|
| + TabContents* initiator_tab = GetInitiatorTab();
|
| + DCHECK(initiator_tab);
|
| +
|
| + initiator_tab->Activate();
|
| + ClosePrintPreviewTab();
|
| +}
|
| +
|
| void PrintPreviewHandler::SelectFile(const FilePath& default_filename) {
|
| SelectFileDialog::FileTypeInfo file_type_info;
|
| file_type_info.extensions.resize(1);
|
| @@ -677,6 +684,16 @@ void PrintPreviewHandler::SelectFile(const FilePath& default_filename) {
|
| NULL);
|
| }
|
|
|
| +void PrintPreviewHandler::OnNavigation() {
|
| + TabContents* initiator_tab = GetInitiatorTab();
|
| + if (!initiator_tab)
|
| + return;
|
| +
|
| + TabContentsWrapper* wrapper =
|
| + TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab);
|
| + wrapper->print_view_manager()->set_observer(NULL);
|
| +}
|
| +
|
| void PrintPreviewHandler::FileSelected(const FilePath& path,
|
| int index, void* params) {
|
| PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui_);
|
| @@ -714,13 +731,14 @@ void PrintPreviewHandler::HidePreviewTab() {
|
|
|
| void PrintPreviewHandler::ClearInitiatorTabDetails() {
|
| TabContents* initiator_tab = GetInitiatorTab();
|
| - if (initiator_tab) {
|
| - // We no longer require the intiator tab details. Remove those details
|
| - // associated with the preview tab to allow the initiator tab to create
|
| - // another preview tab.
|
| - printing::PrintPreviewTabController* tab_controller =
|
| - printing::PrintPreviewTabController::GetInstance();
|
| - if (tab_controller)
|
| - tab_controller->EraseInitiatorTabInfo(preview_tab());
|
| - }
|
| + if (!initiator_tab)
|
| + return;
|
| +
|
| + // We no longer require the initiator tab details. Remove those details
|
| + // associated with the preview tab to allow the initiator tab to create
|
| + // another preview tab.
|
| + printing::PrintPreviewTabController* tab_controller =
|
| + printing::PrintPreviewTabController::GetInstance();
|
| + if (tab_controller)
|
| + tab_controller->EraseInitiatorTabInfo(preview_tab());
|
| }
|
|
|