Index: cc/surfaces/surface_manager.cc |
diff --git a/cc/surfaces/surface_manager.cc b/cc/surfaces/surface_manager.cc |
index 07d2338009404168851632729f0830b1ec739e79..3972a9d198688acfbaad54f80c613cc22780fa2c 100644 |
--- a/cc/surfaces/surface_manager.cc |
+++ b/cc/surfaces/surface_manager.cc |
@@ -118,6 +118,8 @@ std::unique_ptr<Surface> SurfaceManager::CreateSurface( |
void SurfaceManager::DestroySurface(std::unique_ptr<Surface> surface) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
surface->set_destroyed(true); |
+ for (auto& observer : observer_list_) |
+ observer.OnSurfaceDestroyed(surface->surface_id()); |
surfaces_to_destroy_.push_back(std::move(surface)); |
GarbageCollectSurfaces(); |
} |
@@ -457,11 +459,12 @@ Surface* SurfaceManager::GetSurfaceForId(const SurfaceId& surface_id) { |
return it->second; |
} |
-bool SurfaceManager::SurfaceModified(const SurfaceId& surface_id) { |
+bool SurfaceManager::SurfaceModified(const SurfaceId& surface_id, |
+ const BeginFrameAck& ack) { |
CHECK(thread_checker_.CalledOnValidThread()); |
bool changed = false; |
for (auto& observer : observer_list_) |
- observer.OnSurfaceDamaged(surface_id, &changed); |
+ observer.OnSurfaceDamaged(surface_id, ack, &changed); |
return changed; |
} |
@@ -504,6 +507,13 @@ void SurfaceManager::SurfaceDiscarded(Surface* surface) { |
dependency_tracker_->OnSurfaceDiscarded(surface); |
} |
+void SurfaceManager::SurfaceDamageExpected(const SurfaceId& surface_id, |
+ const BeginFrameArgs& args) { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ for (auto& observer : observer_list_) |
+ observer.OnSurfaceDamageExpected(surface_id, args); |
+} |
+ |
void SurfaceManager::UnregisterSurface(const SurfaceId& surface_id) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
SurfaceMap::iterator it = surface_map_.find(surface_id); |