| Index: content/browser/compositor/mus_browser_compositor_output_surface.cc
|
| diff --git a/content/browser/compositor/mus_browser_compositor_output_surface.cc b/content/browser/compositor/mus_browser_compositor_output_surface.cc
|
| index a11f70befabedae7e0e79e7779cd15b9f0222d79..3a3dcafac376fdd7434d916a73a7a907ffb59c92 100644
|
| --- a/content/browser/compositor/mus_browser_compositor_output_surface.cc
|
| +++ b/content/browser/compositor/mus_browser_compositor_output_surface.cc
|
| @@ -16,6 +16,9 @@
|
| #include "gpu/ipc/client/command_buffer_proxy_impl.h"
|
| #include "services/ui/public/cpp/window.h"
|
| #include "services/ui/public/cpp/window_compositor_frame_sink.h"
|
| +#include "ui/aura/mus/window_compositor_frame_sink.h"
|
| +#include "ui/aura/mus/window_port_mus.h"
|
| +#include "ui/aura/window.h"
|
|
|
| namespace content {
|
|
|
| @@ -38,11 +41,33 @@ MusBrowserCompositorOutputSurface::MusBrowserCompositorOutputSurface(
|
| ui_compositor_frame_sink_->BindToClient(this);
|
| }
|
|
|
| +MusBrowserCompositorOutputSurface::MusBrowserCompositorOutputSurface(
|
| + aura::Window* window,
|
| + scoped_refptr<ContextProviderCommandBuffer> context,
|
| + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
|
| + scoped_refptr<ui::CompositorVSyncManager> vsync_manager,
|
| + cc::SyntheticBeginFrameSource* begin_frame_source,
|
| + std::unique_ptr<display_compositor::CompositorOverlayCandidateValidator>
|
| + overlay_candidate_validator)
|
| + : GpuBrowserCompositorOutputSurface(std::move(context),
|
| + std::move(vsync_manager),
|
| + begin_frame_source,
|
| + std::move(overlay_candidate_validator)),
|
| + window_(window) {
|
| + aura::WindowPortMus* window_port = aura::WindowPortMus::Get(window_);
|
| + DCHECK(window_port);
|
| + compositor_frame_sink_ = window_port->RequestCompositorFrameSink(
|
| + ui::mojom::CompositorFrameSinkType::DEFAULT, context,
|
| + gpu_memory_buffer_manager);
|
| + compositor_frame_sink_->BindToClient(this);
|
| +}
|
| +
|
| MusBrowserCompositorOutputSurface::~MusBrowserCompositorOutputSurface() {}
|
|
|
| void MusBrowserCompositorOutputSurface::SwapBuffers(
|
| cc::OutputSurfaceFrame frame) {
|
| - const gfx::Rect bounds(ui_window_->bounds().size());
|
| + const gfx::Rect bounds = ui_window_ ? gfx::Rect(ui_window_->bounds().size())
|
| + : gfx::Rect(window_->bounds().size());
|
| cc::CompositorFrame ui_frame;
|
| ui_frame.metadata.latency_info = std::move(frame.latency_info);
|
| // Reset latency_info to known empty state after moving contents.
|
| @@ -107,7 +132,13 @@ void MusBrowserCompositorOutputSurface::SwapBuffers(
|
| secure_output_only);
|
|
|
| ui_frame.render_pass_list.push_back(std::move(pass));
|
| - ui_compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame));
|
| +
|
| + // TODO(mfomitchev): Remove ui_compositor_frame_sink_ once we complete the
|
| + // switch to Aura-Mus.
|
| + if (ui_compositor_frame_sink_)
|
| + ui_compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame));
|
| + else
|
| + compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame));
|
| return;
|
| }
|
|
|
|
|