diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-24 03:28:14 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-24 03:28:14 +0000 |
commit | de0ca76065a44ccbce60315aca8de7803586cac8 (patch) | |
tree | 4de70c2898c7bd892fe60dd0d2b0820626c3de0e /chrome/browser/printing | |
parent | 7f4c84ffe959733ebe3fe1e6c5ea2c65a2dc218f (diff) | |
download | chromium_src-de0ca76065a44ccbce60315aca8de7803586cac8.zip chromium_src-de0ca76065a44ccbce60315aca8de7803586cac8.tar.gz chromium_src-de0ca76065a44ccbce60315aca8de7803586cac8.tar.bz2 |
Cleanup: Move TabContents::PrintPreview() to PrintPreviewTabController to remove a contents-chrome dependency.
BUG=76795
TEST=none
R=arv@chromium.org
Review URL: http://codereview.chromium.org/6675017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79246 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/printing')
4 files changed, 35 insertions, 21 deletions
diff --git a/chrome/browser/printing/print_preview_message_handler.cc b/chrome/browser/printing/print_preview_message_handler.cc index a14738e..b050888 100644 --- a/chrome/browser/printing/print_preview_message_handler.cc +++ b/chrome/browser/printing/print_preview_message_handler.cc @@ -80,11 +80,11 @@ void PrintPreviewMessageHandler::OnPagesReadyForPreview( } void PrintPreviewMessageHandler::OnPrintPreviewNodeUnderContextMenu() { - tab_contents()->PrintPreview(); + PrintPreviewTabController::PrintPreview(tab_contents()); } void PrintPreviewMessageHandler::OnScriptInitiatedPrintPreview() { - tab_contents()->PrintPreview(); + PrintPreviewTabController::PrintPreview(tab_contents()); } bool PrintPreviewMessageHandler::OnMessageReceived( diff --git a/chrome/browser/printing/print_preview_tab_controller.cc b/chrome/browser/printing/print_preview_tab_controller.cc index ad6b1b2..24c4313 100644 --- a/chrome/browser/printing/print_preview_tab_controller.cc +++ b/chrome/browser/printing/print_preview_tab_controller.cc @@ -30,8 +30,20 @@ PrintPreviewTabController* PrintPreviewTabController::GetInstance() { return g_browser_process->print_preview_tab_controller(); } +// static +void PrintPreviewTabController::PrintPreview(TabContents* tab) { + if (tab->showing_interstitial_page()) + return; + + printing::PrintPreviewTabController* tab_controller = + printing::PrintPreviewTabController::GetInstance(); + if (!tab_controller) + return; + tab_controller->GetOrCreatePreviewTab(tab); +} + TabContents* PrintPreviewTabController::GetOrCreatePreviewTab( - TabContents* initiator_tab, SessionID::id_type browser_window_id ) { + TabContents* initiator_tab) { DCHECK(initiator_tab); // Get the print preview tab for |initiator_tab|. @@ -41,7 +53,7 @@ TabContents* PrintPreviewTabController::GetOrCreatePreviewTab( preview_tab->Activate(); return preview_tab; } - return CreatePrintPreviewTab(initiator_tab, browser_window_id); + return CreatePrintPreviewTab(initiator_tab); } TabContents* PrintPreviewTabController::GetPrintPreviewForTab( @@ -149,8 +161,9 @@ TabContents* PrintPreviewTabController::GetInitiatorTab( } TabContents* PrintPreviewTabController::CreatePrintPreviewTab( - TabContents* initiator_tab, int browser_window_id) { - Browser* current_browser = BrowserList::FindBrowserWithID(browser_window_id); + TabContents* initiator_tab) { + Browser* current_browser = BrowserList::FindBrowserWithID( + initiator_tab->controller().window_id().id()); // Add a new tab next to initiator tab. browser::NavigateParams params(current_browser, GURL(chrome::kChromeUIPrintURL), diff --git a/chrome/browser/printing/print_preview_tab_controller.h b/chrome/browser/printing/print_preview_tab_controller.h index ebb42c4..e501cff 100644 --- a/chrome/browser/printing/print_preview_tab_controller.h +++ b/chrome/browser/printing/print_preview_tab_controller.h @@ -35,10 +35,13 @@ class PrintPreviewTabController static PrintPreviewTabController* GetInstance(); + // Initiate print preview for |initiator_tab|. + // Call this instead of GetOrCreatePreviewTab(). + static void PrintPreview(TabContents* initiator_tab); + // Get/Create the print preview tab for |initiator_tab|. - // |browser_window_id| is the browser window containing |initiator_tab|. - TabContents* GetOrCreatePreviewTab( - TabContents* initiator_tab, SessionID::id_type browser_window_id); + // Exposed for unit tests. + TabContents* GetOrCreatePreviewTab(TabContents* initiator_tab); // Returns preview tab for |tab|. // Returns |tab| if |tab| is a preview tab. @@ -66,8 +69,7 @@ class PrintPreviewTabController typedef std::map<TabContents*, TabContents*> PrintPreviewTabMap; // Creates a new print preview tab. - TabContents* CreatePrintPreviewTab( - TabContents* initiator_tab, int browser_window_id); + TabContents* CreatePrintPreviewTab(TabContents* initiator_tab); // Adds/Removes observers for notifications from |tab|. void AddObservers(TabContents* tab); diff --git a/chrome/browser/printing/print_preview_tab_controller_unittest.cc b/chrome/browser/printing/print_preview_tab_controller_unittest.cc index b94df1b..6d3609f4 100644 --- a/chrome/browser/printing/print_preview_tab_controller_unittest.cc +++ b/chrome/browser/printing/print_preview_tab_controller_unittest.cc @@ -31,8 +31,8 @@ TEST_F(PrintPreviewTabControllerTest, GetOrCreatePreviewTab) { ASSERT_TRUE(tab_controller); // Get the preview tab for initiator tab. - TabContents* preview_tab = tab_controller->GetOrCreatePreviewTab( - initiator_tab, initiator_tab->controller().window_id().id()); + TabContents* preview_tab = + tab_controller->GetOrCreatePreviewTab(initiator_tab); // New print preview tab is created. Current focus is on preview tab. EXPECT_EQ(2, browser()->tab_count()); @@ -42,8 +42,8 @@ TEST_F(PrintPreviewTabControllerTest, GetOrCreatePreviewTab) { initiator_tab->Activate(); // Get the print preview tab for initiator tab. - TabContents* new_preview_tab = tab_controller->GetOrCreatePreviewTab( - initiator_tab, initiator_tab->controller().window_id().id()); + TabContents* new_preview_tab = + tab_controller->GetOrCreatePreviewTab(initiator_tab); // Preview tab already exists. Tab count remains the same. EXPECT_EQ(2, browser()->tab_count()); @@ -78,15 +78,15 @@ TEST_F(PrintPreviewTabControllerTest, MultiplePreviewTabs) { ASSERT_TRUE(tab_controller); // Create preview tab for |tab_contents_1| - TabContents* preview_tab_1 = tab_controller->GetOrCreatePreviewTab( - tab_contents_1, tab_contents_1->controller().window_id().id()); + TabContents* preview_tab_1 = + tab_controller->GetOrCreatePreviewTab(tab_contents_1); EXPECT_NE(tab_contents_1, preview_tab_1); EXPECT_EQ(3, browser()->tab_count()); // Create preview tab for |tab_contents_2| - TabContents* preview_tab_2 = tab_controller->GetOrCreatePreviewTab( - tab_contents_2, tab_contents_2->controller().window_id().id()); + TabContents* preview_tab_2 = + tab_controller->GetOrCreatePreviewTab(tab_contents_2); EXPECT_NE(tab_contents_2, preview_tab_2); // 2 initiator tab and 2 preview tabs exist in the same browser. @@ -108,7 +108,6 @@ TEST_F(PrintPreviewTabControllerTest, MultiplePreviewTabs) { // When we get the preview tab for |tab_contents_1|, // |preview_tab_1| is activated and focused. - tab_controller->GetOrCreatePreviewTab( - tab_contents_1, tab_contents_1->controller().window_id().id()); + tab_controller->GetOrCreatePreviewTab(tab_contents_1); EXPECT_EQ(preview_tab_1_index, browser()->selected_index()); } |