summaryrefslogtreecommitdiffstats
path: root/content/ppapi_plugin
diff options
context:
space:
mode:
authorshess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-12 22:48:04 +0000
committershess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-12 22:48:04 +0000
commitd2f7edc63321237aa7ee16d7b6e013122165b12b (patch)
treebe196fdf536a40d1488248553eb60d035016167d /content/ppapi_plugin
parent8475e0b401d0344cb24198a9c269cf5ef842fad5 (diff)
downloadchromium_src-d2f7edc63321237aa7ee16d7b6e013122165b12b.zip
chromium_src-d2f7edc63321237aa7ee16d7b6e013122165b12b.tar.gz
chromium_src-d2f7edc63321237aa7ee16d7b6e013122165b12b.tar.bz2
[Mac] Don't unload ppapi broker bundle.
The module is being loaded in a way which destructively modifies the Objective-C runtime structures, making it unsafe to unload. BUG=172319 Review URL: https://codereview.chromium.org/12585007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187674 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/ppapi_plugin')
-rw-r--r--content/ppapi_plugin/ppapi_thread.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/content/ppapi_plugin/ppapi_thread.cc b/content/ppapi_plugin/ppapi_thread.cc
index d6971410..a7acdbb 100644
--- a/content/ppapi_plugin/ppapi_thread.cc
+++ b/content/ppapi_plugin/ppapi_thread.cc
@@ -115,6 +115,16 @@ PpapiThread::~PpapiThread() {
plugin_entry_points_.shutdown_module();
WebKit::shutdown();
+#if defined(OS_MACOSX)
+ // TODO(shess): <http://crbug.com/172319> is about how modules
+ // cannot be unloaded when Objective-C is involved. interaction
+ // between the Objective-C runtime and module unloading. Leaking
+ // the module here to work around this, a later CL should autodetect
+ // the problem and leak in NativeLibrary.
+ if (is_broker_)
+ library_.Release();
+#endif
+
#if defined(OS_WIN)
if (permissions_.HasPermission(ppapi::PERMISSION_FLASH))
base::win::SetShouldCrashOnProcessDetach(false);