summaryrefslogtreecommitdiffstats
path: root/chrome/browser/printing
diff options
context:
space:
mode:
authorwittman@chromium.org <wittman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-31 17:56:06 +0000
committerwittman@chromium.org <wittman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-31 17:56:06 +0000
commitae57a18e11170253cf2515738bbdd09c37000c8f (patch)
tree51dc5666607de0326c54d6b5d3ccce77c8b30afe /chrome/browser/printing
parent026c6c24bbfd4d69bdabf2971605f7ab6983322f (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/printing/background_printing_manager.cc9
-rw-r--r--chrome/browser/printing/print_preview_dialog_controller.cc187
-rw-r--r--chrome/browser/printing/print_preview_dialog_controller.h52
-rw-r--r--chrome/browser/printing/print_preview_dialog_controller_browsertest.cc32
-rw-r--r--chrome/browser/printing/print_preview_dialog_controller_unittest.cc68
-rw-r--r--chrome/browser/printing/print_view_manager.h2
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();