From 32857c06c8b61738dc7ac6c2adb7b3bd18a437d0 Mon Sep 17 00:00:00 2001 From: "jeremy@chromium.org" Date: Wed, 25 Jun 2014 17:40:57 +0000 Subject: Revert of Revert "[Mac] Reland r276808 Use a native MessagePump instead of a MessagePumpDefault" (https://codereview.chromium.org/354673005/) Reason for revert: Original revert was due to a perf regression, which turned out to be nothing - see crbug.com/388360 for details. Original issue's description: > Revert "[Mac] Reland r276808 Use a native MessagePump instead of a MessagePumpDefault" > > This reverts commit e82339d44d0dde725295785b9fea8c448d382621. > > See if this fixes the perf regression. > > BUG=388360 > TBR=jeremy@chromium.org > NOTRY=true > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=279474 TBR=miletus@chromium.org NOTREECHECKS=true NOTRY=true BUG=388360 Review URL: https://codereview.chromium.org/349933004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279749 0039d316-1c4b-4281-b951-d872f2087c98 --- base/message_loop/message_loop.cc | 10 +++++++++- base/message_loop/message_pump_default.h | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'base') diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc index dd1a393..ccece4d 100644 --- a/base/message_loop/message_loop.cc +++ b/base/message_loop/message_loop.cc @@ -229,6 +229,14 @@ scoped_ptr MessageLoop::CreateMessagePumpForType(Type type) { #define MESSAGE_PUMP_UI scoped_ptr(new MessagePumpForUI()) #endif +#if defined(OS_MACOSX) + // Use an OS native runloop on Mac to support timer coalescing. + #define MESSAGE_PUMP_DEFAULT \ + scoped_ptr(new MessagePumpCFRunLoop()) +#else + #define MESSAGE_PUMP_DEFAULT scoped_ptr(new MessagePumpDefault()) +#endif + if (type == MessageLoop::TYPE_UI) { if (message_pump_for_ui_factory_) return message_pump_for_ui_factory_(); @@ -243,7 +251,7 @@ scoped_ptr MessageLoop::CreateMessagePumpForType(Type type) { #endif DCHECK_EQ(MessageLoop::TYPE_DEFAULT, type); - return scoped_ptr(new MessagePumpDefault()); + return MESSAGE_PUMP_DEFAULT; } void MessageLoop::AddDestructionObserver( diff --git a/base/message_loop/message_pump_default.h b/base/message_loop/message_pump_default.h index a9b83e8..19e7200 100644 --- a/base/message_loop/message_pump_default.h +++ b/base/message_loop/message_pump_default.h @@ -5,13 +5,14 @@ #ifndef BASE_MESSAGE_LOOP_MESSAGE_PUMP_DEFAULT_H_ #define BASE_MESSAGE_LOOP_MESSAGE_PUMP_DEFAULT_H_ +#include "base/base_export.h" #include "base/message_loop/message_pump.h" #include "base/synchronization/waitable_event.h" #include "base/time/time.h" namespace base { -class MessagePumpDefault : public MessagePump { +class BASE_EXPORT MessagePumpDefault : public MessagePump { public: MessagePumpDefault(); virtual ~MessagePumpDefault(); -- cgit v1.1