| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" | 5 #include "ui/base/window_resize_helper.h" |
| 6 | 6 |
| 7 #include <list> | 7 #include <list> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| 11 #include "base/single_thread_task_runner.h" | 11 #include "base/single_thread_task_runner.h" |
| 12 #include "base/synchronization/lock.h" | 12 #include "base/synchronization/lock.h" |
| 13 #include "base/synchronization/waitable_event.h" | 13 #include "base/synchronization/waitable_event.h" |
| 14 #include "base/threading/thread_restrictions.h" | 14 #include "base/threading/thread_restrictions.h" |
| 15 | 15 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 base::WaitableEvent event_; | 97 base::WaitableEvent event_; |
| 98 | 98 |
| 99 // Callback to call TimedWait on |event_| from an appropriate class. | 99 // Callback to call TimedWait on |event_| from an appropriate class. |
| 100 EventTimedWaitCallback event_timed_wait_callback_; | 100 EventTimedWaitCallback event_timed_wait_callback_; |
| 101 | 101 |
| 102 scoped_refptr<base::SingleThreadTaskRunner> target_task_runner_; | 102 scoped_refptr<base::SingleThreadTaskRunner> target_task_runner_; |
| 103 | 103 |
| 104 DISALLOW_COPY_AND_ASSIGN(PumpableTaskRunner); | 104 DISALLOW_COPY_AND_ASSIGN(PumpableTaskRunner); |
| 105 }; | 105 }; |
| 106 | 106 |
| 107 base::LazyInstance<WindowResizeHelperMac>::Leaky g_window_resize_helper = | 107 base::LazyInstance<WindowResizeHelper>::Leaky g_window_resize_helper = |
| 108 LAZY_INSTANCE_INITIALIZER; | 108 LAZY_INSTANCE_INITIALIZER; |
| 109 | 109 |
| 110 //////////////////////////////////////////////////////////////////////////////// | 110 //////////////////////////////////////////////////////////////////////////////// |
| 111 // WrappedTask | 111 // WrappedTask |
| 112 | 112 |
| 113 WrappedTask::WrappedTask(const base::Closure& closure, base::TimeDelta delay) | 113 WrappedTask::WrappedTask(const base::Closure& closure, base::TimeDelta delay) |
| 114 : closure_(closure), | 114 : closure_(closure), |
| 115 can_run_time_(base::TimeTicks::Now() + delay), | 115 can_run_time_(base::TimeTicks::Now() + delay), |
| 116 has_run_(false), | 116 has_run_(false), |
| 117 sequence_number_(0) {} | 117 sequence_number_(0) {} |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 return false; | 271 return false; |
| 272 } | 272 } |
| 273 | 273 |
| 274 bool PumpableTaskRunner::RunsTasksOnCurrentThread() const { | 274 bool PumpableTaskRunner::RunsTasksOnCurrentThread() const { |
| 275 return target_task_runner_->RunsTasksOnCurrentThread(); | 275 return target_task_runner_->RunsTasksOnCurrentThread(); |
| 276 } | 276 } |
| 277 | 277 |
| 278 } // namespace | 278 } // namespace |
| 279 | 279 |
| 280 //////////////////////////////////////////////////////////////////////////////// | 280 //////////////////////////////////////////////////////////////////////////////// |
| 281 // WindowResizeHelperMac | 281 // WindowResizeHelper |
| 282 | 282 |
| 283 scoped_refptr<base::SingleThreadTaskRunner> WindowResizeHelperMac::task_runner() | 283 scoped_refptr<base::SingleThreadTaskRunner> WindowResizeHelper::task_runner() |
| 284 const { | 284 const { |
| 285 return task_runner_; | 285 return task_runner_; |
| 286 } | 286 } |
| 287 | 287 |
| 288 // static | 288 // static |
| 289 WindowResizeHelperMac* WindowResizeHelperMac::Get() { | 289 WindowResizeHelper* WindowResizeHelper::Get() { |
| 290 return g_window_resize_helper.Pointer(); | 290 return g_window_resize_helper.Pointer(); |
| 291 } | 291 } |
| 292 | 292 |
| 293 void WindowResizeHelperMac::Init( | 293 void WindowResizeHelper::Init( |
| 294 const scoped_refptr<base::SingleThreadTaskRunner>& target_task_runner) { | 294 const scoped_refptr<base::SingleThreadTaskRunner>& target_task_runner) { |
| 295 DCHECK(!task_runner_); | 295 DCHECK(!task_runner_); |
| 296 task_runner_ = new PumpableTaskRunner( | 296 task_runner_ = new PumpableTaskRunner( |
| 297 base::Bind(&WindowResizeHelperMac::EventTimedWait), target_task_runner); | 297 base::Bind(&WindowResizeHelper::EventTimedWait), target_task_runner); |
| 298 } | 298 } |
| 299 | 299 |
| 300 bool WindowResizeHelperMac::WaitForSingleTaskToRun( | 300 bool WindowResizeHelper::WaitForSingleTaskToRun( |
| 301 const base::TimeDelta& max_delay) { | 301 const base::TimeDelta& max_delay) { |
| 302 PumpableTaskRunner* pumpable_task_runner = | 302 PumpableTaskRunner* pumpable_task_runner = |
| 303 static_cast<PumpableTaskRunner*>(task_runner_.get()); | 303 static_cast<PumpableTaskRunner*>(task_runner_.get()); |
| 304 if (!pumpable_task_runner) | 304 if (!pumpable_task_runner) |
| 305 return false; | 305 return false; |
| 306 return pumpable_task_runner->WaitForSingleWrappedTaskToRun(max_delay); | 306 return pumpable_task_runner->WaitForSingleWrappedTaskToRun(max_delay); |
| 307 } | 307 } |
| 308 | 308 |
| 309 WindowResizeHelperMac::WindowResizeHelperMac() {} | 309 WindowResizeHelper::WindowResizeHelper() {} |
| 310 WindowResizeHelperMac::~WindowResizeHelperMac() {} | 310 WindowResizeHelper::~WindowResizeHelper() {} |
| 311 | 311 |
| 312 void WindowResizeHelperMac::EventTimedWait(base::WaitableEvent* event, | 312 void WindowResizeHelper::EventTimedWait(base::WaitableEvent* event, |
| 313 base::TimeDelta delay) { | 313 base::TimeDelta delay) { |
| 314 base::ThreadRestrictions::ScopedAllowWait allow_wait; | 314 base::ThreadRestrictions::ScopedAllowWait allow_wait; |
| 315 event->TimedWait(delay); | 315 event->TimedWait(delay); |
| 316 } | 316 } |
| 317 | 317 |
| 318 } // namespace ui | 318 } // namespace ui |
| OLD | NEW |