Index: content/browser/compositor/gpu_process_transport_factory.cc |
diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc |
index 334b10c04662d48f227bfffcbd408266b92f24a6..60d390273a437f45eef63aa6232ef7aa0092f5e4 100644 |
--- a/content/browser/compositor/gpu_process_transport_factory.cc |
+++ b/content/browser/compositor/gpu_process_transport_factory.cc |
@@ -171,6 +171,7 @@ struct GpuProcessTransportFactory::PerCompositorData { |
std::unique_ptr<cc::Display> display; |
bool output_is_secure = false; |
gfx::ColorSpace color_space; |
+ bool visible = false; |
}; |
GpuProcessTransportFactory::GpuProcessTransportFactory() |
@@ -564,6 +565,7 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
data->display->Resize(compositor->size()); |
data->display->SetOutputIsSecure(data->output_is_secure); |
data->display->SetColorSpace(data->color_space); |
+ data->display->SetVisible(data->visible); |
compositor->SetOutputSurface(std::move(delegated_output_surface)); |
} |
@@ -655,6 +657,18 @@ uint32_t GpuProcessTransportFactory::AllocateSurfaceClientId() { |
return next_surface_client_id_++; |
} |
+void GpuProcessTransportFactory::SetDisplayVisible(ui::Compositor* compositor, |
+ bool visible) { |
+ PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
+ if (it == per_compositor_data_.end()) |
+ return; |
+ PerCompositorData* data = it->second; |
+ DCHECK(data); |
+ data->visible = visible; |
+ if (data->display) |
+ data->display->SetVisible(visible); |
+} |
+ |
void GpuProcessTransportFactory::ResizeDisplay(ui::Compositor* compositor, |
const gfx::Size& size) { |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |