diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-13 15:05:36 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-14 10:33:47 +0000 |
commit | e684a3455bcc29a6e3e66a004e352dea4e1141e7 (patch) | |
tree | d55b4003bde34d7d05f558f02cfd82b2a66a7aac /chromium/cc/trees/single_thread_proxy.cc | |
parent | 2b94bfe47ccb6c08047959d1c26e392919550e86 (diff) |
BASELINE: Update Chromium to 72.0.3626.110 and Ninja to 1.9.0
Change-Id: Ic57220b00ecc929a893c91f5cc552f5d3e99e922
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/cc/trees/single_thread_proxy.cc')
-rw-r--r-- | chromium/cc/trees/single_thread_proxy.cc | 51 |
1 files changed, 39 insertions, 12 deletions
diff --git a/chromium/cc/trees/single_thread_proxy.cc b/chromium/cc/trees/single_thread_proxy.cc index 8e79bbbb4fb..2e3b7c613c1 100644 --- a/chromium/cc/trees/single_thread_proxy.cc +++ b/chromium/cc/trees/single_thread_proxy.cc @@ -9,6 +9,7 @@ #include "base/trace_event/trace_event.h" #include "cc/base/devtools_instrumentation.h" #include "cc/benchmarks/benchmark_instrumentation.h" +#include "cc/input/browser_controls_offset_manager.h" #include "cc/resources/ui_resource_manager.h" #include "cc/scheduler/commit_earlyout_reason.h" #include "cc/scheduler/compositor_timing_history.h" @@ -46,10 +47,11 @@ SingleThreadProxy::SingleThreadProxy(LayerTreeHost* layer_tree_host, inside_impl_frame_(false), #endif inside_draw_(false), - defer_commits_(false), + defer_main_frame_update_(false), animate_requested_(false), commit_requested_(false), inside_synchronous_composite_(false), + needs_impl_frame_(false), layer_tree_frame_sink_creation_requested_(false), layer_tree_frame_sink_lost_(true), frame_sink_bound_weak_factory_(this), @@ -258,24 +260,26 @@ void SingleThreadProxy::SetNextCommitWaitsForActivation() { } bool SingleThreadProxy::RequestedAnimatePending() { - return animate_requested_ || commit_requested_; + return animate_requested_ || commit_requested_ || needs_impl_frame_; } -void SingleThreadProxy::SetDeferCommits(bool defer_commits) { +void SingleThreadProxy::SetDeferMainFrameUpdate(bool defer_main_frame_update) { DCHECK(task_runner_provider_->IsMainThread()); // Deferring commits only makes sense if there's a scheduler. if (!scheduler_on_impl_thread_) return; - if (defer_commits_ == defer_commits) + if (defer_main_frame_update_ == defer_main_frame_update) return; - if (defer_commits) - TRACE_EVENT_ASYNC_BEGIN0("cc", "SingleThreadProxy::SetDeferCommits", this); + if (defer_main_frame_update) + TRACE_EVENT_ASYNC_BEGIN0("cc", "SingleThreadProxy::SetDeferMainFrameUpdate", + this); else - TRACE_EVENT_ASYNC_END0("cc", "SingleThreadProxy::SetDeferCommits", this); + TRACE_EVENT_ASYNC_END0("cc", "SingleThreadProxy::SetDeferMainFrameUpdate", + this); - defer_commits_ = defer_commits; - scheduler_on_impl_thread_->SetDeferCommits(defer_commits); + defer_main_frame_update_ = defer_main_frame_update; + scheduler_on_impl_thread_->SetDeferMainFrameUpdate(defer_main_frame_update); } bool SingleThreadProxy::CommitRequested() const { @@ -346,6 +350,7 @@ void SingleThreadProxy::SetNeedsOneBeginImplFrameOnImplThread() { single_thread_client_->RequestScheduleComposite(); if (scheduler_on_impl_thread_) scheduler_on_impl_thread_->SetNeedsOneBeginImplFrame(); + needs_impl_frame_ = true; } void SingleThreadProxy::SetNeedsPrepareTilesOnImplThread() { @@ -358,6 +363,7 @@ void SingleThreadProxy::SetNeedsCommitOnImplThread() { single_thread_client_->RequestScheduleComposite(); if (scheduler_on_impl_thread_) scheduler_on_impl_thread_->SetNeedsBeginMainFrame(); + commit_requested_ = true; } void SingleThreadProxy::SetVideoNeedsBeginFrames(bool needs_begin_frames) { @@ -528,6 +534,7 @@ void SingleThreadProxy::CompositeImmediately(base::TimeTicks frame_begin_time, DCHECK(inside_impl_frame_); #endif animate_requested_ = false; + needs_impl_frame_ = false; // Prevent new commits from being requested inside DoBeginMainFrame. // Note: We do not want to prevent SetNeedsAnimate from requesting // a commit here. @@ -660,6 +667,14 @@ void SingleThreadProxy::SetRenderFrameObserver( host_impl_->SetRenderFrameObserver(std::move(observer)); } +void SingleThreadProxy::UpdateBrowserControlsState( + BrowserControlsState constraints, + BrowserControlsState current, + bool animate) { + host_impl_->browser_controls_manager()->UpdateBrowserControlsState( + constraints, current, animate); +} + bool SingleThreadProxy::WillBeginImplFrame(const viz::BeginFrameArgs& args) { DebugScopedSetImplThread impl(task_runner_provider_); #if DCHECK_IS_ON() @@ -685,12 +700,18 @@ void SingleThreadProxy::ScheduledActionSendBeginMainFrame( << "BeginMainFrame should only be sent inside a BeginImplFrame"; #endif + host_impl_->WillSendBeginMainFrame(); task_runner_provider_->MainThreadTaskRunner()->PostTask( FROM_HERE, base::BindOnce(&SingleThreadProxy::BeginMainFrame, weak_factory_.GetWeakPtr(), begin_frame_args)); host_impl_->DidSendBeginMainFrame(); } +void SingleThreadProxy::FrameIntervalUpdated(base::TimeDelta interval) { + DebugScopedSetMainThread main(task_runner_provider_); + single_thread_client_->FrameIntervalUpdated(interval); +} + void SingleThreadProxy::SendBeginMainFrameNotExpectedSoon() { layer_tree_host_->BeginMainFrameNotExpectedSoon(); } @@ -713,9 +734,10 @@ void SingleThreadProxy::BeginMainFrame( } commit_requested_ = false; + needs_impl_frame_ = false; animate_requested_ = false; - if (defer_commits_) { + if (defer_main_frame_update_) { TRACE_EVENT_INSTANT0("cc", "EarlyOut_DeferCommit", TRACE_EVENT_SCOPE_THREAD); BeginMainFrameAbortedOnImplThread( @@ -742,7 +764,7 @@ void SingleThreadProxy::BeginMainFrame( // At this point the main frame may have deferred commits to avoid committing // right now. - if (defer_commits_ || begin_frame_args.animate_only) { + if (defer_main_frame_update_ || begin_frame_args.animate_only) { TRACE_EVENT_INSTANT0("cc", "EarlyOut_DeferCommit_InsideBeginMainFrame", TRACE_EVENT_SCOPE_THREAD); BeginMainFrameAbortedOnImplThread( @@ -775,7 +797,8 @@ void SingleThreadProxy::DoBeginMainFrame( layer_tree_host_->WillBeginMainFrame(); layer_tree_host_->BeginMainFrame(begin_frame_args); layer_tree_host_->AnimateLayers(begin_frame_args.frame_time); - layer_tree_host_->RequestMainFrameUpdate(); + layer_tree_host_->RequestMainFrameUpdate( + false /* record_main_frame_metrics */); } void SingleThreadProxy::DoPainting() { @@ -877,6 +900,10 @@ void SingleThreadProxy::DidNotProduceFrame(const viz::BeginFrameAck& ack) { host_impl_->DidNotProduceFrame(ack); } +void SingleThreadProxy::WillNotReceiveBeginFrame() { + host_impl_->DidNotNeedBeginFrame(); +} + void SingleThreadProxy::DidReceiveCompositorFrameAck() { layer_tree_host_->DidReceiveCompositorFrameAck(); } |