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

Unified Diff: content/common/plugin_list.cc

Issue 1862513003: Remove NPAPI from browser and utility (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/plugin_list.h ('k') | content/common/plugin_list_mac.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/plugin_list.cc
diff --git a/content/common/plugin_list.cc b/content/common/plugin_list.cc
index 80438818181f7f3577fb9f88ec91f6e736224a5d..eff0f66b26964b38d5dd6dec5e05f144b0150a5b 100644
--- a/content/common/plugin_list.cc
+++ b/content/common/plugin_list.cc
@@ -20,10 +20,6 @@
#include "net/base/mime_util.h"
#include "url/gurl.h"
-#if defined(OS_WIN)
-#include "content/common/plugin_constants_win.h"
-#endif
-
namespace content {
namespace {
@@ -37,42 +33,11 @@ PluginList* PluginList::Singleton() {
return g_singleton.Pointer();
}
-// static
-bool PluginList::DebugPluginLoading() {
- return base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kDebugPluginLoading);
-}
-
-void PluginList::DisablePluginsDiscovery() {
- plugins_discovery_disabled_ = true;
-}
-
void PluginList::RefreshPlugins() {
base::AutoLock lock(lock_);
loading_state_ = LOADING_STATE_NEEDS_REFRESH;
}
-void PluginList::AddExtraPluginPath(const base::FilePath& plugin_path) {
- // Chrome OS only loads plugins from /opt/google/chrome/plugins.
-#if !defined(OS_CHROMEOS)
- base::AutoLock lock(lock_);
- extra_plugin_paths_.push_back(plugin_path);
-#endif
-}
-
-void PluginList::RemoveExtraPluginPath(const base::FilePath& plugin_path) {
- base::AutoLock lock(lock_);
- RemoveExtraPluginPathLocked(plugin_path);
-}
-
-void PluginList::AddExtraPluginDir(const base::FilePath& plugin_dir) {
- // Chrome OS only loads plugins from /opt/google/chrome/plugins.
-#if !defined(OS_CHROMEOS)
- base::AutoLock lock(lock_);
- extra_plugin_dirs_.push_back(plugin_dir);
-#endif
-}
-
void PluginList::RegisterInternalPlugin(const WebPluginInfo& info,
bool add_at_beginning) {
base::AutoLock lock(lock_);
@@ -114,70 +79,18 @@ void PluginList::GetInternalPlugins(
bool PluginList::ReadPluginInfo(const base::FilePath& filename,
WebPluginInfo* info) {
- {
- base::AutoLock lock(lock_);
- for (size_t i = 0; i < internal_plugins_.size(); ++i) {
- if (filename == internal_plugins_[i].path) {
- *info = internal_plugins_[i];
- return true;
- }
- }
- }
-
- return PluginList::ReadWebPluginInfo(filename, info);
-}
-
-// static
-bool PluginList::ParseMimeTypes(
- const std::string& mime_types_str,
- const std::string& file_extensions_str,
- const base::string16& mime_type_descriptions_str,
- std::vector<WebPluginMimeType>* parsed_mime_types) {
- std::vector<std::string> mime_types = base::SplitString(
- mime_types_str, "|", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
- std::vector<std::string> file_extensions = base::SplitString(
- file_extensions_str, "|", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
- std::vector<base::string16> descriptions = base::SplitString(
- mime_type_descriptions_str, base::string16(1, '|'), base::TRIM_WHITESPACE,
- base::SPLIT_WANT_ALL);
-
- parsed_mime_types->clear();
-
- if (mime_types.empty())
- return false;
-
- for (size_t i = 0; i < mime_types.size(); ++i) {
- WebPluginMimeType mime_type;
- mime_type.mime_type = base::ToLowerASCII(mime_types[i]);
- if (file_extensions.size() > i) {
- mime_type.file_extensions = base::SplitString(
- file_extensions[i], ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
- }
-
- if (descriptions.size() > i) {
- mime_type.description = descriptions[i];
-
- // On Windows, the description likely has a list of file extensions
- // embedded in it (e.g. "SurfWriter file (*.swr)"). Remove an extension
- // list from the description if it is present.
- size_t ext = mime_type.description.find(base::ASCIIToUTF16("(*"));
- if (ext != base::string16::npos) {
- if (ext > 1 && mime_type.description[ext - 1] == ' ')
- ext--;
-
- mime_type.description.erase(ext);
- }
+ base::AutoLock lock(lock_);
+ for (const auto& plugin : internal_plugins_) {
+ if (filename == plugin.path) {
+ *info = plugin;
+ return true;
}
-
- parsed_mime_types->push_back(mime_type);
}
-
- return true;
+ return false;
}
PluginList::PluginList()
- : loading_state_(LOADING_STATE_NEEDS_REFRESH),
- plugins_discovery_disabled_(false) {
+ : loading_state_(LOADING_STATE_NEEDS_REFRESH) {
}
bool PluginList::PrepareForPluginLoading() {
@@ -189,7 +102,7 @@ bool PluginList::PrepareForPluginLoading() {
return true;
}
-void PluginList::LoadPlugins(bool include_npapi) {
+void PluginList::LoadPlugins() {
if (!PrepareForPluginLoading())
return;
@@ -203,7 +116,7 @@ void PluginList::LoadPlugins(bool include_npapi) {
will_load_callback.Run();
std::vector<base::FilePath> plugin_paths;
- GetPluginPathsToLoad(&plugin_paths, include_npapi);
+ GetPluginPathsToLoad(&plugin_paths);
for (std::vector<base::FilePath>::const_iterator it = plugin_paths.begin();
it != plugin_paths.end();
@@ -219,41 +132,30 @@ bool PluginList::LoadPluginIntoPluginList(
const base::FilePath& path,
std::vector<WebPluginInfo>* plugins,
WebPluginInfo* plugin_info) {
- LOG_IF(ERROR, PluginList::DebugPluginLoading())
- << "Loading plugin " << path.value();
if (!ReadPluginInfo(path, plugin_info))
return false;
- if (!ShouldLoadPluginUsingPluginList(*plugin_info, plugins))
- return false;
-
-#if defined(OS_WIN) && !defined(NDEBUG)
- if (path.BaseName().value() != L"npspy.dll") // Make an exception for NPSPY
-#endif
- {
- for (size_t i = 0; i < plugin_info->mime_types.size(); ++i) {
- // TODO: don't load global handlers for now.
- // WebKit hands to the Plugin before it tries
- // to handle mimeTypes on its own.
- const std::string &mime_type = plugin_info->mime_types[i].mime_type;
- if (mime_type == "*")
- return false;
- }
+ // TODO(piman): Do we still need this after NPAPI removal?
+ for (size_t i = 0; i < plugin_info->mime_types.size(); ++i) {
+ // TODO: don't load global handlers for now.
+ // WebKit hands to the Plugin before it tries
+ // to handle mimeTypes on its own.
+ const std::string &mime_type = plugin_info->mime_types[i].mime_type;
+ if (mime_type == "*")
+ return false;
}
plugins->push_back(*plugin_info);
return true;
}
-void PluginList::GetPluginPathsToLoad(std::vector<base::FilePath>* plugin_paths,
- bool include_npapi) {
+void PluginList::GetPluginPathsToLoad(
+ std::vector<base::FilePath>* plugin_paths) {
// Don't want to hold the lock while loading new plugins, so we don't block
// other methods if they're called on other threads.
std::vector<base::FilePath> extra_plugin_paths;
- std::vector<base::FilePath> extra_plugin_dirs;
{
base::AutoLock lock(lock_);
extra_plugin_paths = extra_plugin_paths_;
- extra_plugin_dirs = extra_plugin_dirs_;
}
for (size_t i = 0; i < extra_plugin_paths.size(); ++i) {
@@ -264,22 +166,6 @@ void PluginList::GetPluginPathsToLoad(std::vector<base::FilePath>* plugin_paths,
}
plugin_paths->push_back(path);
}
-
- if (include_npapi) {
- // A bit confusingly, this function is used to load Pepper plugins as well.
- // Those are all internal plugins so we have to use extra_plugin_paths.
- for (size_t i = 0; i < extra_plugin_dirs.size(); ++i)
- GetPluginsInDir(extra_plugin_dirs[i], plugin_paths);
-
- std::vector<base::FilePath> directories_to_scan;
- GetPluginDirectories(&directories_to_scan);
- for (size_t i = 0; i < directories_to_scan.size(); ++i)
- GetPluginsInDir(directories_to_scan[i], plugin_paths);
-
-#if defined(OS_WIN)
- GetPluginPathsFromRegistry(plugin_paths);
-#endif
- }
}
void PluginList::SetPlugins(const std::vector<WebPluginInfo>& plugins) {
@@ -298,9 +184,8 @@ void PluginList::set_will_load_plugins_callback(const base::Closure& callback) {
will_load_plugins_callback_ = callback;
}
-void PluginList::GetPlugins(std::vector<WebPluginInfo>* plugins,
- bool include_npapi) {
- LoadPlugins(include_npapi);
+void PluginList::GetPlugins(std::vector<WebPluginInfo>* plugins) {
+ LoadPlugins();
base::AutoLock lock(lock_);
plugins->insert(plugins->end(), plugins_list_.begin(), plugins_list_.end());
}
@@ -317,14 +202,13 @@ void PluginList::GetPluginInfoArray(
const std::string& mime_type,
bool allow_wildcard,
bool* use_stale,
- bool include_npapi,
std::vector<WebPluginInfo>* info,
std::vector<std::string>* actual_mime_types) {
DCHECK(mime_type == base::ToLowerASCII(mime_type));
DCHECK(info);
if (!use_stale)
- LoadPlugins(include_npapi);
+ LoadPlugins();
base::AutoLock lock(lock_);
if (use_stale)
*use_stale = (loading_state_ != LOADING_STATE_UP_TO_DATE);
« no previous file with comments | « content/common/plugin_list.h ('k') | content/common/plugin_list_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698