| Index: cc/trees/layer_tree_host_impl.cc
|
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
| index 5bfd300482594c8f1690595ff918f1c1be176edc..f3f960ff96b51a774210d0280387865996faa551 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -306,6 +306,7 @@ LayerTreeHostImpl::~LayerTreeHostImpl() {
|
| void LayerTreeHostImpl::BeginMainFrameAborted(
|
| CommitEarlyOutReason reason,
|
| std::vector<std::unique_ptr<SwapPromise>> swap_promises) {
|
| + is_main_thread_frame_ = true;
|
| // If the begin frame data was handled, then scroll and scale set was applied
|
| // by the main thread, so the active tree needs to be updated as if these sent
|
| // values were applied and committed.
|
| @@ -338,6 +339,7 @@ void LayerTreeHostImpl::BeginCommit() {
|
|
|
| void LayerTreeHostImpl::CommitComplete() {
|
| TRACE_EVENT0("cc", "LayerTreeHostImpl::CommitComplete");
|
| + is_main_thread_frame_ = true;
|
|
|
| UpdateSyncTreeAfterCommitOrImplSideInvalidation();
|
| micro_benchmark_controller_.DidCompleteCommit();
|
| @@ -1581,6 +1583,7 @@ void LayerTreeHostImpl::OnCanDrawStateChangedForTree() {
|
|
|
| CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const {
|
| CompositorFrameMetadata metadata;
|
| + metadata.is_main_thread_frame = is_main_thread_frame_;
|
| metadata.device_scale_factor = active_tree_->painted_device_scale_factor() *
|
| active_tree_->device_scale_factor();
|
|
|
| @@ -1760,6 +1763,8 @@ bool LayerTreeHostImpl::DrawLayers(FrameData* frame) {
|
| benchmark_instrumentation::IssueImplThreadRenderingStatsEvent(
|
| rendering_stats_instrumentation_->impl_thread_rendering_stats());
|
| rendering_stats_instrumentation_->AccumulateAndClearImplThreadStats();
|
| +
|
| + is_main_thread_frame_ = false;
|
| return true;
|
| }
|
|
|
|
|