diff options
author | raymes <raymes@chromium.org> | 2014-09-14 20:46:11 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-15 03:49:04 +0000 |
commit | 1d38f6f04696744d6b0e9972e5c95d25485da27e (patch) | |
tree | a21dff0eb17e0fc5115dcfab69c9ddc72a803b63 /content/ppapi_plugin | |
parent | 0b56c8cc78435eb2f969bd178c946bb93dd6fa13 (diff) | |
download | chromium_src-1d38f6f04696744d6b0e9972e5c95d25485da27e.zip chromium_src-1d38f6f04696744d6b0e9972e5c95d25485da27e.tar.gz chromium_src-1d38f6f04696744d6b0e9972e5c95d25485da27e.tar.bz2 |
Revert of PPAPI: Fix GetBrowserInterface race conditions (patchset #6 id:100001 of https://codereview.chromium.org/568793002/)
Reason for revert:
Sorry to revert but I randomly noticed this to be causing a top crasher e.g. go/crash/75090c1e31f33cfd
The reason is because the patch explicitly calls PluginGlobals::SetPluginProxyDelegate with NULL from PpapiThread::Shutdown but the pointer is used immediately inside the function.
I guess it should be a simple fix. I was going to put up a fix which just reset the browser_sender_ to NULL in that case, but then I noticed there were cases where we call GetBrowserSender() and use it without checking whether it is NULL (e.g. https://code.google.com/p/chromium/codesearch#search/&q=%22PluginGlobals::Get()-%3EGetBrowserSender()-%3ESend%22&sq=package:chromium&type=cs)
I felt it would be better to just revert for now, sorry :(
Original issue's description:
> PPAPI: Fix GetBrowserInterface race conditions
>
> BUG=413513
>
> Committed: https://crrev.com/d1b2c8f719b0ab471a476bf53911a3657bb4c06a
> Cr-Commit-Position: refs/heads/master@{#294715}
TBR=teravest@chromium.org,piman@chromium.org,dmichael@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=413513
Review URL: https://codereview.chromium.org/566243004
Cr-Commit-Position: refs/heads/master@{#294782}
Diffstat (limited to 'content/ppapi_plugin')
-rw-r--r-- | content/ppapi_plugin/ppapi_thread.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/content/ppapi_plugin/ppapi_thread.cc b/content/ppapi_plugin/ppapi_thread.cc index f2358c1..39af7ff 100644 --- a/content/ppapi_plugin/ppapi_thread.cc +++ b/content/ppapi_plugin/ppapi_thread.cc @@ -107,7 +107,7 @@ PpapiThread::PpapiThread(const CommandLine& command_line, bool is_broker) base::RandInt(0, std::numeric_limits<PP_Module>::max())), next_plugin_dispatcher_id_(1) { ppapi::proxy::PluginGlobals* globals = ppapi::proxy::PluginGlobals::Get(); - globals->SetPluginProxyDelegate(this); + globals->set_plugin_proxy_delegate(this); globals->set_command_line( command_line.GetSwitchValueASCII(switches::kPpapiFlashArgs)); @@ -127,7 +127,7 @@ PpapiThread::~PpapiThread() { void PpapiThread::Shutdown() { ChildThread::Shutdown(); - ppapi::proxy::PluginGlobals::Get()->SetPluginProxyDelegate(NULL); + ppapi::proxy::PluginGlobals::Get()->set_plugin_proxy_delegate(NULL); if (plugin_entry_points_.shutdown_module) plugin_entry_points_.shutdown_module(); webkit_platform_support_->Shutdown(); |