| Index: webkit/plugins/npapi/plugin_group.h
|
| ===================================================================
|
| --- webkit/plugins/npapi/plugin_group.h (revision 101271)
|
| +++ webkit/plugins/npapi/plugin_group.h (working copy)
|
| @@ -6,6 +6,8 @@
|
| #define WEBKIT_PLUGINS_NPAPI_PLUGIN_GROUP_H_
|
| #pragma once
|
|
|
| +#include <map>
|
| +#include <set>
|
| #include <string>
|
| #include <vector>
|
|
|
| @@ -95,6 +97,24 @@
|
|
|
| PluginGroup& operator=(const PluginGroup& other);
|
|
|
| + // Configures the set of plugin name patterns for enabling and disabling
|
| + // plugins via enterprise configuration management.
|
| + static void SetPolicyEnforcedPluginPatterns(
|
| + const std::set<string16>& plugins_disabled,
|
| + const std::set<string16>& plugins_disabled_exceptions,
|
| + const std::set<string16>& plugins_enabled);
|
| +
|
| + // Tests whether |plugin_name| is disabled by policy.
|
| + static bool IsPluginNameDisabledByPolicy(const string16& plugin_name);
|
| +
|
| + // Tests whether |plugin_name| within the plugin group |group_name| is
|
| + // disabled by policy.
|
| + static bool IsPluginFileNameDisabledByPolicy(const string16& plugin_name,
|
| + const string16& group_name);
|
| +
|
| + // Tests whether |plugin_name| is enabled by policy.
|
| + static bool IsPluginNameEnabledByPolicy(const string16& plugin_name);
|
| +
|
| // Returns true if the given plugin matches this group.
|
| bool Match(const webkit::WebPluginInfo& plugin) const;
|
|
|
| @@ -104,6 +124,24 @@
|
| // Removes a plugin from the group by its path.
|
| bool RemovePlugin(const FilePath& filename);
|
|
|
| + // The two following functions enable/disable a plugin given its filename. The
|
| + // function returns true if the plugin could be enabled/disabled. Plugins
|
| + // might not get enabled/disabled if they are controlled by policy or are
|
| + // already in the wanted state.
|
| + bool EnablePlugin(const FilePath& filename);
|
| + bool DisablePlugin(const FilePath& filename);
|
| +
|
| + // Enables/disables this group. This enables/disables all plugins in the
|
| + // group.
|
| + bool EnableGroup(bool enable);
|
| +
|
| + // Checks whether the group should be disabled/enabled by a policy and puts
|
| + // it in the needed state. Updates all contained plugins too.
|
| + void EnforceGroupPolicy();
|
| +
|
| + // Returns whether the plugin group is enabled or not.
|
| + bool Enabled() const { return enabled_; }
|
| +
|
| // Returns a unique identifier for this group, if one is defined, or the empty
|
| // string otherwise.
|
| const std::string& identifier() const { return identifier_; }
|
| @@ -117,21 +155,36 @@
|
| // is empty.
|
| string16 GetGroupName() const;
|
|
|
| + // Returns all plugins added to the group.
|
| + const std::vector<webkit::WebPluginInfo>& web_plugins_info() const {
|
| + return web_plugin_infos_;
|
| + }
|
| +
|
| // Checks whether a plugin exists in the group with the given path.
|
| bool ContainsPlugin(const FilePath& path) const;
|
|
|
| + // Returns the description of the highest-priority plug-in in the group.
|
| + const string16& description() const { return description_; }
|
| +
|
| + // Returns a DictionaryValue with data to display in the UI.
|
| + base::DictionaryValue* GetDataForUI() const;
|
| +
|
| + // Returns a DictionaryValue with data to save in the preferences.
|
| + base::DictionaryValue* GetSummary() const;
|
| +
|
| // Returns the update URL.
|
| std::string GetUpdateURL() const { return update_url_; }
|
|
|
| // Returns true if this plugin group is whitelisted.
|
| bool IsWhitelisted() const;
|
|
|
| - // Returns true if |plugin| in this group has known security problems.
|
| - bool IsVulnerable(const WebPluginInfo& plugin) const;
|
| + // Returns true if the highest-priority plugin in this group has known
|
| + // security problems.
|
| + bool IsVulnerable() const;
|
|
|
| - // Returns true if |plugin| in this plug-in group always requires user
|
| - // authorization to run.
|
| - bool RequiresAuthorization(const WebPluginInfo& plugin) const;
|
| + // Returns true if this plug-in group always requires user authorization
|
| + // to run.
|
| + bool RequiresAuthorization() const;
|
|
|
| // Check if the group has no plugins. Could happen after a reload if the plug-
|
| // in has disappeared from the pc (or in the process of updating).
|
| @@ -141,7 +194,7 @@
|
| // in accepting weird version strings than Version::GetFromString().
|
| static Version* CreateVersionFromString(const string16& version_string);
|
|
|
| - const std::vector<webkit::WebPluginInfo>& web_plugin_infos() const {
|
| + std::vector<webkit::WebPluginInfo> web_plugin_infos() {
|
| return web_plugin_infos_;
|
| }
|
|
|
| @@ -184,17 +237,54 @@
|
|
|
| void InitFrom(const PluginGroup& other);
|
|
|
| + // Set the description and version for this plugin group from the
|
| + // given plug-in.
|
| + void UpdateDescriptionAndVersion(const webkit::WebPluginInfo& plugin);
|
| +
|
| + // Updates the active plugin in the group. The active plugin is the first
|
| + // enabled one, or if all plugins are disabled, simply the first one.
|
| + void UpdateActivePlugin(const webkit::WebPluginInfo& plugin);
|
| +
|
| + // Resets the group state to its default value (as if the group was empty).
|
| + // After calling this method, calling |UpdateActivePlugin| with all plugins
|
| + // in a row will correctly set the group state.
|
| + void ResetGroupState();
|
| +
|
| + // Enables the plugin if not already enabled and if policy allows it to.
|
| + // Returns true on success. Does not update the group state.
|
| + static bool Enable(webkit::WebPluginInfo* plugin, int reason);
|
| +
|
| + // Disables the plugin if not already disabled and if policy allows it to.
|
| + // Returns true on success. Does not update the group state.
|
| + static bool Disable(webkit::WebPluginInfo* plugin, int reason);
|
| +
|
| + // Helper function to implement the functions above.
|
| + static bool SetPluginState(webkit::WebPluginInfo* plugin,
|
| + int new_reason,
|
| + bool state_changes);
|
| +
|
| // Returns a non-const vector of all plugins in the group. This is only used
|
| // by PluginList.
|
| std::vector<webkit::WebPluginInfo>& GetPluginsContainer() {
|
| return web_plugin_infos_;
|
| }
|
|
|
| + // Checks if |name| matches any of the patterns in |pattern_set|.
|
| + static bool IsStringMatchedInSet(const string16& name,
|
| + const std::set<string16>* pattern_set);
|
| +
|
| + static std::set<string16>* policy_disabled_plugin_patterns_;
|
| + static std::set<string16>* policy_disabled_plugin_exception_patterns_;
|
| + static std::set<string16>* policy_enabled_plugin_patterns_;
|
| +
|
| std::string identifier_;
|
| string16 group_name_;
|
| string16 name_matcher_;
|
| + string16 description_;
|
| std::string update_url_;
|
| + bool enabled_;
|
| std::vector<VersionRange> version_ranges_;
|
| + scoped_ptr<Version> version_;
|
| std::vector<webkit::WebPluginInfo> web_plugin_infos_;
|
| };
|
|
|
|
|
| Property changes on: webkit/plugins/npapi/plugin_group.h
|
| ___________________________________________________________________
|
| Added: svn:mergeinfo
|
| Merged /branches/chrome_webkit_merge_branch/src/webkit/plugins/npapi/plugin_group.h:r3734-4217,4606-5108,5177-5263
|
|
|
|
|