| Index: cc/trees/proxy.cc
|
| diff --git a/cc/trees/proxy.cc b/cc/trees/proxy.cc
|
| index 66967a645c230e9a475978a793db8cb664b66cc5..a8f7b26fb04a150c7ad2f58c31553a59dc625997 100644
|
| --- a/cc/trees/proxy.cc
|
| +++ b/cc/trees/proxy.cc
|
| @@ -21,10 +21,14 @@ base::SingleThreadTaskRunner* Proxy::ImplThreadTaskRunner() const {
|
|
|
| bool Proxy::IsMainThread() const {
|
| #if DCHECK_IS_ON
|
| - DCHECK(main_task_runner_.get());
|
| if (impl_thread_is_overridden_)
|
| return false;
|
| - return main_task_runner_->BelongsToCurrentThread();
|
| +
|
| + bool is_main_thread = base::PlatformThread::CurrentId() == main_thread_id_;
|
| + if (is_main_thread && main_task_runner_.get()) {
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| + }
|
| + return is_main_thread;
|
| #else
|
| return true;
|
| #endif
|
| @@ -68,6 +72,7 @@ Proxy::Proxy(scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner)
|
| impl_task_runner_(impl_task_runner) {
|
| #else
|
| impl_task_runner_(impl_task_runner),
|
| + main_thread_id_(base::PlatformThread::CurrentId()),
|
| impl_thread_is_overridden_(false),
|
| is_main_thread_blocked_(false) {
|
| #endif
|
|
|