summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/shell_window.cc2
-rw-r--r--chrome/browser/chromeos/login/simple_web_view_dialog.cc2
-rw-r--r--chrome/browser/chromeos/login/webui_login_view.cc2
-rw-r--r--chrome/browser/extensions/extension_host.cc2
-rw-r--r--chrome/browser/ui/browser.cc2
-rw-r--r--chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_cocoa.mm4
-rw-r--r--chrome/browser/ui/gtk/web_contents_modal_dialog_manager_gtk.cc4
-rw-r--r--chrome/browser/ui/views/web_contents_modal_dialog_manager_views.cc4
-rw-r--r--components/web_modal/native_web_contents_modal_dialog_manager.h5
-rw-r--r--components/web_modal/web_contents_modal_dialog_manager.cc7
-rw-r--r--components/web_modal/web_contents_modal_dialog_manager.h2
-rw-r--r--components/web_modal/web_contents_modal_dialog_manager_unittest.cc2
12 files changed, 32 insertions, 6 deletions
diff --git a/apps/shell_window.cc b/apps/shell_window.cc
index 23d63f8..425adf6 100644
--- a/apps/shell_window.cc
+++ b/apps/shell_window.cc
@@ -91,7 +91,7 @@ void ShellWindow::Init(const GURL& url,
web_contents->SetDelegate(this);
WebContentsModalDialogManager::FromWebContents(web_contents)->
- set_delegate(this);
+ SetDelegate(this);
extensions::SetViewType(web_contents, extensions::VIEW_TYPE_APP_SHELL);
// Initialize the window
diff --git a/chrome/browser/chromeos/login/simple_web_view_dialog.cc b/chrome/browser/chromeos/login/simple_web_view_dialog.cc
index 02596e4..a3fa375 100644
--- a/chrome/browser/chromeos/login/simple_web_view_dialog.cc
+++ b/chrome/browser/chromeos/login/simple_web_view_dialog.cc
@@ -160,7 +160,7 @@ void SimpleWebViewDialog::StartLoad(const GURL& url) {
// LoginHandlerViews uses a constrained window for the password manager view.
WebContentsModalDialogManager::CreateForWebContents(web_contents);
WebContentsModalDialogManager::FromWebContents(web_contents)->
- set_delegate(this);
+ SetDelegate(this);
}
void SimpleWebViewDialog::Init() {
diff --git a/chrome/browser/chromeos/login/webui_login_view.cc b/chrome/browser/chromeos/login/webui_login_view.cc
index d3051f7..d15a607 100644
--- a/chrome/browser/chromeos/login/webui_login_view.cc
+++ b/chrome/browser/chromeos/login/webui_login_view.cc
@@ -218,7 +218,7 @@ void WebUILoginView::Init(views::Widget* login_window) {
// LoginHandlerViews uses a constrained window for the password manager view.
WebContentsModalDialogManager::CreateForWebContents(web_contents);
WebContentsModalDialogManager::FromWebContents(web_contents)->
- set_delegate(this);
+ SetDelegate(this);
web_contents->SetDelegate(this);
renderer_preferences_util::UpdateFromSystemSettings(
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc
index f6462a2..7388727 100644
--- a/chrome/browser/extensions/extension_host.cc
+++ b/chrome/browser/extensions/extension_host.cc
@@ -271,7 +271,7 @@ void ExtensionHost::LoadInitialURL() {
web_modal::WebContentsModalDialogManager::CreateForWebContents(
host_contents_.get());
web_modal::WebContentsModalDialogManager::FromWebContents(
- host_contents_.get())->set_delegate(this);
+ host_contents_.get())->SetDelegate(this);
}
#endif
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index bc4d0c2..832ceee 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -2086,7 +2086,7 @@ void Browser::SetAsDelegate(WebContents* web_contents, Browser* delegate) {
set_delegate(delegate);
BookmarkTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
WebContentsModalDialogManager::FromWebContents(web_contents)->
- set_delegate(delegate);
+ SetDelegate(delegate);
CoreTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
SearchEngineTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
ZoomController::FromWebContents(web_contents)->set_observer(delegate);
diff --git a/chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_cocoa.mm b/chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_cocoa.mm
index ef73a61..5d19bc6 100644
--- a/chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_cocoa.mm
+++ b/chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_cocoa.mm
@@ -43,6 +43,10 @@ class NativeWebContentsModalDialogManagerCocoa
GetConstrainedWindowMac(dialog)->PulseWebContentsModalDialog();
}
+ virtual void HostChanged(
+ web_modal::WebContentsModalDialogHost* new_host) OVERRIDE {
+ }
+
private:
static ConstrainedWindowMac* GetConstrainedWindowMac(
NativeWebContentsModalDialog dialog) {
diff --git a/chrome/browser/ui/gtk/web_contents_modal_dialog_manager_gtk.cc b/chrome/browser/ui/gtk/web_contents_modal_dialog_manager_gtk.cc
index a89bef2..5eba5a9 100644
--- a/chrome/browser/ui/gtk/web_contents_modal_dialog_manager_gtk.cc
+++ b/chrome/browser/ui/gtk/web_contents_modal_dialog_manager_gtk.cc
@@ -86,6 +86,10 @@ class NativeWebContentsModalDialogManagerGtk
virtual void PulseDialog(NativeWebContentsModalDialog dialog) OVERRIDE {
}
+ virtual void HostChanged(
+ web_modal::WebContentsModalDialogHost* new_host) OVERRIDE {
+ }
+
private:
typedef ChromeWebContentsViewDelegateGtk TabContentsViewType;
diff --git a/chrome/browser/ui/views/web_contents_modal_dialog_manager_views.cc b/chrome/browser/ui/views/web_contents_modal_dialog_manager_views.cc
index d7e9d51..10b1e2b 100644
--- a/chrome/browser/ui/views/web_contents_modal_dialog_manager_views.cc
+++ b/chrome/browser/ui/views/web_contents_modal_dialog_manager_views.cc
@@ -167,6 +167,10 @@ class NativeWebContentsModalDialogManagerViews
WidgetClosing(widget);
}
+ virtual void HostChanged(
+ web_modal::WebContentsModalDialogHost* new_host) OVERRIDE {
+ }
+
private:
#if defined(USE_AURA)
// aura::WindowObserver overrides
diff --git a/components/web_modal/native_web_contents_modal_dialog_manager.h b/components/web_modal/native_web_contents_modal_dialog_manager.h
index 7145a08..4df3680 100644
--- a/components/web_modal/native_web_contents_modal_dialog_manager.h
+++ b/components/web_modal/native_web_contents_modal_dialog_manager.h
@@ -13,6 +13,8 @@ class WebContents;
namespace web_modal {
+class WebContentsModalDialogHost;
+
// Interface from NativeWebContentsModalDialogManager to
// WebContentsModalDialogManager.
class NativeWebContentsModalDialogManagerDelegate {
@@ -54,6 +56,9 @@ class NativeWebContentsModalDialogManager {
// Runs a pulse animation for the web contents modal dialog.
virtual void PulseDialog(NativeWebContentsModalDialog dialog) = 0;
+ // Called when the host view for the dialog has changed.
+ virtual void HostChanged(WebContentsModalDialogHost* new_host) = 0;
+
protected:
NativeWebContentsModalDialogManager() {}
diff --git a/components/web_modal/web_contents_modal_dialog_manager.cc b/components/web_modal/web_contents_modal_dialog_manager.cc
index 0e07f8d..f30b6a0 100644
--- a/components/web_modal/web_contents_modal_dialog_manager.cc
+++ b/components/web_modal/web_contents_modal_dialog_manager.cc
@@ -25,6 +25,13 @@ WebContentsModalDialogManager::~WebContentsModalDialogManager() {
DCHECK(child_dialogs_.empty());
}
+void WebContentsModalDialogManager::SetDelegate(
+ WebContentsModalDialogManagerDelegate* d) {
+ delegate_ = d;
+ // Delegate can be NULL on Views/Win32 during tab drag.
+ native_manager_->HostChanged(d ? d->GetWebContentsModalDialogHost() : NULL);
+}
+
void WebContentsModalDialogManager::ShowDialog(
NativeWebContentsModalDialog dialog) {
child_dialogs_.push_back(dialog);
diff --git a/components/web_modal/web_contents_modal_dialog_manager.h b/components/web_modal/web_contents_modal_dialog_manager.h
index e2548c0..09115f0 100644
--- a/components/web_modal/web_contents_modal_dialog_manager.h
+++ b/components/web_modal/web_contents_modal_dialog_manager.h
@@ -29,7 +29,7 @@ class WebContentsModalDialogManager
virtual ~WebContentsModalDialogManager();
WebContentsModalDialogManagerDelegate* delegate() const { return delegate_; }
- void set_delegate(WebContentsModalDialogManagerDelegate* d) { delegate_ = d; }
+ void SetDelegate(WebContentsModalDialogManagerDelegate* d);
static NativeWebContentsModalDialogManager* CreateNativeManager(
NativeWebContentsModalDialogManagerDelegate* native_delegate);
diff --git a/components/web_modal/web_contents_modal_dialog_manager_unittest.cc b/components/web_modal/web_contents_modal_dialog_manager_unittest.cc
index 1268896..da4d227 100644
--- a/components/web_modal/web_contents_modal_dialog_manager_unittest.cc
+++ b/components/web_modal/web_contents_modal_dialog_manager_unittest.cc
@@ -41,6 +41,8 @@ class NativeWebContentsModalDialogManagerCloseTest
}
virtual void PulseDialog(NativeWebContentsModalDialog dialog) OVERRIDE {
}
+ virtual void HostChanged(WebContentsModalDialogHost* new_host) OVERRIDE {
+ }
int close_count;
NativeWebContentsModalDialogManagerDelegate* delegate_;