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 9c5ce2cd0dc3fec706c09019966b7989d2e25ec5..9f98d96601b95436f2cb0ff00d1271813b829f44 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
@@ -383,7 +383,6 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host, |
popup_child_host_view_(nullptr), |
is_loading_(false), |
has_composition_text_(false), |
- begin_frame_source_(nullptr), |
needs_begin_frames_(false), |
needs_flush_input_(false), |
added_frame_observer_(false), |
@@ -649,37 +648,12 @@ void RenderWidgetHostViewAura::OnSetNeedsFlushInput() { |
UpdateNeedsBeginFramesInternal(); |
} |
-void RenderWidgetHostViewAura::UpdateNeedsBeginFramesInternal() { |
- if (!begin_frame_source_) |
- return; |
- |
- bool needs_frame = needs_begin_frames_ || needs_flush_input_; |
- if (needs_frame == added_frame_observer_) |
- return; |
- |
- added_frame_observer_ = needs_frame; |
- if (needs_frame) |
- begin_frame_source_->AddObserver(this); |
- else |
- begin_frame_source_->RemoveObserver(this); |
-} |
- |
void RenderWidgetHostViewAura::OnBeginFrame( |
const cc::BeginFrameArgs& args) { |
needs_flush_input_ = false; |
host_->FlushInput(); |
UpdateNeedsBeginFramesInternal(); |
host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); |
- last_begin_frame_args_ = args; |
-} |
- |
-const cc::BeginFrameArgs& RenderWidgetHostViewAura::LastUsedBeginFrameArgs() |
- const { |
- return last_begin_frame_args_; |
-} |
- |
-void RenderWidgetHostViewAura::OnBeginFrameSourcePausedChanged(bool paused) { |
- // Only used on Android WebView. |
} |
RenderFrameHostImpl* RenderWidgetHostViewAura::GetFocusedFrame() { |
@@ -932,23 +906,17 @@ void RenderWidgetHostViewAura::OnSwapCompositorFrame( |
selection.end.SetEdge(end_edge_top, end_edge_bottom); |
} |
- cc::BeginFrameAck ack(frame.metadata.begin_frame_ack); |
- |
if (delegated_frame_host_) { |
delegated_frame_host_->SwapDelegatedFrame( |
compositor_frame_sink_id, local_surface_id, std::move(frame)); |
} |
selection_controller_->OnSelectionBoundsChanged(selection.start, |
selection.end); |
- |
- if (begin_frame_source_) |
- begin_frame_source_->DidFinishFrame(this, ack); |
} |
void RenderWidgetHostViewAura::OnBeginFrameDidNotSwap( |
const cc::BeginFrameAck& ack) { |
- if (begin_frame_source_) |
- begin_frame_source_->DidFinishFrame(this, ack); |
+ delegated_frame_host_->BeginFrameDidNotSwap(ack); |
} |
void RenderWidgetHostViewAura::ClearCompositorFrame() { |
@@ -1944,6 +1912,7 @@ void RenderWidgetHostViewAura::CreateDelegatedFrameHostClient() { |
} |
delegated_frame_host_ = base::MakeUnique<DelegatedFrameHost>( |
frame_sink_id, delegated_frame_host_client_.get()); |
+ UpdateNeedsBeginFramesInternal(); |
// Let the page-level input event router know about our surface ID |
// namespace for surface-based hit testing. |
@@ -2373,4 +2342,11 @@ void RenderWidgetHostViewAura::SetPopupChild( |
popup_child_host_view ? popup_child_host_view->event_handler() : nullptr); |
} |
+void RenderWidgetHostViewAura::UpdateNeedsBeginFramesInternal() { |
+ if (!delegated_frame_host_) |
+ return; |
+ delegated_frame_host_->SetNeedsBeginFrames(needs_begin_frames_ || |
+ needs_flush_input_); |
+} |
+ |
} // namespace content |