diff options
author | wittman@chromium.org <wittman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-31 17:56:06 +0000 |
---|---|---|
committer | wittman@chromium.org <wittman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-31 17:56:06 +0000 |
commit | ae57a18e11170253cf2515738bbdd09c37000c8f (patch) | |
tree | 51dc5666607de0326c54d6b5d3ccce77c8b30afe /chrome/browser/printing | |
parent | 026c6c24bbfd4d69bdabf2971605f7ab6983322f (diff) | |
download | chromium_src-ae57a18e11170253cf2515738bbdd09c37000c8f.zip chromium_src-ae57a18e11170253cf2515738bbdd09c37000c8f.tar.gz chromium_src-ae57a18e11170253cf2515738bbdd09c37000c8f.tar.bz2 |
Revert 212329 "Reland "Close web contents modal dialogs on conte..."
Causes several problems related to the print preview dialog:
http://crbug.com/262023
http://crbug.com/262916
http://crbug.com/265427
> Reland "Close web contents modal dialogs on content load start"
>
> Address the failure of some web contents modal dialogs to close when
> interstitial WebUI is displayed by closing the dialogs on content load start.
> Remove existing ad hoc support in dialogs for closing on page loading in favor
> of a uniform approach.
>
> I'm using load start as the trigger for dialog close as this seems to be the
> point in time at which the user first perceives the page to be changing.
>
> Notes on the print preview changes: with this change the dialog is closed when
> load starts and the initiator tab gets removed via RemovePreviewDialog, so there
> is no longer a need to handle NOTIFICATION_NAV_ENTRY_COMITTED for the initiator
> tab. The PrintViewManager::PrintPreviewDone() DCHECK is removed since now
> PrintViewManager::RenderViewGone() may be invoked and print_preview_state_ reset
> due to WebContents closure before the dialog is destroyed and PrintPreviewDone()
> is invoked.
>
> BUG=240575
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=211058
>
> Review URL: https://chromiumcodereview.appspot.com/17500003
TBR=wittman@chromium.org
Review URL: https://codereview.chromium.org/21372006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214775 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/printing')
6 files changed, 171 insertions, 179 deletions
diff --git a/chrome/browser/printing/background_printing_manager.cc b/chrome/browser/printing/background_printing_manager.cc index f0aa96a..4db8f15 100644 --- a/chrome/browser/printing/background_printing_manager.cc +++ b/chrome/browser/printing/background_printing_manager.cc @@ -63,15 +63,16 @@ void BackgroundPrintingManager::OwnPrintPreviewDialog( rph_source); } - // Activate the initiator. + // Activate the initiator tab. PrintPreviewDialogController* dialog_controller = PrintPreviewDialogController::GetInstance(); if (!dialog_controller) return; - WebContents* initiator = dialog_controller->GetInitiator(preview_dialog); - if (!initiator) + WebContents* initiator_tab = + dialog_controller->GetInitiatorTab(preview_dialog); + if (!initiator_tab) return; - initiator->GetDelegate()->ActivateContents(initiator); + initiator_tab->GetDelegate()->ActivateContents(initiator_tab); } void BackgroundPrintingManager::Observe( diff --git a/chrome/browser/printing/print_preview_dialog_controller.cc b/chrome/browser/printing/print_preview_dialog_controller.cc index 6d96eb3..3e4522f 100644 --- a/chrome/browser/printing/print_preview_dialog_controller.cc +++ b/chrome/browser/printing/print_preview_dialog_controller.cc @@ -74,7 +74,7 @@ void EnableInternalPDFPluginForContents(WebContents* preview_dialog) { // will look like. class PrintPreviewDialogDelegate : public WebDialogDelegate { public: - explicit PrintPreviewDialogDelegate(WebContents* initiator); + explicit PrintPreviewDialogDelegate(WebContents* initiator_tab); virtual ~PrintPreviewDialogDelegate(); virtual ui::ModalType GetDialogModalType() const OVERRIDE; @@ -90,13 +90,14 @@ class PrintPreviewDialogDelegate : public WebDialogDelegate { virtual bool ShouldShowDialogTitle() const OVERRIDE; private: - WebContents* initiator_; + WebContents* initiator_tab_; DISALLOW_COPY_AND_ASSIGN(PrintPreviewDialogDelegate); }; -PrintPreviewDialogDelegate::PrintPreviewDialogDelegate(WebContents* initiator) - : initiator_(initiator) { +PrintPreviewDialogDelegate::PrintPreviewDialogDelegate( + WebContents* initiator_tab) { + initiator_tab_ = initiator_tab; } PrintPreviewDialogDelegate::~PrintPreviewDialogDelegate() { @@ -128,7 +129,7 @@ void PrintPreviewDialogDelegate::GetDialogSize(gfx::Size* size) const { const int kBorder = 25; const int kConstrainedWindowOverlap = 3; gfx::Rect rect; - initiator_->GetView()->GetContainerBounds(&rect); + initiator_tab_->GetView()->GetContainerBounds(&rect); size->set_width(std::max(rect.width(), kMinDialogSize.width()) - 2 * kBorder); size->set_height(std::max(rect.height(), kMinDialogSize.height()) - kBorder + kConstrainedWindowOverlap); @@ -164,7 +165,7 @@ bool PrintPreviewDialogDelegate::ShouldShowDialogTitle() const { // renderer to the browser. class PrintPreviewWebContentDelegate : public WebDialogWebContentsDelegate { public: - PrintPreviewWebContentDelegate(Profile* profile, WebContents* initiator); + PrintPreviewWebContentDelegate(Profile* profile, WebContents* initiator_tab); virtual ~PrintPreviewWebContentDelegate(); // Overridden from WebDialogWebContentsDelegate: @@ -180,9 +181,9 @@ class PrintPreviewWebContentDelegate : public WebDialogWebContentsDelegate { PrintPreviewWebContentDelegate::PrintPreviewWebContentDelegate( Profile* profile, - WebContents* initiator) + WebContents* initiator_tab) : WebDialogWebContentsDelegate(profile, new ChromeWebContentsHandler), - tab_(initiator) {} + tab_(initiator_tab) {} PrintPreviewWebContentDelegate::~PrintPreviewWebContentDelegate() {} @@ -215,28 +216,28 @@ PrintPreviewDialogController* PrintPreviewDialogController::GetInstance() { } // static -void PrintPreviewDialogController::PrintPreview(WebContents* initiator) { - if (initiator->ShowingInterstitialPage()) +void PrintPreviewDialogController::PrintPreview(WebContents* initiator_tab) { + if (initiator_tab->ShowingInterstitialPage()) return; PrintPreviewDialogController* dialog_controller = GetInstance(); if (!dialog_controller) return; - if (!dialog_controller->GetOrCreatePreviewDialog(initiator)) - PrintViewManager::FromWebContents(initiator)->PrintPreviewDone(); + if (!dialog_controller->GetOrCreatePreviewDialog(initiator_tab)) + PrintViewManager::FromWebContents(initiator_tab)->PrintPreviewDone(); } WebContents* PrintPreviewDialogController::GetOrCreatePreviewDialog( - WebContents* initiator) { - DCHECK(initiator); + WebContents* initiator_tab) { + DCHECK(initiator_tab); - // Get the print preview dialog for |initiator|. - WebContents* preview_dialog = GetPrintPreviewForContents(initiator); + // Get the print preview dialog for |initiator_tab|. + WebContents* preview_dialog = GetPrintPreviewForContents(initiator_tab); if (!preview_dialog) - return CreatePrintPreviewDialog(initiator); + return CreatePrintPreviewDialog(initiator_tab); - // Show the initiator holding the existing preview dialog. - initiator->GetDelegate()->ActivateContents(initiator); + // Show the initiator tab holding the existing preview dialog. + initiator_tab->GetDelegate()->ActivateContents(initiator_tab); return preview_dialog; } @@ -251,7 +252,7 @@ WebContents* PrintPreviewDialogController::GetPrintPreviewForContents( for (it = preview_dialog_map_.begin(); it != preview_dialog_map_.end(); ++it) { - // If |contents| is an initiator. + // If |contents| is an initiator tab. if (contents == it->second) { // Return the associated preview dialog. return it->first; @@ -260,7 +261,7 @@ WebContents* PrintPreviewDialogController::GetPrintPreviewForContents( return NULL; } -WebContents* PrintPreviewDialogController::GetInitiator( +WebContents* PrintPreviewDialogController::GetInitiatorTab( WebContents* preview_dialog) { PrintPreviewDialogMap::iterator it = preview_dialog_map_.find(preview_dialog); return (it != preview_dialog_map_.end()) ? it->second : NULL; @@ -296,13 +297,13 @@ bool PrintPreviewDialogController::IsPrintPreviewURL(const GURL& url) { url.host() == chrome::kChromeUIPrintHost); } -void PrintPreviewDialogController::EraseInitiatorInfo( +void PrintPreviewDialogController::EraseInitiatorTabInfo( WebContents* preview_dialog) { PrintPreviewDialogMap::iterator it = preview_dialog_map_.find(preview_dialog); if (it == preview_dialog_map_.end()) return; - RemoveObservers(it->second, INITIATOR); + RemoveObservers(it->second); preview_dialog_map_[preview_dialog] = NULL; } @@ -312,17 +313,17 @@ void PrintPreviewDialogController::OnRendererProcessClosed( content::RenderProcessHost* rph) { // Store contents in a vector and deal with them after iterating through // |preview_dialog_map_| because RemoveFoo() can change |preview_dialog_map_|. - std::vector<WebContents*> closed_initiators; + std::vector<WebContents*> closed_initiator_tabs; std::vector<WebContents*> closed_preview_dialogs; for (PrintPreviewDialogMap::iterator iter = preview_dialog_map_.begin(); iter != preview_dialog_map_.end(); ++iter) { WebContents* preview_dialog = iter->first; - WebContents* initiator = iter->second; + WebContents* initiator_tab = iter->second; if (preview_dialog->GetRenderProcessHost() == rph) { closed_preview_dialogs.push_back(preview_dialog); - } else if (initiator && - initiator->GetRenderProcessHost() == rph) { - closed_initiators.push_back(initiator); + } else if (initiator_tab && + initiator_tab->GetRenderProcessHost() == rph) { + closed_initiator_tabs.push_back(initiator_tab); } } @@ -334,8 +335,8 @@ void PrintPreviewDialogController::OnRendererProcessClosed( print_preview_ui->OnPrintPreviewDialogClosed(); } - for (size_t i = 0; i < closed_initiators.size(); ++i) - RemoveInitiator(closed_initiators[i]); + for (size_t i = 0; i < closed_initiator_tabs.size(); ++i) + RemoveInitiatorTab(closed_initiator_tabs[i]); } void PrintPreviewDialogController::OnWebContentsDestroyed( @@ -349,7 +350,7 @@ void PrintPreviewDialogController::OnWebContentsDestroyed( if (contents == preview_dialog) RemovePreviewDialog(contents); else - RemoveInitiator(contents); + RemoveInitiatorTab(contents); } void PrintPreviewDialogController::OnNavEntryCommitted( @@ -360,40 +361,42 @@ void PrintPreviewDialogController::OnNavEntryCommitted( return; } - DCHECK_EQ(contents, preview_dialog); - - // Preview dialog navigated. - if (details) { - content::PageTransition transition_type = - details->entry->GetTransitionType(); - content::NavigationType nav_type = details->type; - - // New |preview_dialog| is created. Don't update/erase map entry. - if (waiting_for_new_preview_page_ && - transition_type == content::PAGE_TRANSITION_AUTO_TOPLEVEL && - nav_type == content::NAVIGATION_TYPE_NEW_PAGE) { - waiting_for_new_preview_page_ = false; - SaveInitiatorTitle(preview_dialog); - return; - } - - // Cloud print sign-in causes a reload. - if (!waiting_for_new_preview_page_ && - transition_type == content::PAGE_TRANSITION_RELOAD && - nav_type == content::NAVIGATION_TYPE_EXISTING_PAGE && - IsPrintPreviewURL(details->previous_url)) { - return; + if (contents == preview_dialog) { + // Preview dialog navigated. + if (details) { + content::PageTransition transition_type = + details->entry->GetTransitionType(); + content::NavigationType nav_type = details->type; + + // New |preview_dialog| is created. Don't update/erase map entry. + if (waiting_for_new_preview_page_ && + transition_type == content::PAGE_TRANSITION_AUTO_TOPLEVEL && + nav_type == content::NAVIGATION_TYPE_NEW_PAGE) { + waiting_for_new_preview_page_ = false; + SaveInitiatorTabTitle(preview_dialog); + return; + } + + // Cloud print sign-in causes a reload. + if (!waiting_for_new_preview_page_ && + transition_type == content::PAGE_TRANSITION_RELOAD && + nav_type == content::NAVIGATION_TYPE_EXISTING_PAGE && + IsPrintPreviewURL(details->previous_url)) { + return; + } } + NOTREACHED(); + return; } - NOTREACHED(); + RemoveInitiatorTab(contents); } WebContents* PrintPreviewDialogController::CreatePrintPreviewDialog( - WebContents* initiator) { + WebContents* initiator_tab) { base::AutoReset<bool> auto_reset(&is_creating_print_preview_dialog_, true); Profile* profile = - Profile::FromBrowserContext(initiator->GetBrowserContext()); + Profile::FromBrowserContext(initiator_tab->GetBrowserContext()); if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kChromeFrame)) { // Chrome Frame only ever runs on the native desktop, so it is safe to // create the popup on the native desktop. @@ -409,48 +412,45 @@ WebContents* PrintPreviewDialogController::CreatePrintPreviewDialog( // |web_dialog_ui_delegate| deletes itself in // PrintPreviewDialogDelegate::OnDialogClosed(). WebDialogDelegate* web_dialog_delegate = - new PrintPreviewDialogDelegate(initiator); + new PrintPreviewDialogDelegate(initiator_tab); // |web_dialog_delegate|'s owner is |constrained_delegate|. PrintPreviewWebContentDelegate* pp_wcd = - new PrintPreviewWebContentDelegate(profile, initiator); + new PrintPreviewWebContentDelegate(profile, initiator_tab); ConstrainedWebDialogDelegate* constrained_delegate = CreateConstrainedWebDialog(profile, web_dialog_delegate, pp_wcd, - initiator); + initiator_tab); WebContents* preview_dialog = constrained_delegate->GetWebContents(); EnableInternalPDFPluginForContents(preview_dialog); PrintViewManager::CreateForWebContents(preview_dialog); // Add an entry to the map. - preview_dialog_map_[preview_dialog] = initiator; + preview_dialog_map_[preview_dialog] = initiator_tab; waiting_for_new_preview_page_ = true; - AddObservers(initiator, INITIATOR); - AddObservers(preview_dialog, PREVIEW_DIALOG); + AddObservers(initiator_tab); + AddObservers(preview_dialog); return preview_dialog; } -void PrintPreviewDialogController::SaveInitiatorTitle( +void PrintPreviewDialogController::SaveInitiatorTabTitle( WebContents* preview_dialog) { - WebContents* initiator = GetInitiator(preview_dialog); - if (initiator && preview_dialog->GetWebUI()) { + WebContents* initiator_tab = GetInitiatorTab(preview_dialog); + if (initiator_tab && preview_dialog->GetWebUI()) { PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( preview_dialog->GetWebUI()->GetController()); - print_preview_ui->SetInitiatorTitle( - PrintViewManager::FromWebContents(initiator)->RenderSourceName()); + print_preview_ui->SetInitiatorTabTitle( + PrintViewManager::FromWebContents(initiator_tab)->RenderSourceName()); } } -void PrintPreviewDialogController::AddObservers(WebContents* contents, - ContentsType contents_type) { +void PrintPreviewDialogController::AddObservers(WebContents* contents) { registrar_.Add(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED, content::Source<WebContents>(contents)); - if (contents_type == PREVIEW_DIALOG) { - registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, - content::Source<NavigationController>(&contents->GetController())); - } + registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, + content::Source<NavigationController>(&contents->GetController())); // Multiple sites may share the same RenderProcessHost, so check if this // notification has already been added. @@ -463,14 +463,11 @@ void PrintPreviewDialogController::AddObservers(WebContents* contents, } } -void PrintPreviewDialogController::RemoveObservers(WebContents* contents, - ContentsType contents_type) { +void PrintPreviewDialogController::RemoveObservers(WebContents* contents) { registrar_.Remove(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED, content::Source<WebContents>(contents)); - if (contents_type == PREVIEW_DIALOG) { - registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, - content::Source<NavigationController>(&contents->GetController())); - } + registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, + content::Source<NavigationController>(&contents->GetController())); // Multiple sites may share the same RenderProcessHost, so check if this // notification has already been added. @@ -483,43 +480,43 @@ void PrintPreviewDialogController::RemoveObservers(WebContents* contents, } } -void PrintPreviewDialogController::RemoveInitiator( - WebContents* initiator) { - WebContents* preview_dialog = GetPrintPreviewForContents(initiator); +void PrintPreviewDialogController::RemoveInitiatorTab( + WebContents* initiator_tab) { + WebContents* preview_dialog = GetPrintPreviewForContents(initiator_tab); DCHECK(preview_dialog); // Update the map entry first, so when the print preview dialog gets destroyed // and reaches RemovePreviewDialog(), it does not attempt to also remove the - // initiator's observers. + // initiator tab's observers. preview_dialog_map_[preview_dialog] = NULL; - RemoveObservers(initiator, INITIATOR); + RemoveObservers(initiator_tab); - PrintViewManager::FromWebContents(initiator)->PrintPreviewDone(); + PrintViewManager::FromWebContents(initiator_tab)->PrintPreviewDone(); - // initiator is closed. Close the print preview dialog too. + // Initiator tab is closed. Close the print preview dialog too. PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(preview_dialog->GetWebUI()->GetController()); if (print_preview_ui) - print_preview_ui->OnInitiatorClosed(); + print_preview_ui->OnInitiatorTabClosed(); } void PrintPreviewDialogController::RemovePreviewDialog( WebContents* preview_dialog) { - // Remove the initiator's observers before erasing the mapping. - WebContents* initiator = GetInitiator(preview_dialog); - if (initiator) { - RemoveObservers(initiator, INITIATOR); - PrintViewManager::FromWebContents(initiator)->PrintPreviewDone(); + // Remove the initiator tab's observers before erasing the mapping. + WebContents* initiator_tab = GetInitiatorTab(preview_dialog); + if (initiator_tab) { + RemoveObservers(initiator_tab); + PrintViewManager::FromWebContents(initiator_tab)->PrintPreviewDone(); } // Print preview WebContents is destroyed. Notify |PrintPreviewUI| to abort - // the initiator preview request. + // the initiator tab preview request. PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(preview_dialog->GetWebUI()->GetController()); if (print_preview_ui) print_preview_ui->OnPrintPreviewDialogDestroyed(); preview_dialog_map_.erase(preview_dialog); - RemoveObservers(preview_dialog, PREVIEW_DIALOG); + RemoveObservers(preview_dialog); } } // namespace printing diff --git a/chrome/browser/printing/print_preview_dialog_controller.h b/chrome/browser/printing/print_preview_dialog_controller.h index da5d385..0ce70db 100644 --- a/chrome/browser/printing/print_preview_dialog_controller.h +++ b/chrome/browser/printing/print_preview_dialog_controller.h @@ -1,4 +1,4 @@ - // Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -22,9 +22,9 @@ class WebContents; namespace printing { -// For print preview, the WebContents that initiates the printing operation is -// the initiator, and the constrained dialog that shows the print preview is the -// print preview dialog. +// For print preview, the tab that initiates the printing operation is the +// initiator tab, and the constrained dialog that shows the print preview is +// the print preview dialog. // This class manages print preview dialog creation and destruction, and keeps // track of the 1:1 relationship between initiatora tabs and print preview // dialogs. @@ -36,14 +36,14 @@ class PrintPreviewDialogController static PrintPreviewDialogController* GetInstance(); - // Initiate print preview for |initiator|. + // Initiate print preview for |initiator_tab|. // Call this instead of GetOrCreatePreviewDialog(). - static void PrintPreview(content::WebContents* initiator); + static void PrintPreview(content::WebContents* initiator_tab); - // Get/Create the print preview dialog for |initiator|. + // Get/Create the print preview dialog for |initiator_tab|. // Exposed for unit tests. content::WebContents* GetOrCreatePreviewDialog( - content::WebContents* initiator); + content::WebContents* initiator_tab); // Returns the preview dialog for |contents|. // Returns |contents| if |contents| is a preview dialog. @@ -51,9 +51,9 @@ class PrintPreviewDialogController content::WebContents* GetPrintPreviewForContents( content::WebContents* contents) const; - // Returns the initiator for |preview_dialog|. - // Returns NULL if no initiator exists for |preview_dialog|. - content::WebContents* GetInitiator(content::WebContents* preview_dialog); + // Returns the initiator tab for |preview_dialog|. + // Returns NULL if no initiator tab exists for |preview_dialog|. + content::WebContents* GetInitiatorTab(content::WebContents* preview_dialog); // content::NotificationObserver implementation. virtual void Observe(int type, @@ -66,8 +66,8 @@ class PrintPreviewDialogController // Returns true if |url| is a print preview url. static bool IsPrintPreviewURL(const GURL& url); - // Erase the initiator info associated with |preview_dialog|. - void EraseInitiatorInfo(content::WebContents* preview_dialog); + // Erase the initiator tab info associated with |preview_tab|. + void EraseInitiatorTabInfo(content::WebContents* preview_tab); bool is_creating_print_preview_dialog() const { return is_creating_print_preview_dialog_; @@ -76,16 +76,9 @@ class PrintPreviewDialogController private: friend class base::RefCounted<PrintPreviewDialogController>; - // Used to distinguish between the two varieties of WebContents dealt with by - // this class. - enum ContentsType { - INITIATOR, - PREVIEW_DIALOG - }; - - // 1:1 relationship between a print preview dialog and its initiator. + // 1:1 relationship between a print preview dialog and its initiator tab. // Key: Print preview dialog. - // Value: Initiator. + // Value: Initiator tab. typedef std::map<content::WebContents*, content::WebContents*> PrintPreviewDialogMap; @@ -106,22 +99,21 @@ class PrintPreviewDialogController // Creates a new print preview dialog. content::WebContents* CreatePrintPreviewDialog( - content::WebContents* initiator); + content::WebContents* initiator_tab); - // Helper function to store the title of the initiator associated with + // Helper function to store the title of the initiator tab associated with // |preview_dialog| in |preview_dialog|'s PrintPreviewUI. - void SaveInitiatorTitle(content::WebContents* preview_dialog); + void SaveInitiatorTabTitle(content::WebContents* preview_dialog); // Adds/Removes observers for notifications from |contents|. - void AddObservers(content::WebContents* contents, ContentsType contents_type); - void RemoveObservers(content::WebContents* contents, - ContentsType contents_type); + void AddObservers(content::WebContents* contents); + void RemoveObservers(content::WebContents* contents); // Removes WebContents when they close/crash/navigate. - void RemoveInitiator(content::WebContents* initiator); + void RemoveInitiatorTab(content::WebContents* initiator_tab); void RemovePreviewDialog(content::WebContents* preview_dialog); - // Mapping between print preview dialog and the corresponding initiator. + // Mapping between print preview dialog and the corresponding initiator tab. PrintPreviewDialogMap preview_dialog_map_; // A registrar for listening notifications. diff --git a/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc b/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc index c64c3bf8..b9bcb4e 100644 --- a/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc +++ b/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc @@ -103,11 +103,11 @@ class PrintPreviewDialogDestroyedObserver : public WebContentsObserver { class PrintPreviewDialogControllerBrowserTest : public InProcessBrowserTest { public: - PrintPreviewDialogControllerBrowserTest() : initiator_(NULL) {} + PrintPreviewDialogControllerBrowserTest() : initiator_tab_(NULL) {} virtual ~PrintPreviewDialogControllerBrowserTest() {} - WebContents* initiator() { - return initiator_; + WebContents* initiator_tab() { + return initiator_tab_; } void PrintPreview() { @@ -120,7 +120,7 @@ class PrintPreviewDialogControllerBrowserTest : public InProcessBrowserTest { WebContents* GetPrintPreviewDialog() { printing::PrintPreviewDialogController* dialog_controller = printing::PrintPreviewDialogController::GetInstance(); - return dialog_controller->GetPrintPreviewForContents(initiator_); + return dialog_controller->GetPrintPreviewForContents(initiator_tab_); } private: @@ -143,14 +143,14 @@ class PrintPreviewDialogControllerBrowserTest : public InProcessBrowserTest { cloned_tab_observer_.reset(new PrintPreviewDialogClonedObserver(first_tab)); chrome::DuplicateTab(browser()); - initiator_ = browser()->tab_strip_model()->GetActiveWebContents(); - ASSERT_TRUE(initiator_); - ASSERT_NE(first_tab, initiator_); + initiator_tab_ = browser()->tab_strip_model()->GetActiveWebContents(); + ASSERT_TRUE(initiator_tab_); + ASSERT_NE(first_tab, initiator_tab_); } virtual void CleanUpOnMainThread() OVERRIDE { cloned_tab_observer_.reset(); - initiator_ = NULL; + initiator_tab_ = NULL; } RequestPrintPreviewObserver* request_preview_tab_observer() { @@ -158,13 +158,13 @@ class PrintPreviewDialogControllerBrowserTest : public InProcessBrowserTest { } scoped_ptr<PrintPreviewDialogClonedObserver> cloned_tab_observer_; - WebContents* initiator_; + WebContents* initiator_tab_; DISALLOW_COPY_AND_ASSIGN(PrintPreviewDialogControllerBrowserTest); }; -// Test to verify that when a initiator navigates, we can create a new preview -// dialog for the new tab contents. +// Test to verify that when a initiator tab navigates, we can create a new +// preview dialog for the new tab contents. IN_PROC_BROWSER_TEST_F(PrintPreviewDialogControllerBrowserTest, NavigateFromInitiatorTab) { // print for the first time. @@ -175,7 +175,7 @@ IN_PROC_BROWSER_TEST_F(PrintPreviewDialogControllerBrowserTest, // Check a new print preview dialog got created. ASSERT_TRUE(preview_dialog); - ASSERT_NE(initiator(), preview_dialog); + ASSERT_NE(initiator_tab(), preview_dialog); // Navigate in the initiator tab. Make sure navigating destroys the print // preview dialog. @@ -193,8 +193,8 @@ IN_PROC_BROWSER_TEST_F(PrintPreviewDialogControllerBrowserTest, EXPECT_TRUE(new_preview_dialog); } -// Test to verify that after reloading the initiator, it creates a new print -// preview dialog. +// Test to verify that after reloading the initiator tab, it creates a new +// print preview dialog. IN_PROC_BROWSER_TEST_F(PrintPreviewDialogControllerBrowserTest, ReloadInitiatorTab) { // print for the first time. @@ -204,9 +204,9 @@ IN_PROC_BROWSER_TEST_F(PrintPreviewDialogControllerBrowserTest, // Check a new print preview dialog got created. ASSERT_TRUE(preview_dialog); - ASSERT_NE(initiator(), preview_dialog); + ASSERT_NE(initiator_tab(), preview_dialog); - // Reload the initiator. Make sure reloading destroys the print preview + // Reload the initiator tab. Make sure reloading destroys the print preview // dialog. PrintPreviewDialogDestroyedObserver dialog_destroyed_observer(preview_dialog); content::WindowedNotificationObserver notification_observer( diff --git a/chrome/browser/printing/print_preview_dialog_controller_unittest.cc b/chrome/browser/printing/print_preview_dialog_controller_unittest.cc index 6ec20ba..a336631 100644 --- a/chrome/browser/printing/print_preview_dialog_controller_unittest.cc +++ b/chrome/browser/printing/print_preview_dialog_controller_unittest.cc @@ -16,23 +16,23 @@ using content::WebContents; -// Test crashes on Aura due to initiator's native view having no parent. +// Test crashes on Aura due to initiator tab's native view having no parent. // http://crbug.com/104284 #if defined(USE_AURA) #define MAYBE_GetOrCreatePreviewDialog DISABLED_GetOrCreatePreviewDialog #define MAYBE_MultiplePreviewDialogs DISABLED_MultiplePreviewDialogs -#define MAYBE_ClearInitiatorDetails DISABLED_ClearInitiatorDetails +#define MAYBE_ClearInitiatorTabDetails DISABLED_ClearInitiatorTabDetails #else #define MAYBE_GetOrCreatePreviewDialog GetOrCreatePreviewDialog #define MAYBE_MultiplePreviewDialogs MultiplePreviewDialogs -#define MAYBE_ClearInitiatorDetails ClearInitiatorDetails +#define MAYBE_ClearInitiatorTabDetails ClearInitiatorTabDetails #endif namespace printing { typedef PrintPreviewTest PrintPreviewDialogControllerUnitTest; -// Create/Get a preview dialog for initiator. +// Create/Get a preview dialog for initiator tab. TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_GetOrCreatePreviewDialog) { // Lets start with one window with one tab. EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); @@ -40,37 +40,38 @@ TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_GetOrCreatePreviewDialog) { chrome::NewTab(browser()); EXPECT_EQ(1, browser()->tab_strip_model()->count()); - // Create a reference to initiator contents. - WebContents* initiator = browser()->tab_strip_model()->GetActiveWebContents(); + // Create a reference to initiator tab contents. + WebContents* initiator_tab = + browser()->tab_strip_model()->GetActiveWebContents(); PrintPreviewDialogController* dialog_controller = PrintPreviewDialogController::GetInstance(); ASSERT_TRUE(dialog_controller); - // Get the preview dialog for initiator. - PrintViewManager::FromWebContents(initiator)->PrintPreviewNow(false); + // Get the preview dialog for initiator tab. + PrintViewManager::FromWebContents(initiator_tab)->PrintPreviewNow(false); WebContents* preview_dialog = - dialog_controller->GetOrCreatePreviewDialog(initiator); + dialog_controller->GetOrCreatePreviewDialog(initiator_tab); // New print preview dialog is a constrained window, so the number of tabs is // still 1. EXPECT_EQ(1, browser()->tab_strip_model()->count()); - EXPECT_NE(initiator, preview_dialog); + EXPECT_NE(initiator_tab, preview_dialog); - // Get the print preview dialog for the same initiator. + // Get the print preview dialog for the same initiator tab. WebContents* new_preview_dialog = - dialog_controller->GetOrCreatePreviewDialog(initiator); + dialog_controller->GetOrCreatePreviewDialog(initiator_tab); // Preview dialog already exists. Tab count remains the same. EXPECT_EQ(1, browser()->tab_strip_model()->count()); - // 1:1 relationship between initiator and preview dialog. + // 1:1 relationship between initiator tab and preview dialog. EXPECT_EQ(new_preview_dialog, preview_dialog); } -// Tests multiple print preview dialogs exist in the same browser for different -// initiators. If a preview dialog already exists for an initiator, that -// initiator gets focused. +// Tests multiple print preview dialogs exist in the same browser for +// different initiator tabs. If a preview dialog already exists for an +// initiator tab, that initiator tab gets focused. TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_MultiplePreviewDialogs) { // Lets start with one window and two tabs. EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); @@ -79,7 +80,7 @@ TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_MultiplePreviewDialogs) { EXPECT_EQ(0, tab_strip_model->count()); - // Create some new initiators. + // Create some new initiator tabs. chrome::NewTab(browser()); WebContents* web_contents_1 = tab_strip_model->GetActiveWebContents(); ASSERT_TRUE(web_contents_1); @@ -108,8 +109,8 @@ TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_MultiplePreviewDialogs) { EXPECT_NE(web_contents_2, preview_dialog_2); EXPECT_NE(preview_dialog_1, preview_dialog_2); - // 2 initiators and 2 preview dialogs exist in the same browser. The preview - // dialogs are constrained in their respective initiators. + // 2 initiator tabs and 2 preview dialogs exist in the same browser. + // The preview dialogs are constrained in their respective initiator tabs. EXPECT_EQ(2, tab_strip_model->count()); int tab_1_index = tab_strip_model->GetIndexOfWebContents(web_contents_1); @@ -124,7 +125,7 @@ TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_MultiplePreviewDialogs) { EXPECT_EQ(-1, preview_dialog_2_index); // Since |preview_dialog_2_index| was the most recently created dialog, its - // initiator should have focus. + // initiator tab should have focus. EXPECT_EQ(tab_2_index, tab_strip_model->active_index()); // When we get the preview dialog for |web_contents_1|, @@ -133,38 +134,39 @@ TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_MultiplePreviewDialogs) { EXPECT_EQ(tab_1_index, tab_strip_model->active_index()); } -// Check clearing the initiator details associated with a print preview dialog -// allows the initiator to create another print preview dialog. -TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_ClearInitiatorDetails) { +// Check clearing the initiator tab details associated with a print preview +// dialog allows the initiator tab to create another print preview dialog. +TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_ClearInitiatorTabDetails) { // Lets start with one window with one tab. EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); EXPECT_EQ(0, browser()->tab_strip_model()->count()); chrome::NewTab(browser()); EXPECT_EQ(1, browser()->tab_strip_model()->count()); - // Create a reference to initiator contents. - WebContents* initiator = browser()->tab_strip_model()->GetActiveWebContents(); + // Create a reference to initiator tab contents. + WebContents* initiator_tab = + browser()->tab_strip_model()->GetActiveWebContents(); PrintPreviewDialogController* dialog_controller = PrintPreviewDialogController::GetInstance(); ASSERT_TRUE(dialog_controller); - // Get the preview dialog for the initiator. - PrintViewManager::FromWebContents(initiator)->PrintPreviewNow(false); + // Get the preview dialog for the initiator tab. + PrintViewManager::FromWebContents(initiator_tab)->PrintPreviewNow(false); WebContents* preview_dialog = - dialog_controller->GetOrCreatePreviewDialog(initiator); + dialog_controller->GetOrCreatePreviewDialog(initiator_tab); // New print preview dialog is a constrained window, so the number of tabs is // still 1. EXPECT_EQ(1, browser()->tab_strip_model()->count()); - EXPECT_NE(initiator, preview_dialog); + EXPECT_NE(initiator_tab, preview_dialog); - // Clear the initiator details associated with the preview dialog. - dialog_controller->EraseInitiatorInfo(preview_dialog); + // Clear the initiator tab details associated with the preview dialog. + dialog_controller->EraseInitiatorTabInfo(preview_dialog); - // Get a new print preview dialog for the initiator. + // Get a new print preview dialog for the initiator tab. WebContents* new_preview_dialog = - dialog_controller->GetOrCreatePreviewDialog(initiator); + dialog_controller->GetOrCreatePreviewDialog(initiator_tab); // New print preview dialog is a constrained window, so the number of tabs is // still 1. diff --git a/chrome/browser/printing/print_view_manager.h b/chrome/browser/printing/print_view_manager.h index 616ff00..55b4708 100644 --- a/chrome/browser/printing/print_view_manager.h +++ b/chrome/browser/printing/print_view_manager.h @@ -46,7 +46,7 @@ class PrintViewManager : public content::NotificationObserver, bool PrintForSystemDialogNow(); // Same as PrintNow(), but for the case where a user press "ctrl+shift+p" to - // show the native system dialog. This can happen from both initiator and + // show the native system dialog. This can happen from both initiator tab and // preview dialog. bool AdvancedPrintNow(); |