| Index: content/browser/renderer_host/render_widget_host_view_aura.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| index 1c66023493c04e0418f29626a53b62edddb9e923..81245e51726beef1c660333520d7c3454072c769 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| @@ -67,6 +67,7 @@
|
| #include "ui/base/hit_test.h"
|
| #include "ui/base/ime/input_method.h"
|
| #include "ui/base/ui_base_types.h"
|
| +#include "ui/compositor/compositor_vsync_manager.h"
|
| #include "ui/compositor/layer.h"
|
| #include "ui/events/event.h"
|
| #include "ui/events/event_utils.h"
|
| @@ -3361,6 +3362,8 @@ RenderWidgetHostViewAura::~RenderWidgetHostViewAura() {
|
| #if defined(OS_WIN)
|
| legacy_render_widget_host_HWND_.reset(NULL);
|
| #endif
|
| +
|
| + DCHECK(!vsync_manager_);
|
| }
|
|
|
| void RenderWidgetHostViewAura::UpdateCursorIfOverSelf() {
|
| @@ -3531,8 +3534,11 @@ void RenderWidgetHostViewAura::AddedToRootWindow() {
|
| #endif
|
|
|
| ui::Compositor* compositor = GetCompositor();
|
| - if (compositor)
|
| - compositor->vsync_manager()->AddObserver(this);
|
| + if (compositor) {
|
| + DCHECK(!vsync_manager_);
|
| + vsync_manager_ = compositor->vsync_manager();
|
| + vsync_manager_->AddObserver(this);
|
| + }
|
| }
|
|
|
| void RenderWidgetHostViewAura::RemovingFromRootWindow() {
|
| @@ -3557,11 +3563,8 @@ void RenderWidgetHostViewAura::RemovingFromRootWindow() {
|
| resize_lock_.reset();
|
| host_->WasResized();
|
|
|
| - if (compositor) {
|
| - if (compositor->HasObserver(this))
|
| - compositor->RemoveObserver(this);
|
| - compositor->vsync_manager()->RemoveObserver(this);
|
| - }
|
| + if (compositor && compositor->HasObserver(this))
|
| + compositor->RemoveObserver(this);
|
|
|
| #if defined(OS_WIN)
|
| // Update the legacy window's parent temporarily to the desktop window. It
|
| @@ -3569,6 +3572,11 @@ void RenderWidgetHostViewAura::RemovingFromRootWindow() {
|
| if (legacy_render_widget_host_HWND_)
|
| legacy_render_widget_host_HWND_->UpdateParent(::GetDesktopWindow());
|
| #endif
|
| +
|
| + if (vsync_manager_) {
|
| + vsync_manager_->RemoveObserver(this);
|
| + vsync_manager_ = NULL;
|
| + }
|
| }
|
|
|
| ui::Compositor* RenderWidgetHostViewAura::GetCompositor() const {
|
|
|