| Index: ui/compositor/test/in_process_context_factory.cc
|
| diff --git a/ui/compositor/test/in_process_context_factory.cc b/ui/compositor/test/in_process_context_factory.cc
|
| index 6e0100fd6cee92868f0f20b36fb41770c37383a1..a067770d36610b98ecd927e43ec64356e6818859 100644
|
| --- a/ui/compositor/test/in_process_context_factory.cc
|
| +++ b/ui/compositor/test/in_process_context_factory.cc
|
| @@ -99,6 +99,11 @@ class DirectOutputSurface : public cc::OutputSurface {
|
|
|
| } // namespace
|
|
|
| +struct InProcessContextFactory::PerCompositorData {
|
| + std::unique_ptr<cc::SyntheticBeginFrameSource> begin_frame_source;
|
| + std::unique_ptr<cc::Display> display;
|
| +};
|
| +
|
| InProcessContextFactory::InProcessContextFactory(
|
| bool context_factory_for_test,
|
| cc::SurfaceManager* surface_manager)
|
| @@ -168,25 +173,26 @@ void InProcessContextFactory::CreateOutputSurface(
|
| }
|
|
|
| if (surface_manager_) {
|
| - std::unique_ptr<cc::DelayBasedBeginFrameSource> begin_frame_source(
|
| - new cc::DelayBasedBeginFrameSource(
|
| - base::MakeUnique<cc::DelayBasedTimeSource>(
|
| - compositor->task_runner().get())));
|
| + auto data = base::MakeUnique<PerCompositorData>();
|
| + data->begin_frame_source.reset(new cc::DelayBasedBeginFrameSource(
|
| + base::MakeUnique<cc::DelayBasedTimeSource>(
|
| + compositor->task_runner().get())));
|
| std::unique_ptr<cc::DisplayScheduler> scheduler(new cc::DisplayScheduler(
|
| - begin_frame_source.get(), compositor->task_runner().get(),
|
| + data->begin_frame_source.get(), compositor->task_runner().get(),
|
| display_output_surface->capabilities().max_frames_pending));
|
| - per_compositor_data_[compositor.get()] = base::MakeUnique<cc::Display>(
|
| + data->display = base::MakeUnique<cc::Display>(
|
| GetSharedBitmapManager(), GetGpuMemoryBufferManager(),
|
| - compositor->GetRendererSettings(), std::move(begin_frame_source),
|
| + compositor->GetRendererSettings(), data->begin_frame_source.get(),
|
| std::move(display_output_surface), std::move(scheduler),
|
| base::MakeUnique<cc::TextureMailboxDeleter>(
|
| compositor->task_runner().get()));
|
| -
|
| - auto* display = per_compositor_data_[compositor.get()].get();
|
| std::unique_ptr<cc::SurfaceDisplayOutputSurface> surface_output_surface(
|
| new cc::SurfaceDisplayOutputSurface(
|
| - surface_manager_, compositor->surface_id_allocator(), display,
|
| - context_provider, shared_worker_context_provider_));
|
| + surface_manager_, compositor->surface_id_allocator(),
|
| + data->display.get(), context_provider,
|
| + shared_worker_context_provider_));
|
| +
|
| + per_compositor_data_[compositor.get()] = std::move(data);
|
| compositor->SetOutputSurface(std::move(surface_output_surface));
|
| } else {
|
| compositor->SetOutputSurface(std::move(display_output_surface));
|
| @@ -259,14 +265,14 @@ void InProcessContextFactory::SetDisplayVisible(ui::Compositor* compositor,
|
| bool visible) {
|
| if (!per_compositor_data_.count(compositor))
|
| return;
|
| - per_compositor_data_[compositor]->SetVisible(visible);
|
| + per_compositor_data_[compositor]->display->SetVisible(visible);
|
| }
|
|
|
| void InProcessContextFactory::ResizeDisplay(ui::Compositor* compositor,
|
| const gfx::Size& size) {
|
| if (!per_compositor_data_.count(compositor))
|
| return;
|
| - per_compositor_data_[compositor]->Resize(size);
|
| + per_compositor_data_[compositor]->display->Resize(size);
|
| }
|
|
|
| void InProcessContextFactory::AddObserver(ContextFactoryObserver* observer) {
|
|
|