| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <objidl.h> | 9 #include <objidl.h> |
| 10 #include <mlang.h> | 10 #include <mlang.h> |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 #include "chrome/common/chrome_switches.h" | 26 #include "chrome/common/chrome_switches.h" |
| 27 #include "chrome/common/chrome_paths.h" | 27 #include "chrome/common/chrome_paths.h" |
| 28 #include "chrome/common/render_messages.h" | 28 #include "chrome/common/render_messages.h" |
| 29 #include "chrome/common/nacl_types.h" | 29 #include "chrome/common/nacl_types.h" |
| 30 #include "chrome/renderer/render_view.h" | 30 #include "chrome/renderer/render_view.h" |
| 31 #include "ipc/ipc_channel.h" | 31 #include "ipc/ipc_channel.h" |
| 32 #include "ipc/ipc_message_utils.h" | 32 #include "ipc/ipc_message_utils.h" |
| 33 #include "media/base/media.h" | 33 #include "media/base/media.h" |
| 34 #include "media/base/media_switches.h" | 34 #include "media/base/media_switches.h" |
| 35 #include "native_client/src/trusted/plugin/nacl_entry_points.h" | 35 #include "native_client/src/trusted/plugin/nacl_entry_points.h" |
| 36 #include "webkit/glue/plugins/plugin_instance.h" |
| 37 #include "webkit/glue/plugins/plugin_lib.h" |
| 36 #include "webkit/glue/webkit_glue.h" | 38 #include "webkit/glue/webkit_glue.h" |
| 37 | 39 |
| 38 #if defined(OS_MACOSX) | 40 #if defined(OS_MACOSX) |
| 39 #include "base/mac_util.h" | 41 #include "base/mac_util.h" |
| 40 #endif | 42 #endif |
| 41 | 43 |
| 42 namespace { | 44 namespace { |
| 43 | 45 |
| 44 bool LaunchNaClProcess(const char* url, | 46 bool LaunchNaClProcess(const char* url, |
| 45 int imc_fd, | 47 int imc_fd, |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 initialized_media_library_ = | 134 initialized_media_library_ = |
| 133 PathService::Get(base::DIR_MODULE, &module_path) && | 135 PathService::Get(base::DIR_MODULE, &module_path) && |
| 134 media::InitializeMediaLibrary(module_path); | 136 media::InitializeMediaLibrary(module_path); |
| 135 | 137 |
| 136 // TODO(hclam): Add more checks here. Currently this is not used. | 138 // TODO(hclam): Add more checks here. Currently this is not used. |
| 137 if (CommandLine::ForCurrentProcess()->HasSwitch( | 139 if (CommandLine::ForCurrentProcess()->HasSwitch( |
| 138 switches::kEnableOpenMax)) { | 140 switches::kEnableOpenMax)) { |
| 139 media::InitializeOpenMaxLibrary(module_path); | 141 media::InitializeOpenMaxLibrary(module_path); |
| 140 } | 142 } |
| 141 #endif | 143 #endif |
| 144 |
| 145 // Load the pdf plugin before the sandbox is turned on. |
| 146 FilePath pdf; |
| 147 if (PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf)) { |
| 148 static scoped_refptr<NPAPI::PluginLib> pdf_lib = |
| 149 NPAPI::PluginLib::CreatePluginLib(pdf); |
| 150 // Actually load the plugin. |
| 151 pdf_lib->NP_Initialize(); |
| 152 // Keep an instance around to prevent the plugin unloading after a pdf is |
| 153 // closed. |
| 154 // Don't use scoped_ptr here because then get asserts on process shut down |
| 155 // when running in --single-process. |
| 156 static NPAPI::PluginInstance* instance = pdf_lib->CreateInstance(""); |
| 157 instance->plugin_lib(); // Quiet unused variable warnings in gcc. |
| 158 } |
| 142 } | 159 } |
| 143 | 160 |
| 144 RenderProcessImpl::~RenderProcessImpl() { | 161 RenderProcessImpl::~RenderProcessImpl() { |
| 145 // TODO(port): Try and limit what we pull in for our non-Win unit test bundle. | 162 // TODO(port): Try and limit what we pull in for our non-Win unit test bundle. |
| 146 #ifndef NDEBUG | 163 #ifndef NDEBUG |
| 147 // log important leaked objects | 164 // log important leaked objects |
| 148 webkit_glue::CheckForLeaks(); | 165 webkit_glue::CheckForLeaks(); |
| 149 #endif | 166 #endif |
| 150 | 167 |
| 151 GetShutDownEvent()->Signal(); | 168 GetShutDownEvent()->Signal(); |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 } | 318 } |
| 302 | 319 |
| 303 void RenderProcessImpl::ClearTransportDIBCache() { | 320 void RenderProcessImpl::ClearTransportDIBCache() { |
| 304 for (size_t i = 0; i < arraysize(shared_mem_cache_); ++i) { | 321 for (size_t i = 0; i < arraysize(shared_mem_cache_); ++i) { |
| 305 if (shared_mem_cache_[i]) { | 322 if (shared_mem_cache_[i]) { |
| 306 FreeTransportDIB(shared_mem_cache_[i]); | 323 FreeTransportDIB(shared_mem_cache_[i]); |
| 307 shared_mem_cache_[i] = NULL; | 324 shared_mem_cache_[i] = NULL; |
| 308 } | 325 } |
| 309 } | 326 } |
| 310 } | 327 } |
| OLD | NEW |