Index: chrome/browser/ui/views/extensions/native_app_window_views.cc |
diff --git a/chrome/browser/ui/views/extensions/native_app_window_views.cc b/chrome/browser/ui/views/extensions/native_app_window_views.cc |
index 03b51569af65bf2442ed295e4c9b29f5cd79e9a2..b1c9735c1a07fb98118fe34e05217d905ba5e5a0 100644 |
--- a/chrome/browser/ui/views/extensions/native_app_window_views.cc |
+++ b/chrome/browser/ui/views/extensions/native_app_window_views.cc |
@@ -383,6 +383,21 @@ gfx::Insets NativeAppWindowViews::GetFrameInsets() const { |
return window_bounds.InsetsFrom(client_bounds); |
} |
+gfx::Point NativeAppWindowViews::GetDialogPosition(const gfx::Size& size) { |
+ gfx::Size shell_window_size = window_->GetWindowBoundsInScreen().size(); |
+ return gfx::Point(shell_window_size.width() / 2 - size.width() / 2, |
+ shell_window_size.height() / 2 - size.height() / 2); |
+} |
+ |
+void NativeAppWindowViews::AddObserver( |
+ WebContentsModalDialogHostObserver* observer) { |
+ observer_list_.AddObserver(observer); |
+} |
+void NativeAppWindowViews::RemoveObserver( |
+ WebContentsModalDialogHostObserver* observer) { |
+ observer_list_.RemoveObserver(observer); |
+} |
+ |
// Private method. TODO(stevenjb): Move this below InitializePanelWindow() |
// to match declaration order. |
void NativeAppWindowViews::OnViewWasResized() { |
@@ -436,6 +451,10 @@ void NativeAppWindowViews::OnViewWasResized() { |
if (web_contents()->GetRenderViewHost()->GetView()) |
web_contents()->GetRenderViewHost()->GetView()->SetClickthroughRegion(rgn); |
#endif |
+ |
+ FOR_EACH_OBSERVER(WebContentsModalDialogHostObserver, |
+ observer_list_, |
+ OnPositionRequiresUpdate()); |
} |
// WidgetDelegate implementation. |