| 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 6188eb06e2c3375d19c43d6cd19d7bc2bd7700e4..6a5aa159551939597cae8c46dfd3ff81c4ee5d4d 100644
|
| --- a/ui/aura/mus/mus_context_factory.cc
|
| +++ b/ui/aura/mus/mus_context_factory.cc
|
| @@ -5,7 +5,6 @@
|
| #include "ui/aura/mus/mus_context_factory.h"
|
|
|
| #include "base/memory/ptr_util.h"
|
| -#include "services/ui/public/cpp/context_provider.h"
|
| #include "services/ui/public/cpp/gpu/gpu.h"
|
| #include "ui/aura/mus/window_port_mus.h"
|
| #include "ui/aura/window_tree_host.h"
|
| @@ -17,24 +16,34 @@ namespace {
|
|
|
| } // namespace
|
|
|
| -MusContextFactory::MusContextFactory(ui::Gpu* gpu) : gpu_(gpu) {}
|
| +MusContextFactory::MusContextFactory(ui::Gpu* gpu)
|
| + : gpu_(gpu), weak_ptr_factory_(this) {}
|
|
|
| MusContextFactory::~MusContextFactory() {}
|
|
|
| -void MusContextFactory::CreateCompositorFrameSink(
|
| - base::WeakPtr<ui::Compositor> compositor) {
|
| +void MusContextFactory::OnEstablishedGpuChannel(
|
| + base::WeakPtr<ui::Compositor> compositor,
|
| + scoped_refptr<gpu::GpuChannelHost> gpu_channel) {
|
| + if (!compositor)
|
| + return;
|
| WindowTreeHost* host =
|
| WindowTreeHost::GetForAcceleratedWidget(compositor->widget());
|
| WindowPortMus* window_port = WindowPortMus::Get(host->window());
|
| DCHECK(window_port);
|
| auto compositor_frame_sink = window_port->RequestCompositorFrameSink(
|
| ui::mojom::CompositorFrameSinkType::DEFAULT,
|
| - make_scoped_refptr(
|
| - new ui::ContextProvider(gpu_->EstablishGpuChannelSync())),
|
| + gpu_->CreateContextProvider(std::move(gpu_channel)),
|
| gpu_->gpu_memory_buffer_manager());
|
| compositor->SetCompositorFrameSink(std::move(compositor_frame_sink));
|
| }
|
|
|
| +void MusContextFactory::CreateCompositorFrameSink(
|
| + base::WeakPtr<ui::Compositor> compositor) {
|
| + gpu_->EstablishGpuChannel(
|
| + base::Bind(&MusContextFactory::OnEstablishedGpuChannel,
|
| + weak_ptr_factory_.GetWeakPtr(), compositor));
|
| +}
|
| +
|
| scoped_refptr<cc::ContextProvider>
|
| MusContextFactory::SharedMainThreadContextProvider() {
|
| // NOTIMPLEMENTED();
|
|
|