summaryrefslogtreecommitdiff
path: root/chromium/content/common/plugin_list.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/common/plugin_list.cc')
-rw-r--r--chromium/content/common/plugin_list.cc23
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() {
}