summaryrefslogtreecommitdiffstats
path: root/chrome/browser/printing
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-24 03:28:14 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-24 03:28:14 +0000
commitde0ca76065a44ccbce60315aca8de7803586cac8 (patch)
tree4de70c2898c7bd892fe60dd0d2b0820626c3de0e /chrome/browser/printing
parent7f4c84ffe959733ebe3fe1e6c5ea2c65a2dc218f (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/printing/print_preview_message_handler.cc4
-rw-r--r--chrome/browser/printing/print_preview_tab_controller.cc21
-rw-r--r--chrome/browser/printing/print_preview_tab_controller.h12
-rw-r--r--chrome/browser/printing/print_preview_tab_controller_unittest.cc19
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());
}