Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(490)

Unified Diff: ui/compositor/compositor.cc

Issue 2563783002: ui + mus: Split ContextFactory into ContextFactory(Client) and ContextFactoryPrivate (Closed)
Patch Set: Restore mash Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/compositor/compositor.h ('k') | ui/compositor/compositor_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/compositor/compositor.cc
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index a30c2ded5f974873d7cc2ec527cad68c31f04aec..f2d08cde512820fb5ea9af028f7e25811b276e4d 100644
--- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc
@@ -72,8 +72,10 @@ void CompositorLock::CancelLock() {
}
Compositor::Compositor(ui::ContextFactory* context_factory,
+ ui::ContextFactoryPrivate* context_factory_private,
scoped_refptr<base::SingleThreadTaskRunner> task_runner)
: context_factory_(context_factory),
+ context_factory_private_(context_factory_private),
root_layer_(NULL),
widget_(gfx::kNullAcceleratedWidget),
#if defined(USE_AURA)
@@ -81,7 +83,9 @@ Compositor::Compositor(ui::ContextFactory* context_factory,
#endif
widget_valid_(false),
compositor_frame_sink_requested_(false),
- frame_sink_id_(context_factory->AllocateFrameSinkId()),
+ frame_sink_id_(context_factory_private
+ ? context_factory_private->AllocateFrameSinkId()
+ : cc::FrameSinkId()),
task_runner_(task_runner),
vsync_manager_(new CompositorVSyncManager()),
device_scale_factor_(0.0f),
@@ -89,7 +93,10 @@ Compositor::Compositor(ui::ContextFactory* context_factory,
compositor_lock_(NULL),
layer_animator_collection_(this),
weak_ptr_factory_(this) {
- context_factory->GetSurfaceManager()->RegisterFrameSinkId(frame_sink_id_);
+ if (context_factory_private) {
+ context_factory_private->GetSurfaceManager()->RegisterFrameSinkId(
+ frame_sink_id_);
+ }
root_web_layer_ = cc::Layer::Create();
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
@@ -230,25 +237,31 @@ Compositor::~Compositor() {
host_.reset();
context_factory_->RemoveCompositor(this);
- auto* manager = context_factory_->GetSurfaceManager();
- for (auto& client : child_frame_sinks_) {
- DCHECK(client.is_valid());
- manager->UnregisterFrameSinkHierarchy(frame_sink_id_, client);
+ if (context_factory_private_) {
+ auto* manager = context_factory_private_->GetSurfaceManager();
+ for (auto& client : child_frame_sinks_) {
+ DCHECK(client.is_valid());
+ manager->UnregisterFrameSinkHierarchy(frame_sink_id_, client);
+ }
+ manager->InvalidateFrameSinkId(frame_sink_id_);
}
- manager->InvalidateFrameSinkId(frame_sink_id_);
}
void Compositor::AddFrameSink(const cc::FrameSinkId& frame_sink_id) {
- context_factory_->GetSurfaceManager()->RegisterFrameSinkHierarchy(
+ if (!context_factory_private_)
+ return;
+ context_factory_private_->GetSurfaceManager()->RegisterFrameSinkHierarchy(
frame_sink_id_, frame_sink_id);
child_frame_sinks_.insert(frame_sink_id);
}
void Compositor::RemoveFrameSink(const cc::FrameSinkId& frame_sink_id) {
+ if (!context_factory_private_)
+ return;
auto it = child_frame_sinks_.find(frame_sink_id);
DCHECK(it != child_frame_sinks_.end());
DCHECK(it->is_valid());
- context_factory_->GetSurfaceManager()->UnregisterFrameSinkHierarchy(
+ context_factory_private_->GetSurfaceManager()->UnregisterFrameSinkHierarchy(
frame_sink_id_, *it);
child_frame_sinks_.erase(it);
}
@@ -259,8 +272,10 @@ void Compositor::SetCompositorFrameSink(
host_->SetCompositorFrameSink(std::move(compositor_frame_sink));
// Display properties are reset when the output surface is lost, so update it
// to match the Compositor's.
- context_factory_->SetDisplayVisible(this, host_->IsVisible());
- context_factory_->SetDisplayColorSpace(this, color_space_);
+ if (context_factory_private_) {
+ context_factory_private_->SetDisplayVisible(this, host_->IsVisible());
+ context_factory_private_->SetDisplayColorSpace(this, color_space_);
+ }
}
void Compositor::ScheduleDraw() {
@@ -305,7 +320,7 @@ void Compositor::ScheduleRedrawRect(const gfx::Rect& damage_rect) {
}
void Compositor::DisableSwapUntilResize() {
- context_factory_->ResizeDisplay(this, gfx::Size());
+ context_factory_private_->ResizeDisplay(this, gfx::Size());
}
void Compositor::SetLatencyInfo(const ui::LatencyInfo& latency_info) {
@@ -320,7 +335,9 @@ void Compositor::SetScaleAndSize(float scale, const gfx::Size& size_in_pixel) {
size_ = size_in_pixel;
host_->GetLayerTree()->SetViewportSize(size_in_pixel);
root_web_layer_->SetBounds(size_in_pixel);
- context_factory_->ResizeDisplay(this, size_in_pixel);
+ // TODO(fsamuel): Get rid of ContextFactoryPrivate.
+ if (context_factory_private_)
+ context_factory_private_->ResizeDisplay(this, size_in_pixel);
}
if (device_scale_factor_ != scale) {
device_scale_factor_ = scale;
@@ -335,7 +352,9 @@ void Compositor::SetDisplayColorSpace(const gfx::ColorSpace& color_space) {
color_space_ = color_space;
// Color space is reset when the output surface is lost, so this must also be
// updated then.
- context_factory_->SetDisplayColorSpace(this, color_space_);
+ // TODO(fsamuel): Get rid of this.
+ if (context_factory_private_)
+ context_factory_private_->SetDisplayColorSpace(this, color_space_);
}
void Compositor::SetBackgroundColor(SkColor color) {
@@ -347,7 +366,9 @@ void Compositor::SetVisible(bool visible) {
host_->SetVisible(visible);
// Visibility is reset when the output surface is lost, so this must also be
// updated then.
- context_factory_->SetDisplayVisible(this, visible);
+ // TODO(fsamuel): Eliminate this call.
+ if (context_factory_private_)
+ context_factory_private_->SetDisplayVisible(this, visible);
}
bool Compositor::IsVisible() {
@@ -365,7 +386,8 @@ bool Compositor::GetScrollOffsetForLayer(int layer_id,
void Compositor::SetAuthoritativeVSyncInterval(
const base::TimeDelta& interval) {
- context_factory_->SetAuthoritativeVSyncInterval(this, interval);
+ if (context_factory_private_)
+ context_factory_private_->SetAuthoritativeVSyncInterval(this, interval);
vsync_manager_->SetAuthoritativeVSyncInterval(interval);
}
@@ -376,7 +398,10 @@ void Compositor::SetDisplayVSyncParameters(base::TimeTicks timebase,
interval = cc::BeginFrameArgs::DefaultInterval();
}
- context_factory_->SetDisplayVSyncParameters(this, timebase, interval);
+ if (context_factory_private_) {
+ context_factory_private_->SetDisplayVSyncParameters(this, timebase,
+ interval);
+ }
vsync_manager_->UpdateVSyncParameters(timebase, interval);
}
@@ -499,7 +524,8 @@ void Compositor::DidSubmitCompositorFrame() {
}
void Compositor::SetOutputIsSecure(bool output_is_secure) {
- context_factory_->SetOutputIsSecure(this, output_is_secure);
+ if (context_factory_private_)
+ context_factory_private_->SetOutputIsSecure(this, output_is_secure);
}
const cc::LayerTreeDebugState& Compositor::GetLayerTreeDebugState() const {
« no previous file with comments | « ui/compositor/compositor.h ('k') | ui/compositor/compositor_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698