OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/ppapi_plugin/ppapi_thread.h" | 5 #include "content/ppapi_plugin/ppapi_thread.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 AddRoute(ppapi::API_ID_PPB_NETWORKMANAGER_PRIVATE, | 110 AddRoute(ppapi::API_ID_PPB_NETWORKMANAGER_PRIVATE, |
111 &dispatcher_message_listener_); | 111 &dispatcher_message_listener_); |
112 } | 112 } |
113 | 113 |
114 PpapiThread::~PpapiThread() { | 114 PpapiThread::~PpapiThread() { |
115 ppapi::proxy::PluginGlobals::Get()->set_plugin_proxy_delegate(NULL); | 115 ppapi::proxy::PluginGlobals::Get()->set_plugin_proxy_delegate(NULL); |
116 if (plugin_entry_points_.shutdown_module) | 116 if (plugin_entry_points_.shutdown_module) |
117 plugin_entry_points_.shutdown_module(); | 117 plugin_entry_points_.shutdown_module(); |
118 WebKit::shutdown(); | 118 WebKit::shutdown(); |
119 | 119 |
120 #if defined(OS_MACOSX) | |
121 // TODO(shess): <http://crbug.com/172319> is about how modules | |
122 // cannot be unloaded when Objective-C is involved. interaction | |
123 // between the Objective-C runtime and module unloading. Leaking | |
124 // the module here to work around this, a later CL should autodetect | |
125 // the problem and leak in NativeLibrary. | |
126 if (is_broker_) | |
127 library_.Release(); | |
128 #endif | |
129 | |
130 #if defined(OS_WIN) | 120 #if defined(OS_WIN) |
131 if (permissions_.HasPermission(ppapi::PERMISSION_FLASH)) | 121 if (permissions_.HasPermission(ppapi::PERMISSION_FLASH)) |
132 base::win::SetShouldCrashOnProcessDetach(false); | 122 base::win::SetShouldCrashOnProcessDetach(false); |
133 #endif | 123 #endif |
134 } | 124 } |
135 | 125 |
136 bool PpapiThread::Send(IPC::Message* msg) { | 126 bool PpapiThread::Send(IPC::Message* msg) { |
137 // Allow access from multiple threads. | 127 // Allow access from multiple threads. |
138 if (MessageLoop::current() == message_loop()) | 128 if (MessageLoop::current() == message_loop()) |
139 return ChildThread::Send(msg); | 129 return ChildThread::Send(msg); |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
466 | 456 |
467 // plugin() is NULL when in-process. Which is fine, because this is | 457 // plugin() is NULL when in-process. Which is fine, because this is |
468 // just a hook for setting the process name. | 458 // just a hook for setting the process name. |
469 if (GetContentClient()->plugin()) { | 459 if (GetContentClient()->plugin()) { |
470 GetContentClient()->plugin()->PluginProcessStarted( | 460 GetContentClient()->plugin()->PluginProcessStarted( |
471 path.BaseName().RemoveExtension().LossyDisplayName()); | 461 path.BaseName().RemoveExtension().LossyDisplayName()); |
472 } | 462 } |
473 } | 463 } |
474 | 464 |
475 } // namespace content | 465 } // namespace content |
OLD | NEW |