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 2b1704f20e6cf04234a310e52fd88995f7652ef5..75c3a4e7e84ea5bc6c2284ed3c26b5614fd57fd2 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
@@ -453,6 +453,7 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host, |
has_snapped_to_boundary_(false), |
touch_editing_client_(NULL), |
is_guest_view_hack_(is_guest_view_hack), |
+ begin_frame_observer_proxy_(new BeginFrameObserverProxy(this)), |
weak_ptr_factory_(this) { |
if (!is_guest_view_hack_) |
host_->SetView(this); |
@@ -482,6 +483,8 @@ bool RenderWidgetHostViewAura::OnMessageReceived( |
// RenderWidgetHostViewAndroid should also be moved at the same time. |
IPC_MESSAGE_HANDLER(ViewHostMsg_TextInputStateChanged, |
OnTextInputStateChanged) |
+ IPC_MESSAGE_HANDLER(ViewHostMsg_SetNeedsBeginFrames, |
+ OnSetNeedsBeginFrames) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
return handled; |
@@ -711,6 +714,15 @@ ui::TextInputClient* RenderWidgetHostViewAura::GetTextInputClient() { |
return this; |
} |
+void RenderWidgetHostViewAura::OnSetNeedsBeginFrames(bool needs_begin_frames) { |
+ begin_frame_observer_proxy_->SetNeedsBeginFrames(needs_begin_frames); |
+} |
+ |
+void RenderWidgetHostViewAura::SendBeginFrame(const cc::BeginFrameArgs& args) { |
+ delegated_frame_host_->UpdateVSyncParameters(args.frame_time, args.interval); |
+ host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); |
+} |
+ |
void RenderWidgetHostViewAura::SetKeyboardFocus() { |
#if defined(OS_WIN) |
if (CanFocus()) { |
@@ -2578,6 +2590,7 @@ void RenderWidgetHostViewAura::AddedToRootWindow() { |
#endif |
delegated_frame_host_->SetCompositor(window_->GetHost()->compositor()); |
+ begin_frame_observer_proxy_->SetCompositor(window_->GetHost()->compositor()); |
} |
void RenderWidgetHostViewAura::RemovingFromRootWindow() { |
@@ -2590,6 +2603,7 @@ void RenderWidgetHostViewAura::RemovingFromRootWindow() { |
window_->GetHost()->RemoveObserver(this); |
delegated_frame_host_->ResetCompositor(); |
+ begin_frame_observer_proxy_->ResetCompositor(); |
#if defined(OS_WIN) |
// Update the legacy window's parent temporarily to the desktop window. It |