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

Side by Side Diff: ui/base/window_resize_helper.cc

Issue 1513053002: WIP - Gutterless resize on Windows Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: feedback Created 5 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 unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698