Chromium Code Reviews| Index: webkit/glue/webthread_impl.cc | 
| diff --git a/webkit/glue/webthread_impl.cc b/webkit/glue/webthread_impl.cc | 
| index 439137fb380d5a34d2a3496aab6e4eeeab27ac69..170746f3ef7fe637ce4ae119614c78e5adcc10fb 100644 | 
| --- a/webkit/glue/webthread_impl.cc | 
| +++ b/webkit/glue/webthread_impl.cc | 
| @@ -70,6 +70,18 @@ void WebThreadImpl::postDelayedTask( | 
| base::TimeDelta::FromMilliseconds(delay_ms)); | 
| } | 
| +void WebThreadImpl::enterRunLoop() { | 
| + CHECK(IsCurrentThread()); | 
| + CHECK(!thread_->message_loop()->is_running()); // We don't support nesting. | 
| + thread_->message_loop()->Run(); | 
| +} | 
| + | 
| +void WebThreadImpl::exitRunLoop() { | 
| + CHECK(IsCurrentThread()); | 
| + CHECK(thread_->message_loop()->is_running()); | 
| + thread_->message_loop()->Quit(); | 
| +} | 
| + | 
| bool WebThreadImpl::IsCurrentThread() const { | 
| return thread_->thread_id() == base::PlatformThread::CurrentId(); | 
| } | 
| @@ -79,8 +91,9 @@ WebThreadImpl::~WebThreadImpl() { | 
| } | 
| WebThreadImplForMessageLoop::WebThreadImplForMessageLoop( | 
| - base::MessageLoopProxy* message_loop) | 
| - : message_loop_(message_loop) { | 
| + MessageLoop* message_loop, base::PlatformThreadId thread_id) | 
| + : message_loop_(message_loop) | 
| + , thread_id_(thread_id) { | 
| } | 
| void WebThreadImplForMessageLoop::postTask(Task* task) { | 
| @@ -96,8 +109,20 @@ void WebThreadImplForMessageLoop::postDelayedTask( | 
| delay_ms); | 
| } | 
| +void WebThreadImplForMessageLoop::enterRunLoop() { | 
| + CHECK(IsCurrentThread()); | 
| + CHECK(!message_loop_->is_running()); // We don't support nesting. | 
| + message_loop_->Run(); | 
| 
 
darin (slow to review)
2012/01/19 17:57:36
you could also just use MessageLoop::current()->Ru
 
 | 
| +} | 
| + | 
| +void WebThreadImplForMessageLoop::exitRunLoop() { | 
| + CHECK(IsCurrentThread()); | 
| + CHECK(message_loop_->is_running()); | 
| + message_loop_->Quit(); | 
| +} | 
| + | 
| bool WebThreadImplForMessageLoop::IsCurrentThread() const { | 
| - return message_loop_->BelongsToCurrentThread(); | 
| + return thread_id_ == base::PlatformThread::CurrentId(); | 
| } | 
| WebThreadImplForMessageLoop::~WebThreadImplForMessageLoop() { |