Index: cc/surfaces/surface.cc |
diff --git a/cc/surfaces/surface.cc b/cc/surfaces/surface.cc |
index 57e3a3c98f3c47e4a35a5256a168900be8d0794b..c2ab3541abca7fa12fb9dcfd0f0a18ac3ab28de1 100644 |
--- a/cc/surfaces/surface.cc |
+++ b/cc/surfaces/surface.cc |
@@ -63,6 +63,8 @@ void Surface::QueueFrame(CompositorFrame frame, const DrawCallback& callback) { |
pending_frame_ = std::move(frame); |
if (pending_frame_) { |
factory_->ReceiveFromChild(pending_frame_->resource_list); |
+ pending_referenced_surfaces_ = |
+ pending_frame_->metadata.referenced_surfaces; |
// Ask the surface manager to inform |this| when its dependencies are |
// resolved. |
factory_->manager()->RequestSurfaceResolution(this); |
@@ -149,6 +151,7 @@ void Surface::ActivatePendingFrame() { |
DCHECK(pending_frame_); |
ActivateFrame(std::move(pending_frame_.value())); |
pending_frame_.reset(); |
+ pending_referenced_surfaces_.clear(); |
// ActiveFrame resources are now double ref-ed. Unref. |
UnrefFrameResources(*active_frame_); |
} |
@@ -177,7 +180,7 @@ void Surface::ActivateFrame(CompositorFrame frame) { |
if (previous_frame) |
UnrefFrameResources(*previous_frame); |
- referenced_surfaces_ = active_frame_->metadata.referenced_surfaces; |
+ active_referenced_surfaces_ = active_frame_->metadata.referenced_surfaces; |
for (auto& observer : observers_) |
observer.OnSurfaceActivated(this); |