Index: content/browser/web_contents/web_contents_view_aura.cc |
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc |
index 59747158a219c9a95bcd3f39073c80d18e39be76..7053c50b57603233c085d6394f01cd11b536352e 100644 |
--- a/content/browser/web_contents/web_contents_view_aura.cc |
+++ b/content/browser/web_contents/web_contents_view_aura.cc |
@@ -406,11 +406,6 @@ class WebContentsViewAura::WindowObserver |
: view_(view), |
host_window_(NULL) { |
view_->window_->AddObserver(this); |
- |
-#if defined(OS_WIN) |
- if (view_->window_->GetRootWindow()) |
- view_->window_->GetRootWindow()->AddObserver(this); |
-#endif |
} |
~WindowObserver() override { |
@@ -419,64 +414,8 @@ class WebContentsViewAura::WindowObserver |
view_->window_->GetHost()->RemoveObserver(this); |
if (host_window_) |
host_window_->RemoveObserver(this); |
-#if defined(OS_WIN) |
- if (host_window_) { |
- const aura::Window::Windows& children = host_window_->children(); |
- for (size_t i = 0; i < children.size(); ++i) |
- children[i]->RemoveObserver(this); |
- } |
- |
- aura::Window* root_window = view_->window_->GetRootWindow(); |
- if (root_window) { |
- root_window->RemoveObserver(this); |
- const aura::Window::Windows& root_children = root_window->children(); |
- for (size_t i = 0; i < root_children.size(); ++i) |
- root_children[i]->RemoveObserver(this); |
- } |
-#endif |
- } |
- |
-#if defined(OS_WIN) |
- // Constrained windows are added as children of the parent's parent's view |
- // which may overlap with windowed NPAPI plugins. In that case, tell the RWHV |
- // so that it can update the plugins' cutout rects accordingly. |
- // Note: this is hard coding how Chrome layer adds its dialogs. Since NPAPI is |
- // going to be deprecated in a year, this is ok for now. The test for this is |
- // PrintPreviewTest.WindowedNPAPIPluginHidden. |
- void OnWindowAdded(aura::Window* new_window) override { |
- if (!new_window->Contains(view_->window_.get())) { |
- // Skip the case when the parent moves to the root window. |
- if (new_window != host_window_) { |
- // Observe sibling windows of the WebContents, or children of the root |
- // window. |
- if (new_window->parent() == host_window_ || |
- new_window->parent() == view_->window_->GetRootWindow()) { |
- new_window->AddObserver(this); |
- } |
- } |
- } |
- |
- if (new_window->parent() == host_window_) { |
- UpdateConstrainedWindows(NULL); |
- } |
} |
- void OnWillRemoveWindow(aura::Window* window) override { |
- if (window == view_->window_.get()) |
- return; |
- |
- window->RemoveObserver(this); |
- UpdateConstrainedWindows(window); |
- } |
- |
- void OnWindowVisibilityChanged(aura::Window* window, bool visible) override { |
- if (window == view_->window_.get() || window->parent() == host_window_ || |
- window->parent() == view_->window_->GetRootWindow()) { |
- UpdateConstrainedWindows(NULL); |
- } |
- } |
-#endif |
- |
void OnWindowParentChanged(aura::Window* window, |
aura::Window* parent) override { |
if (window != view_->window_.get()) |
@@ -490,46 +429,9 @@ class WebContentsViewAura::WindowObserver |
if (host_window_) |
host_window_->RemoveObserver(this); |
-#if defined(OS_WIN) |
- if (host_window_) { |
- const aura::Window::Windows& children = host_window_->children(); |
- for (size_t i = 0; i < children.size(); ++i) |
- children[i]->RemoveObserver(this); |
- RenderWidgetHostViewAura* rwhv = ToRenderWidgetHostViewAura( |
- view_->web_contents_->GetRenderWidgetHostView()); |
- if (rwhv) |
- rwhv->UpdateConstrainedWindowRects(std::vector<gfx::Rect>()); |
- } |
- |
- // When we get parented to the root window, the code below will watch the |
- // host window, aka root window. Since we already watch the root window on |
- // Windows, unregister first so that the debug check doesn't fire. |
- if (host_window && host_window == window->GetRootWindow()) |
- host_window->RemoveObserver(this); |
- |
- // We need to undo the above if we were parented to the root window and then |
- // got parented to another window. At that point, the code before the ifdef |
- // would have stopped watching the root window. |
- if (window->GetRootWindow() && |
- host_window != window->GetRootWindow() && |
- !window->GetRootWindow()->HasObserver(this)) { |
- window->GetRootWindow()->AddObserver(this); |
- } |
-#endif |
- |
host_window_ = host_window; |
- if (host_window) { |
+ if (host_window) |
host_window->AddObserver(this); |
-#if defined(OS_WIN) |
- if (host_window != window->GetRootWindow()) { |
- const aura::Window::Windows& children = host_window->children(); |
- for (size_t i = 0; i < children.size(); ++i) { |
- if (!children[i]->Contains(view_->window_.get())) |
- children[i]->AddObserver(this); |
- } |
- } |
-#endif |
- } |
} |
void OnWindowBoundsChanged(aura::Window* window, |
@@ -543,10 +445,6 @@ class WebContentsViewAura::WindowObserver |
if (selection_controller_client) |
selection_controller_client->OnWindowMoved(); |
} |
-#if defined(OS_WIN) |
- } else { |
- UpdateConstrainedWindows(NULL); |
-#endif |
} |
} |
@@ -558,32 +456,14 @@ class WebContentsViewAura::WindowObserver |
} |
void OnWindowAddedToRootWindow(aura::Window* window) override { |
- if (window == view_->window_.get()) { |
+ if (window == view_->window_.get()) |
window->GetHost()->AddObserver(this); |
-#if defined(OS_WIN) |
- if (!window->GetRootWindow()->HasObserver(this)) |
- window->GetRootWindow()->AddObserver(this); |
-#endif |
- } |
} |
void OnWindowRemovingFromRootWindow(aura::Window* window, |
aura::Window* new_root) override { |
- if (window == view_->window_.get()) { |
+ if (window == view_->window_.get()) |
window->GetHost()->RemoveObserver(this); |
-#if defined(OS_WIN) |
- window->GetRootWindow()->RemoveObserver(this); |
- |
- const aura::Window::Windows& root_children = |
- window->GetRootWindow()->children(); |
- for (size_t i = 0; i < root_children.size(); ++i) { |
- if (root_children[i] != view_->window_.get() && |
- root_children[i] != host_window_) { |
- root_children[i]->RemoveObserver(this); |
- } |
- } |
-#endif |
- } |
} |
// Overridden WindowTreeHostObserver: |
@@ -600,41 +480,6 @@ class WebContentsViewAura::WindowObserver |
private: |
void SendScreenRects() { view_->web_contents_->SendScreenRects(); } |
-#if defined(OS_WIN) |
- void UpdateConstrainedWindows(aura::Window* exclude) { |
- RenderWidgetHostViewAura* view = ToRenderWidgetHostViewAura( |
- view_->web_contents_->GetRenderWidgetHostView()); |
- if (!view) |
- return; |
- |
- std::vector<gfx::Rect> constrained_windows; |
- if (host_window_) { |
- const aura::Window::Windows& children = host_window_->children(); |
- for (size_t i = 0; i < children.size(); ++i) { |
- if (!children[i]->Contains(view_->window_.get()) && |
- children[i] != exclude && |
- children[i]->IsVisible()) { |
- constrained_windows.push_back(children[i]->GetBoundsInRootWindow()); |
- } |
- } |
- } |
- |
- aura::Window* root_window = view_->window_->GetRootWindow(); |
- const aura::Window::Windows& root_children = root_window->children(); |
- if (root_window) { |
- for (size_t i = 0; i < root_children.size(); ++i) { |
- if (root_children[i]->IsVisible() && |
- !root_children[i]->Contains(view_->window_.get())) { |
- constrained_windows.push_back( |
- root_children[i]->GetBoundsInRootWindow()); |
- } |
- } |
- } |
- |
- view->UpdateConstrainedWindowRects(constrained_windows); |
- } |
-#endif |
- |
WebContentsViewAura* view_; |
// The parent window that hosts the constrained windows. We cache the old host |