diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-14 12:03:33 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-14 12:03:33 +0000 |
commit | ed17c7b3f7f99f680ff5a86621761c52d4ffc49d (patch) | |
tree | c06d8dc76ff479cad74172a653c4099cc4ab6939 /chrome/browser/plugin_updater.h | |
parent | 0513022ca75b4e1a5207a3c462417366bc73ca8e (diff) | |
download | chromium_src-ed17c7b3f7f99f680ff5a86621761c52d4ffc49d.zip chromium_src-ed17c7b3f7f99f680ff5a86621761c52d4ffc49d.tar.gz chromium_src-ed17c7b3f7f99f680ff5a86621761c52d4ffc49d.tar.bz2 |
Factor out PluginGroup into a separate class in common/.
Moving PluginGroup into common is necessary in order to enable the renderer process to check if a plugin is outdated.
Also, make PluginUpdater static since it doesn't contain any state anymore.
BUG=47731
TEST=PluginGroupTest.*
Review URL: http://codereview.chromium.org/2955005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52307 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/plugin_updater.h')
-rw-r--r-- | chrome/browser/plugin_updater.h | 136 |
1 files changed, 16 insertions, 120 deletions
diff --git a/chrome/browser/plugin_updater.h b/chrome/browser/plugin_updater.h index a18d222..ba89b83 100644 --- a/chrome/browser/plugin_updater.h +++ b/chrome/browser/plugin_updater.h @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -6,136 +6,32 @@ #define CHROME_BROWSER_PLUGIN_UPDATER_H_ #include <vector> + #include "base/basictypes.h" +#include "base/file_path.h" #include "base/linked_ptr.h" -#include "base/scoped_ptr.h" #include "base/singleton.h" -#include "base/string16.h" -#include "base/values.h" -#include "googleurl/src/gurl.h" -#include "webkit/glue/plugins/webplugininfo.h" -class Version; +class ListValue; class Profile; -// Hard-coded definitions of plugin groups. -typedef struct { - const char* const name; // Name of this group. - const char* const name_matcher; // Substring matcher for the plugin name. - const char* const version_matcher_low; // Matchers for the plugin version. - const char* const version_matcher_high; - const char* const min_version; // Minimum secure version. - const char* const update_url; // Location of latest secure version. -} PluginGroupDefinition; - - -// A PluginGroup contains at least one WebPluginInfo. -// In addition, it knows if the plugin is critically vulnerable. -class PluginGroup { - public: - // Creates a PluginGroup from a PluginGroupDefinition. - static PluginGroup* FromPluginGroupDefinition( - const PluginGroupDefinition& definition); - - // Creates a PluginGroup from a WebPluginInfo -- when no hard-coded - // definition is found. - static PluginGroup* FromWebPluginInfo(const WebPluginInfo& wpi); - - // Creates a copy of this plugin group. - PluginGroup* Copy(); - - // Returns true if the given plugin matches this group. - bool Match(const WebPluginInfo& plugin) const; - - // Adds the given plugin to this group. Provide the position of the - // plugin as given by PluginList so we can display its priority. - void AddPlugin(const WebPluginInfo& plugin, int position); - - // Enables/disables this group. This enables/disables all plugins in the - // group. - void Enable(bool enable); - - // Returns this group's name - const string16 GetGroupName() const; - - // Returns a DictionaryValue with data to display in the UI. - DictionaryValue* GetData() const; - - // Returns a DictionaryValue with data to save in the preferences. - DictionaryValue* GetSummary() const; - - // Returns true if the latest plugin in this group has known - // security problems. - bool IsVulnerable() const; - - private: - PluginGroup(const string16& group_name, - const string16& name_matcher, - const std::string& version_range_low, - const std::string& version_range_high, - const std::string& min_version, - const std::string& update_url); - - string16 group_name_; - string16 name_matcher_; - std::string version_range_low_str_; - std::string version_range_high_str_; - scoped_ptr<Version> version_range_low_; - scoped_ptr<Version> version_range_high_; - string16 description_; - std::string update_url_; - bool enabled_; - std::string min_version_str_; - scoped_ptr<Version> min_version_; - scoped_ptr<Version> max_version_; - std::vector<WebPluginInfo> web_plugin_infos_; - std::vector<int> web_plugin_positions_; - - DISALLOW_COPY_AND_ASSIGN(PluginGroup); -}; - -class PluginUpdater { - public: - // Returns the PluginUpdater singleton. - static PluginUpdater* GetInstance(); - - static const PluginGroupDefinition* GetPluginGroupDefinitions(); - static const size_t GetPluginGroupDefinitionsSize(); - - // Get a list of all the Plugin groups. - ListValue* GetPluginGroupsData(); - - // Get a list of all the Plugin groups. - ListValue* GetPluginGroupsSummary(); - - // Enable or disable a plugin group. - void EnablePluginGroup(bool enable, const string16& group_name); - - // Enable or disable a specific plugin file. - void EnablePluginFile(bool enable, const FilePath::StringType& file_path); - - // Disable all plugin groups as defined by the user's preference file. - void DisablePluginGroupsFromPrefs(Profile* profile); - - // Write the enable/disable status to the user's preference file. - void UpdatePreferences(Profile* profile); - - private: - friend struct DefaultSingletonTraits<PluginUpdater>; +namespace plugin_updater { - PluginUpdater(); - ~PluginUpdater(); +// Get a list of all the Plugin groups. +ListValue* GetPluginGroupsData(); - void GetPluginGroups(std::vector<linked_ptr<PluginGroup> >* plugin_groups); +// Enable or disable a plugin group. +void EnablePluginGroup(bool enable, const string16& group_name); - DictionaryValue* CreatePluginFileSummary(const WebPluginInfo& plugin); +// Enable or disable a specific plugin file. +void EnablePluginFile(bool enable, const FilePath::StringType& file_path); - std::vector<linked_ptr<PluginGroup> > plugin_group_definitions_; +// Disable all plugin groups as defined by the user's preference file. +void DisablePluginGroupsFromPrefs(Profile* profile); - // Set to true iff the internal pdf plugin is enabled by default. - static bool enable_internal_pdf_; +// Write the enable/disable status to the user's preference file. +void UpdatePreferences(Profile* profile); - DISALLOW_COPY_AND_ASSIGN(PluginUpdater); -}; +} // namespace plugin_updater #endif // CHROME_BROWSER_PLUGIN_UPDATER_H_ |