Index: components/viz/client/client_compositor_frame_sink.cc |
diff --git a/components/viz/client/client_compositor_frame_sink.cc b/components/viz/client/client_compositor_frame_sink.cc |
index 3fe17a6c0fdf3a40fcfa2d0be2b67dddef1da713..13e1fafd569f9c529b14c97d93d7d9c9dd0bef86 100644 |
--- a/components/viz/client/client_compositor_frame_sink.cc |
+++ b/components/viz/client/client_compositor_frame_sink.cc |
@@ -32,7 +32,8 @@ ClientCompositorFrameSink::ClientCompositorFrameSink( |
compositor_frame_sink_info_(std::move(compositor_frame_sink_info)), |
client_request_(std::move(client_request)), |
client_binding_(this), |
- enable_surface_synchronization_(enable_surface_synchronization) { |
+ enable_surface_synchronization_(enable_surface_synchronization), |
+ weak_factory_(this) { |
DETACH_FROM_THREAD(thread_checker_); |
} |
@@ -49,12 +50,19 @@ ClientCompositorFrameSink::ClientCompositorFrameSink( |
compositor_frame_sink_info_(std::move(compositor_frame_sink_info)), |
client_request_(std::move(client_request)), |
client_binding_(this), |
- enable_surface_synchronization_(enable_surface_synchronization) { |
+ enable_surface_synchronization_(enable_surface_synchronization), |
+ weak_factory_(this) { |
DETACH_FROM_THREAD(thread_checker_); |
} |
ClientCompositorFrameSink::~ClientCompositorFrameSink() {} |
+base::WeakPtr<ClientCompositorFrameSink> |
+ClientCompositorFrameSink::GetWeakPtr() { |
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); |
+ return weak_factory_.GetWeakPtr(); |
+} |
+ |
bool ClientCompositorFrameSink::BindToClient( |
cc::CompositorFrameSinkClient* client) { |
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); |
@@ -87,6 +95,7 @@ void ClientCompositorFrameSink::DetachFromClient() { |
void ClientCompositorFrameSink::SetLocalSurfaceId( |
const cc::LocalSurfaceId& local_surface_id) { |
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); |
DCHECK(local_surface_id.is_valid()); |
DCHECK(enable_surface_synchronization_); |
local_surface_id_ = local_surface_id; |