Index: ui/aura/mus/window_port_mus.cc |
diff --git a/ui/aura/mus/window_port_mus.cc b/ui/aura/mus/window_port_mus.cc |
index 4c98ed4558a036614237a01cf0d8aa1497009064..b946380ee01b382faa7ee45716b51182c7f698b6 100644 |
--- a/ui/aura/mus/window_port_mus.cc |
+++ b/ui/aura/mus/window_port_mus.cc |
@@ -93,39 +93,19 @@ void WindowPortMus::Embed( |
window_tree_client_->Embed(window_, std::move(client), flags, callback); |
} |
-void WindowPortMus::RequestCompositorFrameSink( |
- scoped_refptr<cc::ContextProvider> context_provider, |
- gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
- const CompositorFrameSinkCallback& callback) { |
- DCHECK(pending_compositor_frame_sink_request_.is_null()); |
- // If we haven't received a FrameSinkId from the window server yet then we |
- // bind the parameters to a closure that will be called once the FrameSinkId |
- // is available. |
- if (!frame_sink_id_.is_valid()) { |
- pending_compositor_frame_sink_request_ = |
- base::Bind(&WindowPortMus::RequestCompositorFrameSinkInternal, |
- base::Unretained(this), std::move(context_provider), |
- gpu_memory_buffer_manager, callback); |
- return; |
- } |
- |
- RequestCompositorFrameSinkInternal(std::move(context_provider), |
- gpu_memory_buffer_manager, callback); |
-} |
- |
-void WindowPortMus::RequestCompositorFrameSinkInternal( |
+std::unique_ptr<cc::CompositorFrameSink> |
+WindowPortMus::RequestCompositorFrameSink( |
scoped_refptr<cc::ContextProvider> context_provider, |
- gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
- const CompositorFrameSinkCallback& callback) { |
- DCHECK(frame_sink_id_.is_valid()); |
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager) { |
std::unique_ptr<ui::ClientCompositorFrameSinkBinding> |
compositor_frame_sink_binding; |
std::unique_ptr<ui::ClientCompositorFrameSink> compositor_frame_sink = |
ui::ClientCompositorFrameSink::Create( |
- frame_sink_id_, std::move(context_provider), |
- gpu_memory_buffer_manager, &compositor_frame_sink_binding); |
+ std::move(context_provider), gpu_memory_buffer_manager, |
+ &compositor_frame_sink_binding, |
+ window_tree_client_->enable_surface_synchronization_); |
AttachCompositorFrameSink(std::move(compositor_frame_sink_binding)); |
- callback.Run(std::move(compositor_frame_sink)); |
+ return std::move(compositor_frame_sink); |
} |
void WindowPortMus::AttachCompositorFrameSink( |
@@ -288,15 +268,9 @@ void WindowPortMus::SetPropertyFromServer( |
void WindowPortMus::SetFrameSinkIdFromServer( |
const cc::FrameSinkId& frame_sink_id) { |
+ DCHECK(window_mus_type() == WindowMusType::TOP_LEVEL_IN_WM || |
+ window_mus_type() == WindowMusType::EMBED_IN_OWNER); |
frame_sink_id_ = frame_sink_id; |
- if (!pending_compositor_frame_sink_request_.is_null()) { |
- // TOP_LEVEL_IN_WM, and EMBED_IN_OWNER windows should not be requesting |
- // CompositorFrameSinks. |
- DCHECK_NE(WindowMusType::TOP_LEVEL_IN_WM, window_mus_type()); |
- DCHECK_NE(WindowMusType::EMBED_IN_OWNER, window_mus_type()); |
- base::ResetAndReturn(&pending_compositor_frame_sink_request_).Run(); |
- return; |
- } |
UpdatePrimarySurfaceInfo(); |
} |