Index: ui/aura/mus/mus_context_factory.cc |
diff --git a/ui/aura/mus/mus_context_factory.cc b/ui/aura/mus/mus_context_factory.cc |
index 6a099290099ae219480c4a97d669c738448d8cfd..be536b8821c34bae64e161853c9f7a629fc06daa 100644 |
--- a/ui/aura/mus/mus_context_factory.cc |
+++ b/ui/aura/mus/mus_context_factory.cc |
@@ -26,9 +26,18 @@ void MusContextFactory::OnEstablishedGpuChannel( |
WindowTreeHost::GetForAcceleratedWidget(compositor->widget()); |
WindowPortMus* window_port = WindowPortMus::Get(host->window()); |
DCHECK(window_port); |
- auto compositor_frame_sink = window_port->RequestCompositorFrameSink( |
+ window_port->RequestCompositorFrameSink( |
gpu_->CreateContextProvider(std::move(gpu_channel)), |
- gpu_->gpu_memory_buffer_manager()); |
+ gpu_->gpu_memory_buffer_manager(), |
+ base::Bind(&MusContextFactory::OnCompositorFrameSinkAvailable, |
+ weak_ptr_factory_.GetWeakPtr(), compositor)); |
+} |
+ |
+void MusContextFactory::OnCompositorFrameSinkAvailable( |
+ base::WeakPtr<ui::Compositor> compositor, |
+ std::unique_ptr<cc::CompositorFrameSink> compositor_frame_sink) { |
+ if (!compositor) |
+ return; |
compositor->SetCompositorFrameSink(std::move(compositor_frame_sink)); |
} |