Chromium Code Reviews| 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..43637019de565356d765b5be63af2a9285d65295 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), |
| @@ -641,45 +640,24 @@ ui::TextInputClient* RenderWidgetHostViewAura::GetTextInputClient() { |
| void RenderWidgetHostViewAura::SetNeedsBeginFrames(bool needs_begin_frames) { |
| needs_begin_frames_ = needs_begin_frames; |
| - UpdateNeedsBeginFramesInternal(); |
| + if (delegated_frame_host_) { |
| + delegated_frame_host_->SetNeedsBeginFrames(needs_begin_frames_ || |
| + needs_flush_input_); |
| + } |
| } |
| void RenderWidgetHostViewAura::OnSetNeedsFlushInput() { |
| needs_flush_input_ = true; |
| - 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); |
| + delegated_frame_host_->SetNeedsBeginFrames(true); |
| } |
| void RenderWidgetHostViewAura::OnBeginFrame( |
| const cc::BeginFrameArgs& args) { |
| needs_flush_input_ = false; |
| host_->FlushInput(); |
| - UpdateNeedsBeginFramesInternal(); |
| + delegated_frame_host_->SetNeedsBeginFrames(needs_begin_frames_ || |
|
Eric Seckler
2017/03/27 13:05:03
I'd prefer to keep UpdateNeedsBeginFramesInternal,
Saman Sami
2017/03/27 17:10:23
Done.
|
| + needs_flush_input_); |
| 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 +910,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 +1916,8 @@ void RenderWidgetHostViewAura::CreateDelegatedFrameHostClient() { |
| } |
| delegated_frame_host_ = base::MakeUnique<DelegatedFrameHost>( |
| frame_sink_id, delegated_frame_host_client_.get()); |
| + delegated_frame_host_->SetNeedsBeginFrames(needs_begin_frames_ || |
| + needs_flush_input_); |
| // Let the page-level input event router know about our surface ID |
| // namespace for surface-based hit testing. |