Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: content/common/pepper_plugin_registry.cc

Issue 20165002: Move webkit/plugins/ppapi to content/renderer/pepper. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: more more clang fun Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/common/pepper_plugin_registry.h ('k') | content/content_renderer.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/common/pepper_plugin_registry.h" 5 #include "content/common/pepper_plugin_registry.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/native_library.h" 8 #include "base/native_library.h"
9 #include "base/strings/string_split.h" 9 #include "base/strings/string_split.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 177
178 // Modules aren't destroyed very often and there are normally at most a 178 // Modules aren't destroyed very often and there are normally at most a
179 // couple of them. So for now we just do a brute-force search. 179 // couple of them. So for now we just do a brute-force search.
180 for (NonOwningModuleMap::iterator i = live_modules_.begin(); 180 for (NonOwningModuleMap::iterator i = live_modules_.begin();
181 i != live_modules_.end(); ++i) { 181 i != live_modules_.end(); ++i) {
182 if (i->second == dead_module) { 182 if (i->second == dead_module) {
183 live_modules_.erase(i); 183 live_modules_.erase(i);
184 return; 184 return;
185 } 185 }
186 } 186 }
187 NOTREACHED(); // Should have always found the module above. 187 // Can occur in tests.
188 } 188 }
189 189
190 PepperPluginRegistry::~PepperPluginRegistry() { 190 PepperPluginRegistry::~PepperPluginRegistry() {
191 // Explicitly clear all preloaded modules first. This will cause callbacks 191 // Explicitly clear all preloaded modules first. This will cause callbacks
192 // to erase these modules from the live_modules_ list, and we don't want 192 // to erase these modules from the live_modules_ list, and we don't want
193 // that to happen implicitly out-of-order. 193 // that to happen implicitly out-of-order.
194 preloaded_modules_.clear(); 194 preloaded_modules_.clear();
195 195
196 DCHECK(live_modules_.empty()); 196 DCHECK(live_modules_.empty());
197 } 197 }
198 198
199 PepperPluginRegistry::PepperPluginRegistry() { 199 PepperPluginRegistry::PepperPluginRegistry() {
200 ComputeList(&plugin_list_); 200 ComputeList(&plugin_list_);
201 201
202 // Note that in each case, AddLiveModule must be called before completing 202 // Note that in each case, AddLiveModule must be called before completing
203 // initialization. If we bail out (in the continue clauses) before saving 203 // initialization. If we bail out (in the continue clauses) before saving
204 // the initialized module, it will still try to unregister itself in its 204 // the initialized module, it will still try to unregister itself in its
205 // destructor. 205 // destructor.
206 for (size_t i = 0; i < plugin_list_.size(); i++) { 206 for (size_t i = 0; i < plugin_list_.size(); i++) {
207 const PepperPluginInfo& current = plugin_list_[i]; 207 const PepperPluginInfo& current = plugin_list_[i];
208 if (current.is_out_of_process) 208 if (current.is_out_of_process)
209 continue; // Out of process plugins need no special pre-initialization. 209 continue; // Out of process plugins need no special pre-initialization.
210 210
211 scoped_refptr<webkit::ppapi::PluginModule> module = 211 scoped_refptr<webkit::ppapi::PluginModule> module =
212 new webkit::ppapi::PluginModule(current.name, current.path, this, 212 new webkit::ppapi::PluginModule(current.name, current.path,
213 ppapi::PpapiPermissions(current.permissions)); 213 ppapi::PpapiPermissions(current.permissions));
214 AddLiveModule(current.path, module.get()); 214 AddLiveModule(current.path, module.get());
215 if (current.is_internal) { 215 if (current.is_internal) {
216 if (!module->InitAsInternalPlugin(current.internal_entry_points)) { 216 if (!module->InitAsInternalPlugin(current.internal_entry_points)) {
217 DLOG(ERROR) << "Failed to load pepper module: " << current.path.value(); 217 DLOG(ERROR) << "Failed to load pepper module: " << current.path.value();
218 continue; 218 continue;
219 } 219 }
220 } else { 220 } else {
221 // Preload all external plugins we're not running out of process. 221 // Preload all external plugins we're not running out of process.
222 if (!module->InitAsLibrary(current.path)) { 222 if (!module->InitAsLibrary(current.path)) {
223 DLOG(ERROR) << "Failed to load pepper module: " << current.path.value(); 223 DLOG(ERROR) << "Failed to load pepper module: " << current.path.value();
224 continue; 224 continue;
225 } 225 }
226 } 226 }
227 preloaded_modules_[current.path] = module; 227 preloaded_modules_[current.path] = module;
228 } 228 }
229 } 229 }
230 230
231 } // namespace content 231 } // namespace content
OLDNEW
« no previous file with comments | « content/common/pepper_plugin_registry.h ('k') | content/content_renderer.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698