Index: chrome/browser/chromeos/login/simple_web_view_dialog.cc |
diff --git a/chrome/browser/chromeos/login/simple_web_view_dialog.cc b/chrome/browser/chromeos/login/simple_web_view_dialog.cc |
index 996f682122f3fb61055b215cc399a91c48261816..f2f9e3d01572dff20a9708fa302b46dbaae441c3 100644 |
--- a/chrome/browser/chromeos/login/simple_web_view_dialog.cc |
+++ b/chrome/browser/chromeos/login/simple_web_view_dialog.cc |
@@ -159,6 +159,8 @@ 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); |
} |
void SimpleWebViewDialog::Init() { |
@@ -234,6 +236,14 @@ void SimpleWebViewDialog::Init() { |
Layout(); |
} |
+void SimpleWebViewDialog::Layout() { |
+ views::WidgetDelegateView::Layout(); |
+ |
+ FOR_EACH_OBSERVER(web_modal::WebContentsModalDialogHostObserver, |
+ observer_list_, |
+ OnPositionRequiresUpdate()); |
+} |
+ |
views::View* SimpleWebViewDialog::GetContentsView() { |
return this; |
} |
@@ -342,6 +352,33 @@ void SimpleWebViewDialog::ExecuteCommandWithDisposition( |
} |
} |
+web_modal::WebContentsModalDialogHost* |
+ SimpleWebViewDialog::GetWebContentsModalDialogHost() { |
+ return this; |
+} |
+ |
+gfx::NativeView SimpleWebViewDialog::GetHostView() const { |
+ return GetWidget()->GetNativeView(); |
+} |
+ |
+gfx::Point SimpleWebViewDialog::GetDialogPosition(const gfx::Size& size) { |
+ // Center the widget. |
+ gfx::Size widget_size = GetWidget()->GetWindowBoundsInScreen().size(); |
+ return gfx::Point(widget_size.width() / 2 - size.width() / 2, |
+ widget_size.height() / 2 - size.height() / 2); |
+} |
+ |
+void SimpleWebViewDialog::AddObserver( |
+ web_modal::WebContentsModalDialogHostObserver* observer) { |
+ if (observer && !observer_list_.HasObserver(observer)) |
+ observer_list_.AddObserver(observer); |
+} |
+ |
+void SimpleWebViewDialog::RemoveObserver( |
+ web_modal::WebContentsModalDialogHostObserver* observer) { |
+ observer_list_.RemoveObserver(observer); |
+} |
+ |
void SimpleWebViewDialog::LoadImages() { |
ui::ThemeProvider* tp = GetThemeProvider(); |