Index: content/browser/browser_thread_impl.cc |
diff --git a/content/browser/browser_thread_impl.cc b/content/browser/browser_thread_impl.cc |
index a3a33bdea5ecf490df43495f4cba190c0695ff41..5657882dfa97ab16d0fc49f990194889abd97100 100644 |
--- a/content/browser/browser_thread_impl.cc |
+++ b/content/browser/browser_thread_impl.cc |
@@ -185,6 +185,14 @@ void BrowserThreadImpl::FlushThreadPoolHelperForTesting() { |
void BrowserThreadImpl::Init() { |
BrowserThreadGlobals& globals = g_globals.Get(); |
+ if (BrowserThread::CurrentlyOn(BrowserThread::DB) || |
+ BrowserThread::CurrentlyOn(BrowserThread::FILE) || |
+ BrowserThread::CurrentlyOn(BrowserThread::FILE_USER_BLOCKING) || |
+ BrowserThread::CurrentlyOn(BrowserThread::PROCESS_LAUNCHER) || |
+ BrowserThread::CurrentlyOn(BrowserThread::CACHE)) { |
+ base::MessageLoop::current()->DisallowNesting(); |
+ } |
+ |
using base::subtle::AtomicWord; |
AtomicWord* storage = |
reinterpret_cast<AtomicWord*>(&globals.thread_delegates[identifier_]); |