| 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
|
|
|