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

Unified Diff: webkit/plugins/npapi/plugin_list.cc

Issue 10918174: Remove PluginGroup (Closed) Base URL: http://git.chromium.org/chromium/src.git@remove_async_plugin_finder
Patch Set: Created 8 years, 3 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
Index: webkit/plugins/npapi/plugin_list.cc
diff --git a/webkit/plugins/npapi/plugin_list.cc b/webkit/plugins/npapi/plugin_list.cc
index d6a76884b7212f5b723e1d9e63ccb522e65902e2..f4cc37b1ef672c489c40e7a63af904d4622c7073 100644
--- a/webkit/plugins/npapi/plugin_list.cc
+++ b/webkit/plugins/npapi/plugin_list.cc
@@ -53,87 +53,6 @@ bool AllowMimeTypeMismatch(const std::string& orig_mime_type,
namespace webkit {
namespace npapi {
-// TODO(ibraaaa): DELETE all hardcoded definitions. http://crbug.com/124396
-// Note: If you change the plug-in definitions here, also update
-// chrome/browser/resources/plugins_*.json correspondingly!
-// In particular, the identifier needs to be kept in sync.
-
-// Try and share the group definition for plug-ins that are
-// very consistent across OS'es.
-#define kFlashDefinition { \
- "adobe-flash-player", "Adobe Flash Player", "Shockwave Flash" }
-
-#define kShockwaveDefinition { \
- "adobe-shockwave", PluginGroup::kShockwaveGroupName, \
- "Shockwave for Director" }
-
-#define kSilverlightDefinition { \
- "silverlight", PluginGroup::kSilverlightGroupName, "Silverlight" }
-
-#define kChromePdfDefinition { \
- "google-chrome-pdf", "Chrome PDF Viewer", "Chrome PDF Viewer" }
-
-#define kGoogleTalkDefinition { \
- "google-talk", "Google Talk", "Google Talk" }
-
-#if defined(OS_MACOSX)
-// Plugin Groups for Mac.
-
-static const PluginGroupDefinition kGroupDefinitions[] = {
- kFlashDefinition,
- { "apple-quicktime", PluginGroup::kQuickTimeGroupName, "QuickTime Plug-in" },
- { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java" },
- kSilverlightDefinition,
- { "flip4mac", "Flip4Mac", "Flip4Mac" },
- { "divx-player", "DivX Web Player", "DivX Plus Web Player" },
- { "realplayer", PluginGroup::kRealPlayerGroupName, "RealPlayer" },
- kShockwaveDefinition,
- kChromePdfDefinition,
- kGoogleTalkDefinition,
-};
-
-#elif defined(OS_WIN)
-// TODO(panayiotis): We should group "RealJukebox NS Plugin" with the rest of
-// the RealPlayer files.
-
-static const PluginGroupDefinition kGroupDefinitions[] = {
- kFlashDefinition,
- { "apple-quicktime", PluginGroup::kQuickTimeGroupName, "QuickTime Plug-in" },
- { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java" },
- { "adobe-reader", PluginGroup::kAdobeReaderGroupName, "Adobe Acrobat" },
- kSilverlightDefinition,
- kShockwaveDefinition,
- { "divx-player", "DivX Web Player", "DivX Web Player" },
- { "realplayer", PluginGroup::kRealPlayerGroupName, "RealPlayer" },
- { "windows-media-player", PluginGroup::kWindowsMediaPlayerGroupName,
- "Windows Media Player" },
- { "microsoft-office", "Microsoft Office", "Microsoft Office" },
- { "nvidia-3d", "NVIDIA 3D", "NVIDIA 3D" },
- kChromePdfDefinition,
- kGoogleTalkDefinition,
-};
-
-#elif defined(OS_CHROMEOS)
-// ChromeOS generally has (autoupdated) system plug-ins and no user-installable
-// plug-ins, so we just use these definitions for grouping.
-static const PluginGroupDefinition kGroupDefinitions[] = {
- kFlashDefinition,
- kChromePdfDefinition,
-};
-
-#else // Most importantly, covers desktop Linux.
-
-static const PluginGroupDefinition kGroupDefinitions[] = {
- // Flash on Linux is significant because there isn't yet a built-in Flash
- // plug-in on the Linux 64-bit version of Chrome.
- kFlashDefinition,
- { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java" },
- { "redhat-icetea-java", "IcedTea", "IcedTea" },
- kChromePdfDefinition,
- kGoogleTalkDefinition,
-};
-#endif
-
// static
PluginList* PluginList::Singleton() {
return g_singleton.Pointer();
@@ -288,52 +207,15 @@ bool PluginList::ParseMimeTypes(
PluginList::PluginList()
: loading_state_(LOADING_STATE_NEEDS_REFRESH) {
PlatformInit();
- AddHardcodedPluginGroups(kGroupDefinitions,
- ARRAYSIZE_UNSAFE(kGroupDefinitions));
}
-// TODO(ibraaaa): DELETE and add a different one. http://crbug.com/124396
-PluginList::PluginList(const PluginGroupDefinition* definitions,
- size_t num_definitions)
+PluginList::PluginList(int skip_platform_init)
:
#if defined(OS_WIN)
dont_load_new_wmp_(false),
Bernhard Bauer 2012/09/17 15:18:01 Wait, are we not initializing this member in the d
ibraaaa 2012/09/17 15:44:35 Well, this CL only added it here: https://chromium
Bernhard Bauer 2012/09/17 16:00:54 Yup, that seems wrong. Could you also initialize i
ibraaaa 2012/09/17 16:21:34 Sent seperate CL for this: http://codereview.chrom
#endif
loading_state_(LOADING_STATE_NEEDS_REFRESH) {
// Don't do platform-dependent initialization in unit tests.
- AddHardcodedPluginGroups(definitions, num_definitions);
-}
-
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-PluginGroup* PluginList::CreatePluginGroup(
- const webkit::WebPluginInfo& web_plugin_info) const {
- for (size_t i = 0; i < hardcoded_plugin_groups_.size(); ++i) {
- const PluginGroup* group = hardcoded_plugin_groups_[i];
- if (group->Match(web_plugin_info))
- return new PluginGroup(*group);
- }
- return PluginGroup::FromWebPluginInfo(web_plugin_info);
-}
-
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-void PluginList::LoadPluginsInternal(ScopedVector<PluginGroup>* plugin_groups) {
- base::Closure will_load_callback;
- {
- base::AutoLock lock(lock_);
- will_load_callback = will_load_plugins_callback_;
- }
- if (!will_load_callback.is_null())
- will_load_callback.Run();
-
- std::vector<FilePath> plugin_paths;
- GetPluginPathsToLoad(&plugin_paths);
-
- for (std::vector<FilePath>::const_iterator it = plugin_paths.begin();
- it != plugin_paths.end();
- ++it) {
- WebPluginInfo plugin_info;
- LoadPlugin(*it, plugin_groups, &plugin_info);
- }
}
void PluginList::LoadPluginsIntoPluginListInternal(
@@ -366,16 +248,11 @@ void PluginList::LoadPlugins() {
loading_state_ = LOADING_STATE_REFRESHING;
}
- ScopedVector<PluginGroup> new_plugin_groups; // TODO(ibraaaa): DELETE
- // Do the actual loading of the plugins.
- LoadPluginsInternal(&new_plugin_groups); // TODO(ibraaaa): DELETE
-
std::vector<webkit::WebPluginInfo> new_plugins;
// Do the actual loading of the plugins.
LoadPluginsIntoPluginListInternal(&new_plugins);
base::AutoLock lock(lock_);
- plugin_groups_.swap(new_plugin_groups); // TODO(ibraaaa): DELETE
plugins_list_.swap(new_plugins);
// If we haven't been invalidated in the mean time, mark the plug-in list as
@@ -384,37 +261,6 @@ void PluginList::LoadPlugins() {
loading_state_ = LOADING_STATE_UP_TO_DATE;
}
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-bool PluginList::LoadPlugin(const FilePath& path,
- ScopedVector<PluginGroup>* plugin_groups,
- WebPluginInfo* plugin_info) {
- LOG_IF(ERROR, PluginList::DebugPluginLoading())
- << "Loading plugin " << path.value();
- const PluginEntryPoints* entry_points;
-
- if (!ReadPluginInfo(path, plugin_info, &entry_points))
- return false;
-
- if (!ShouldLoadPlugin(*plugin_info, plugin_groups))
- 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;
- }
- }
- AddToPluginGroups(*plugin_info, plugin_groups);
- return true;
-}
-
bool PluginList::LoadPluginIntoPluginList(
const FilePath& path,
std::vector<webkit::WebPluginInfo>* plugins,
@@ -480,25 +326,12 @@ void PluginList::GetPluginPathsToLoad(std::vector<FilePath>* plugin_paths) {
#endif
}
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-const std::vector<PluginGroup*>& PluginList::GetHardcodedPluginGroups() const {
- return hardcoded_plugin_groups_.get();
-}
-
void PluginList::SetPlugins(const std::vector<webkit::WebPluginInfo>& plugins) {
base::AutoLock lock(lock_);
DCHECK_NE(LOADING_STATE_REFRESHING, loading_state_);
loading_state_ = LOADING_STATE_UP_TO_DATE;
- // TODO(ibraaaa): DELETE
- plugin_groups_.clear();
- for (std::vector<webkit::WebPluginInfo>::const_iterator it = plugins.begin();
- it != plugins.end();
- ++it) {
- AddToPluginGroups(*it, &plugin_groups_);
- } // END OF DELETE
-
plugins_list_.clear();
plugins_list_.insert(plugins_list_.end(), plugins.begin(), plugins.end());
}
@@ -575,91 +408,6 @@ void PluginList::GetPluginInfoArray(
}
}
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-void PluginList::GetPluginGroups(
- bool load_if_necessary,
- std::vector<PluginGroup>* plugin_groups) {
- if (load_if_necessary)
- LoadPlugins();
- base::AutoLock lock(lock_);
- plugin_groups->clear();
- for (size_t i = 0; i < plugin_groups_.size(); ++i) {
- // In some unit tests we can get confronted with empty groups but in real
- // world code this if should never be false here.
- if (!plugin_groups_[i]->IsEmpty())
- plugin_groups->push_back(*plugin_groups_[i]);
- }
-}
-
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-PluginGroup* PluginList::GetPluginGroup(
- const webkit::WebPluginInfo& web_plugin_info) {
- base::AutoLock lock(lock_);
- for (size_t i = 0; i < plugin_groups_.size(); ++i) {
- const std::vector<webkit::WebPluginInfo>& plugins =
- plugin_groups_[i]->web_plugin_infos();
- for (size_t j = 0; j < plugins.size(); ++j) {
- if (plugins[j].path == web_plugin_info.path) {
- return new PluginGroup(*plugin_groups_[i]);
- }
- }
- }
- PluginGroup* group = CreatePluginGroup(web_plugin_info);
- group->AddPlugin(web_plugin_info);
- return group;
-}
-
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-string16 PluginList::GetPluginGroupName(const std::string& identifier) {
- for (size_t i = 0; i < plugin_groups_.size(); ++i) {
- if (plugin_groups_[i]->identifier() == identifier)
- return plugin_groups_[i]->GetGroupName();
- }
- return string16();
-}
-
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-void PluginList::AddHardcodedPluginGroups(
- const PluginGroupDefinition* group_definitions,
- size_t num_group_definitions) {
- for (size_t i = 0; i < num_group_definitions; ++i) {
- hardcoded_plugin_groups_.push_back(
- PluginGroup::FromPluginGroupDefinition(group_definitions[i]));
- }
-}
-
-// TODO(ibraaaa): DELETE. http://crbug.com/124396
-PluginGroup* PluginList::AddToPluginGroups(
- const webkit::WebPluginInfo& web_plugin_info,
- ScopedVector<PluginGroup>* plugin_groups) {
- PluginGroup* group = NULL;
- for (size_t i = 0; i < plugin_groups->size(); ++i) {
- if ((*plugin_groups)[i]->Match(web_plugin_info)) {
- group = (*plugin_groups)[i];
- break;
- }
- }
- if (!group) {
- group = CreatePluginGroup(web_plugin_info);
- std::string identifier = group->identifier();
- // If the identifier is not unique, use the full path. This means that we
- // probably won't be able to search for this group by identifier, but at
- // least it's going to be in the set of plugin groups, and if there
- // is already a plug-in with the same filename, it's probably going to
- // handle the same MIME types (and it has a higher priority), so this one
- // is not going to run anyway.
- for (size_t i = 0; i < plugin_groups->size(); ++i) {
- if ((*plugin_groups)[i]->identifier() == identifier) {
- group->set_identifier(PluginGroup::GetLongIdentifier(web_plugin_info));
- break;
- }
- }
- plugin_groups->push_back(group);
- }
- group->AddPlugin(web_plugin_info);
- return group;
-}
-
bool PluginList::SupportsType(const webkit::WebPluginInfo& plugin,
const std::string& mime_type,
bool allow_wildcard) {

Powered by Google App Engine
This is Rietveld 408576698