| Index: cc/layers/layer_impl.cc
|
| diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
|
| index 5bef67d23c99a6dac082b50896964399e9f22df0..d099a63321f565b2869255f185e60b2d5b4d5dc8 100644
|
| --- a/cc/layers/layer_impl.cc
|
| +++ b/cc/layers/layer_impl.cc
|
| @@ -70,7 +70,8 @@ LayerImpl::LayerImpl(LayerTreeImpl* tree_impl, int id)
|
| needs_push_properties_(false),
|
| num_dependents_need_push_properties_(0),
|
| sorting_context_id_(0),
|
| - current_draw_mode_(DRAW_MODE_NONE) {
|
| + current_draw_mode_(DRAW_MODE_NONE),
|
| + frame_timing_requests_dirty_(false) {
|
| DCHECK_GT(layer_id_, 0);
|
| DCHECK(layer_tree_impl_);
|
| layer_tree_impl_->RegisterLayer(this);
|
| @@ -607,6 +608,11 @@ void LayerImpl::PushPropertiesTo(LayerImpl* layer) {
|
| layer->SetStackingOrderChanged(stacking_order_changed_);
|
| layer->SetDebugInfo(debug_info_);
|
|
|
| + if (frame_timing_requests_dirty_) {
|
| + layer->PassFrameTimingRequests(&frame_timing_requests_);
|
| + frame_timing_requests_dirty_ = false;
|
| + }
|
| +
|
| // Reset any state that should be cleared for the next update.
|
| stacking_order_changed_ = false;
|
| update_rect_ = gfx::Rect();
|
| @@ -1024,6 +1030,13 @@ void LayerImpl::Set3dSortingContextId(int id) {
|
| NoteLayerPropertyChangedForSubtree();
|
| }
|
|
|
| +void LayerImpl::PassFrameTimingRequests(
|
| + std::vector<FrameTimingRequest>* requests) {
|
| + frame_timing_requests_.swap(*requests);
|
| + frame_timing_requests_dirty_ = true;
|
| + SetNeedsPushProperties();
|
| +}
|
| +
|
| void LayerImpl::SetTransform(const gfx::Transform& transform) {
|
| if (transform_ == transform)
|
| return;
|
| @@ -1552,6 +1565,17 @@ void LayerImpl::AsValueInto(base::debug::TracedValue* state) const {
|
| NOTREACHED();
|
| }
|
| }
|
| +
|
| + if (!frame_timing_requests_.empty()) {
|
| + state->BeginArray("frame_timing_requests");
|
| + for (const auto& request : frame_timing_requests_) {
|
| + state->BeginDictionary();
|
| + state->SetInteger("request_id", request.id());
|
| + MathUtil::AddToTracedValue("request_rect", request.rect(), state);
|
| + state->EndDictionary();
|
| + }
|
| + state->EndArray();
|
| + }
|
| }
|
|
|
| bool LayerImpl::IsDrawnRenderSurfaceLayerListMember() const {
|
|
|