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

Unified Diff: ui/compositor/compositor.cc

Issue 2773433003: Fix CompositorResizeLock to do something. (Closed)
Patch Set: resizelock: timeoutparam Created 3 years, 9 months 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
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

Powered by Google App Engine
This is Rietveld 408576698