| Index: ppapi/proxy/plugin_globals.cc
 | 
| ===================================================================
 | 
| --- ppapi/proxy/plugin_globals.cc	(revision 187715)
 | 
| +++ ppapi/proxy/plugin_globals.cc	(working copy)
 | 
| @@ -49,36 +49,40 @@
 | 
|  PluginGlobals::PluginGlobals()
 | 
|      : ppapi::PpapiGlobals(),
 | 
|        plugin_proxy_delegate_(NULL),
 | 
| -      callback_tracker_(new CallbackTracker) {
 | 
| +      callback_tracker_(new CallbackTracker),
 | 
| +      loop_for_main_thread_(
 | 
| +          new MessageLoopResource(MessageLoopResource::ForMainThread())) {
 | 
| +#if defined(ENABLE_PEPPER_THREADING)
 | 
| +  enable_threading_ = true;
 | 
| +#else
 | 
| +  enable_threading_ = false;
 | 
| +#endif
 | 
| +
 | 
|    DCHECK(!plugin_globals_);
 | 
|    plugin_globals_ = this;
 | 
| -
 | 
| -  // ResourceTracker asserts that we have the lock when we add new resources,
 | 
| -  // so we lock when creating the MessageLoopResource even though there is no
 | 
| -  // chance of race conditions.
 | 
| -  ProxyAutoLock lock;
 | 
| -  loop_for_main_thread_ =
 | 
| -      new MessageLoopResource(MessageLoopResource::ForMainThread());
 | 
|  }
 | 
|  
 | 
|  PluginGlobals::PluginGlobals(PerThreadForTest per_thread_for_test)
 | 
|      : ppapi::PpapiGlobals(per_thread_for_test),
 | 
|        plugin_proxy_delegate_(NULL),
 | 
|        callback_tracker_(new CallbackTracker) {
 | 
| +#if defined(ENABLE_PEPPER_THREADING)
 | 
| +  enable_threading_ = true;
 | 
| +#else
 | 
| +  enable_threading_ = false;
 | 
| +#endif
 | 
|    DCHECK(!plugin_globals_);
 | 
|  }
 | 
|  
 | 
|  PluginGlobals::~PluginGlobals() {
 | 
|    DCHECK(plugin_globals_ == this || !plugin_globals_);
 | 
| -  {
 | 
| -    ProxyAutoLock lock;
 | 
| -    // Release the main-thread message loop. We should have the last reference
 | 
| -    // count, so this will delete the MessageLoop resource. We do this before
 | 
| -    // we clear plugin_globals_, because the Resource destructor tries to access
 | 
| -    // this PluginGlobals.
 | 
| -    DCHECK(!loop_for_main_thread_ || loop_for_main_thread_->HasOneRef());
 | 
| -    loop_for_main_thread_ = NULL;
 | 
| -  }
 | 
| +  // Release the main-thread message loop. We should have the last reference
 | 
| +  // count, so this will delete the MessageLoop resource. We do this before
 | 
| +  // we clear plugin_globals_, because the Resource destructor tries to access
 | 
| +  // this PluginGlobals.
 | 
| +  DCHECK(!loop_for_main_thread_ || loop_for_main_thread_->HasOneRef());
 | 
| +  loop_for_main_thread_ = NULL;
 | 
| +
 | 
|    plugin_globals_ = NULL;
 | 
|  }
 | 
|  
 | 
| @@ -127,7 +131,9 @@
 | 
|  }
 | 
|  
 | 
|  base::Lock* PluginGlobals::GetProxyLock() {
 | 
| -  return &proxy_lock_;
 | 
| +  if (enable_threading_)
 | 
| +    return &proxy_lock_;
 | 
| +  return NULL;
 | 
|  }
 | 
|  
 | 
|  void PluginGlobals::LogWithSource(PP_Instance instance,
 | 
| 
 |