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; |
} |