Index: cc/surfaces/surface.cc |
diff --git a/cc/surfaces/surface.cc b/cc/surfaces/surface.cc |
index e7164c9ae5c3b51bf2e070cec395f60efe9ed5ca..9653f6005dc6e82c3c1f564ae0ae1927148c3bcc 100644 |
--- a/cc/surfaces/surface.cc |
+++ b/cc/surfaces/surface.cc |
@@ -108,8 +108,11 @@ bool Surface::QueueFrame(CompositorFrame frame, |
frame_sink_ids_for_dependencies.count(surface_id.frame_sink_id()) > 0; |
if (is_fallback_surface) { |
Surface* surface = surface_manager_->GetSurfaceForId(surface_id); |
- DCHECK(surface); |
- surface->Close(); |
+ // A misbehaving client may report a non-existent surface ID as a |
+ // |referenced_surface|. In that case, |surface| would be nullptr, and |
+ // there is nothing to do here. |
+ if (surface) |
+ surface->Close(); |
} |
} |
pending_frame_data_ = |