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

Side by Side Diff: base/message_loop/message_loop.cc

Issue 1891233006: mus: Fix handled status in UI event ack, add MessageLoop::NestingObserver (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@eventresult
Patch Set: review comments 3 Created 4 years, 7 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 unified diff | Download patch
« no previous file with comments | « base/message_loop/message_loop.h ('k') | base/message_loop/message_loop_test.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 114
115 MessageLoop::TaskObserver::TaskObserver() { 115 MessageLoop::TaskObserver::TaskObserver() {
116 } 116 }
117 117
118 MessageLoop::TaskObserver::~TaskObserver() { 118 MessageLoop::TaskObserver::~TaskObserver() {
119 } 119 }
120 120
121 MessageLoop::DestructionObserver::~DestructionObserver() { 121 MessageLoop::DestructionObserver::~DestructionObserver() {
122 } 122 }
123 123
124 MessageLoop::NestingObserver::~NestingObserver() {}
125
124 //------------------------------------------------------------------------------ 126 //------------------------------------------------------------------------------
125 127
126 MessageLoop::MessageLoop(Type type) 128 MessageLoop::MessageLoop(Type type)
127 : MessageLoop(type, MessagePumpFactoryCallback()) { 129 : MessageLoop(type, MessagePumpFactoryCallback()) {
128 BindToCurrentThread(); 130 BindToCurrentThread();
129 } 131 }
130 132
131 MessageLoop::MessageLoop(std::unique_ptr<MessagePump> pump) 133 MessageLoop::MessageLoop(std::unique_ptr<MessagePump> pump)
132 : MessageLoop(TYPE_CUSTOM, Bind(&ReturnPump, Passed(&pump))) { 134 : MessageLoop(TYPE_CUSTOM, Bind(&ReturnPump, Passed(&pump))) {
133 BindToCurrentThread(); 135 BindToCurrentThread();
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 DCHECK_EQ(this, current()); 258 DCHECK_EQ(this, current());
257 destruction_observers_.AddObserver(destruction_observer); 259 destruction_observers_.AddObserver(destruction_observer);
258 } 260 }
259 261
260 void MessageLoop::RemoveDestructionObserver( 262 void MessageLoop::RemoveDestructionObserver(
261 DestructionObserver* destruction_observer) { 263 DestructionObserver* destruction_observer) {
262 DCHECK_EQ(this, current()); 264 DCHECK_EQ(this, current());
263 destruction_observers_.RemoveObserver(destruction_observer); 265 destruction_observers_.RemoveObserver(destruction_observer);
264 } 266 }
265 267
268 void MessageLoop::AddNestingObserver(NestingObserver* observer) {
269 DCHECK_EQ(this, current());
270 nesting_observers_.AddObserver(observer);
271 }
272
273 void MessageLoop::RemoveNestingObserver(NestingObserver* observer) {
274 DCHECK_EQ(this, current());
275 nesting_observers_.RemoveObserver(observer);
276 }
277
266 void MessageLoop::PostTask( 278 void MessageLoop::PostTask(
267 const tracked_objects::Location& from_here, 279 const tracked_objects::Location& from_here,
268 const Closure& task) { 280 const Closure& task) {
269 task_runner_->PostTask(from_here, task); 281 task_runner_->PostTask(from_here, task);
270 } 282 }
271 283
272 void MessageLoop::PostDelayedTask( 284 void MessageLoop::PostDelayedTask(
273 const tracked_objects::Location& from_here, 285 const tracked_objects::Location& from_here,
274 const Closure& task, 286 const Closure& task,
275 TimeDelta delay) { 287 TimeDelta delay) {
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 #endif 581 #endif
570 } 582 }
571 583
572 void MessageLoop::HistogramEvent(int event) { 584 void MessageLoop::HistogramEvent(int event) {
573 #if !defined(OS_NACL) 585 #if !defined(OS_NACL)
574 if (message_histogram_) 586 if (message_histogram_)
575 message_histogram_->Add(event); 587 message_histogram_->Add(event);
576 #endif 588 #endif
577 } 589 }
578 590
591 void MessageLoop::NotifyBeginNestedLoop() {
592 FOR_EACH_OBSERVER(NestingObserver, nesting_observers_,
593 OnBeginNestedMessageLoop());
594 }
595
579 bool MessageLoop::DoWork() { 596 bool MessageLoop::DoWork() {
580 if (!nestable_tasks_allowed_) { 597 if (!nestable_tasks_allowed_) {
581 // Task can't be executed right now. 598 // Task can't be executed right now.
582 return false; 599 return false;
583 } 600 }
584 601
585 for (;;) { 602 for (;;) {
586 ReloadWorkQueue(); 603 ReloadWorkQueue();
587 if (work_queue_.empty()) 604 if (work_queue_.empty())
588 break; 605 break;
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 persistent, 765 persistent,
749 mode, 766 mode,
750 controller, 767 controller,
751 delegate); 768 delegate);
752 } 769 }
753 #endif 770 #endif
754 771
755 #endif // !defined(OS_NACL_SFI) 772 #endif // !defined(OS_NACL_SFI)
756 773
757 } // namespace base 774 } // namespace base
OLDNEW
« no previous file with comments | « base/message_loop/message_loop.h ('k') | base/message_loop/message_loop_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698