summaryrefslogtreecommitdiffstats
path: root/content/renderer/renderer_main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/renderer_main.cc')
-rw-r--r--content/renderer/renderer_main.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc
index 31b0781..33aa047 100644
--- a/content/renderer/renderer_main.cc
+++ b/content/renderer/renderer_main.cc
@@ -45,6 +45,7 @@
#include "base/mac/mac_util.h"
#include "base/mac/scoped_nsautorelease_pool.h"
+#include "base/message_loop/message_pump_mac.h"
#include "third_party/WebKit/public/web/WebView.h"
#endif // OS_MACOSX
@@ -158,9 +159,11 @@ int RendererMain(const MainFunctionParams& parameters) {
RendererMessageLoopObserver task_observer;
#if defined(OS_MACOSX)
- // As long as we use Cocoa in the renderer (for the forseeable future as of
- // now; see http://crbug.com/306348 for info) we need to have a UI loop.
- base::MessageLoopForUI main_message_loop;
+ // As long as scrollbars on Mac are painted with Cocoa, the message pump
+ // needs to be backed by a Foundation-level loop to process NSTimers. See
+ // http://crbug.com/306348#c24 for details.
+ scoped_ptr<base::MessagePump> pump(new base::MessagePumpNSRunLoop());
+ base::MessageLoop main_message_loop(pump.Pass());
#else
// The main message loop of the renderer services doesn't have IO or UI tasks.
base::MessageLoop main_message_loop;