Index: ui/compositor/compositor.cc |
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
index b9078b680ef0f82a3ff8e79148a2888acc6cd357..9b76eaeadaddb8ba5cb5f38d5e88fde72b61219e 100644 |
--- a/ui/compositor/compositor.cc |
+++ b/ui/compositor/compositor.cc |
@@ -46,41 +46,20 @@ |
namespace { |
-const double kDefaultRefreshRate = 60.0; |
-const double kTestRefreshRate = 200.0; |
+constexpr double kDefaultRefreshRate = 60.0; |
+constexpr double kTestRefreshRate = 200.0; |
} // namespace |
namespace ui { |
-CompositorLock::CompositorLock(Compositor* compositor) |
- : compositor_(compositor) { |
- if (compositor_->locks_will_time_out_) { |
- compositor_->task_runner_->PostDelayedTask( |
- FROM_HERE, |
- base::Bind(&CompositorLock::CancelLock, AsWeakPtr()), |
- base::TimeDelta::FromMilliseconds(kCompositorLockTimeoutMs)); |
- } |
-} |
- |
-CompositorLock::~CompositorLock() { |
- CancelLock(); |
-} |
- |
-void CompositorLock::CancelLock() { |
- if (!compositor_) |
- return; |
- compositor_->UnlockCompositor(); |
- compositor_ = NULL; |
-} |
- |
Compositor::Compositor(const cc::FrameSinkId& frame_sink_id, |
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), |
+ root_layer_(nullptr), |
widget_(gfx::kNullAcceleratedWidget), |
committed_frame_number_(0), |
widget_valid_(false), |
@@ -89,8 +68,7 @@ Compositor::Compositor(const cc::FrameSinkId& frame_sink_id, |
task_runner_(task_runner), |
vsync_manager_(new CompositorVSyncManager()), |
device_scale_factor_(0.0f), |
- locks_will_time_out_(true), |
- compositor_lock_(NULL), |
+ compositor_lock_(nullptr), |
layer_animator_collection_(this), |
weak_ptr_factory_(this) { |
if (context_factory_private) { |
@@ -228,9 +206,6 @@ Compositor::Compositor(const cc::FrameSinkId& frame_sink_id, |
Compositor::~Compositor() { |
TRACE_EVENT0("shutdown", "Compositor::destructor"); |
- CancelCompositorLock(); |
- DCHECK(!compositor_lock_); |
- |
for (auto& observer : observer_list_) |
observer.OnCompositingShuttingDown(this); |
@@ -559,9 +534,12 @@ const cc::RendererSettings& Compositor::GetRendererSettings() const { |
return host_->GetSettings().renderer_settings; |
} |
-scoped_refptr<CompositorLock> Compositor::GetCompositorLock() { |
+scoped_refptr<CompositorLock> Compositor::GetCompositorLock( |
+ CompositorLockClient* client, |
+ base::TimeDelta timeout) { |
if (!compositor_lock_) { |
- compositor_lock_ = new CompositorLock(this); |
+ compositor_lock_ = |
+ new CompositorLock(client, this, task_runner_.get(), timeout); |
host_->SetDeferCommits(true); |
for (auto& observer : observer_list_) |
observer.OnCompositingLockStateChanged(this); |
@@ -569,17 +547,12 @@ scoped_refptr<CompositorLock> Compositor::GetCompositorLock() { |
return compositor_lock_; |
} |
-void Compositor::UnlockCompositor() { |
+void Compositor::DoUnlockCompositor() { |
DCHECK(compositor_lock_); |
- compositor_lock_ = NULL; |
+ compositor_lock_ = nullptr; |
host_->SetDeferCommits(false); |
for (auto& observer : observer_list_) |
observer.OnCompositingLockStateChanged(this); |
} |
-void Compositor::CancelCompositorLock() { |
- if (compositor_lock_) |
- compositor_lock_->CancelLock(); |
-} |
- |
} // namespace ui |