diff options
Diffstat (limited to 'chromium/content/common/plugin_list.cc')
-rw-r--r-- | chromium/content/common/plugin_list.cc | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/chromium/content/common/plugin_list.cc b/chromium/content/common/plugin_list.cc index 69102c5c68f..d623fad337d 100644 --- a/chromium/content/common/plugin_list.cc +++ b/chromium/content/common/plugin_list.cc @@ -59,11 +59,7 @@ void PluginList::AddExtraPluginPath(const base::FilePath& plugin_path) { void PluginList::RemoveExtraPluginPath(const base::FilePath& plugin_path) { base::AutoLock lock(lock_); - std::vector<base::FilePath>::iterator it = - std::find(extra_plugin_paths_.begin(), extra_plugin_paths_.end(), - plugin_path); - if (it != extra_plugin_paths_.end()) - extra_plugin_paths_.erase(it); + RemoveExtraPluginPathLocked(plugin_path); } void PluginList::AddExtraPluginDir(const base::FilePath& plugin_dir) { @@ -90,13 +86,16 @@ void PluginList::RegisterInternalPlugin(const WebPluginInfo& info, void PluginList::UnregisterInternalPlugin(const base::FilePath& path) { base::AutoLock lock(lock_); + bool found = false; for (size_t i = 0; i < internal_plugins_.size(); i++) { if (internal_plugins_[i].path == path) { internal_plugins_.erase(internal_plugins_.begin() + i); - return; + found = true; + break; } } - NOTREACHED(); + DCHECK(found); + RemoveExtraPluginPathLocked(path); } void PluginList::GetInternalPlugins( @@ -399,6 +398,16 @@ bool PluginList::SupportsExtension(const WebPluginInfo& plugin, return false; } +void PluginList::RemoveExtraPluginPathLocked( + const base::FilePath& plugin_path) { + lock_.AssertAcquired(); + std::vector<base::FilePath>::iterator it = + std::find(extra_plugin_paths_.begin(), extra_plugin_paths_.end(), + plugin_path); + if (it != extra_plugin_paths_.end()) + extra_plugin_paths_.erase(it); +} + PluginList::~PluginList() { } |