Chromium Code Reviews| Index: chrome/browser/ui/browser.cc |
| =================================================================== |
| --- chrome/browser/ui/browser.cc (revision 99671) |
| +++ chrome/browser/ui/browser.cc (working copy) |
| @@ -61,6 +61,7 @@ |
| #include "chrome/browser/platform_util.h" |
| #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| #include "chrome/browser/prefs/pref_service.h" |
| +#include "chrome/browser/printing/background_printing_manager.h" |
| #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" |
| #include "chrome/browser/printing/print_preview_tab_controller.h" |
| #include "chrome/browser/printing/print_view_manager.h" |
| @@ -3447,6 +3448,19 @@ |
| return; |
| } |
| + // Various sites have a pattern which open a new window with output formatted |
| + // for printing, then include a print button, which does window.print(); |
| + // window.close(); An example is printing Virgin America boarding |
| + // pass. Instead of closing, when a print tab is associated with this tab, |
| + // tell the BackgroundPrintingManager to own it, which causes it to be |
| + // hidden and eventually closed when the print window is closed. |
| + TabContentsWrapper* source_wrapper = |
| + TabContentsWrapper::GetCurrentWrapperForContents(source); |
| + if (g_browser_process->background_printing_manager()-> |
| + OwnInitiatorTab(source_wrapper)) { |
|
kmadhusu
2011/09/07 23:21:10
nit: Fix indentation.
Lei Zhang
2011/09/07 23:41:16
Done.
|
| + return; |
| + } |
| + |
| int index = tab_handler_->GetTabStripModel()->GetWrapperIndex(source); |
| if (index == TabStripModel::kNoTab) { |
| NOTREACHED() << "CloseContents called for tab not in our strip"; |