#include "content/browser/plugin_list.h"
#include <stddef.h>
#include <string_view>
#include "base/check.h"
#include "base/command_line.h"
#include "base/containers/contains.h"
#include "base/lazy_instance.h"
#include "base/ranges/algorithm.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/sys_string_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/content_switches.h"
#include "net/base/mime_util.h"
#include "url/gurl.h"
namespace content {
namespace {
base::LazyInstance<PluginList>::DestructorAtExit g_singleton = …;
bool SupportsType(const WebPluginInfo& plugin,
const std::string& mime_type,
bool allow_wildcard) { … }
bool SupportsExtension(const WebPluginInfo& plugin,
const std::string& extension,
std::string* actual_mime_type) { … }
}
PluginList* PluginList::Singleton() { … }
void PluginList::RefreshPlugins() { … }
void PluginList::RegisterInternalPlugin(const WebPluginInfo& info,
bool add_at_beginning) { … }
void PluginList::UnregisterInternalPlugin(const base::FilePath& path) { … }
void PluginList::GetInternalPlugins(
std::vector<WebPluginInfo>* internal_plugins) { … }
bool PluginList::ReadPluginInfo(const base::FilePath& filename,
WebPluginInfo* info) { … }
PluginList::PluginList() { … }
bool PluginList::PrepareForPluginLoading() { … }
void PluginList::LoadPlugins() { … }
bool PluginList::LoadPluginIntoPluginList(const base::FilePath& path,
std::vector<WebPluginInfo>* plugins,
WebPluginInfo* plugin_info) { … }
void PluginList::GetPluginPathsToLoad(
std::vector<base::FilePath>* plugin_paths) { … }
void PluginList::SetPlugins(const std::vector<WebPluginInfo>& plugins) { … }
void PluginList::GetPlugins(std::vector<WebPluginInfo>* plugins) { … }
bool PluginList::GetPluginsNoRefresh(std::vector<WebPluginInfo>* plugins) { … }
bool PluginList::GetPluginInfoArray(
const GURL& url,
const std::string& mime_type,
bool allow_wildcard,
std::vector<WebPluginInfo>* info,
std::vector<std::string>* actual_mime_types) { … }
void PluginList::RemoveExtraPluginPath(const base::FilePath& plugin_path) { … }
PluginList::~PluginList() = default;
}