Index: webkit/plugins/webplugininfo.h |
=================================================================== |
--- webkit/plugins/webplugininfo.h (revision 101271) |
+++ webkit/plugins/webplugininfo.h (working copy) |
@@ -38,6 +38,32 @@ |
// Describes an available NPAPI or Pepper plugin. |
struct WebPluginInfo { |
+ // Defines the possible enabled state a plugin can have. |
+ // The enum values actually represent a 3-bit bitfield : |
+ // |PE|PD|U| - where |PE|PD| is policy state and U is user state. |
+ // PE == 1 means the plugin is forced to enabled state by policy |
+ // PD == 1 means the plugin is forced to disabled by policy |
+ // PE and PD CAN'T be both 1 but can be both 0 which mean no policy is set. |
+ // U == 1 means the user has disabled the plugin. |
+ // Because the plugin user state might have been changed before a policy was |
+ // introduced the user state might contradict the policy state in which case |
+ // the policy has precedence. |
+ enum EnabledStates { |
+ USER_ENABLED = 0, |
+ USER_DISABLED = 1 << 0, |
+ POLICY_DISABLED = 1 << 1, |
+ POLICY_ENABLED = 1 << 2, |
+ USER_ENABLED_POLICY_UNMANAGED = USER_ENABLED, |
+ USER_ENABLED_POLICY_DISABLED = USER_ENABLED| POLICY_DISABLED, |
+ USER_ENABLED_POLICY_ENABLED = USER_ENABLED | POLICY_ENABLED, |
+ USER_DISABLED_POLICY_UNMANAGED = USER_DISABLED, |
+ USER_DISABLED_POLICY_DISABLED = USER_DISABLED | POLICY_DISABLED, |
+ USER_DISABLED_POLICY_ENABLED = USER_DISABLED | POLICY_ENABLED, |
+ USER_MASK = USER_DISABLED, |
+ MANAGED_MASK = POLICY_DISABLED | POLICY_ENABLED, |
+ POLICY_UNMANAGED = -1 |
+ }; |
+ |
enum PluginType { |
PLUGIN_TYPE_NPAPI, |
PLUGIN_TYPE_PEPPER_IN_PROCESS, |
@@ -70,10 +96,16 @@ |
// A list of all the mime types that this plugin supports. |
std::vector<WebPluginMimeType> mime_types; |
+ // Enabled state of the plugin. See the EnabledStates enum. |
+ int enabled; |
+ |
// Plugin type. See the PluginType enum. |
int type; |
}; |
+// Checks whether a plugin is enabled either by the user or by policy. |
+bool IsPluginEnabled(const WebPluginInfo& plugin); |
+ |
// Checks whether a plugin is a Pepper plugin, enabled or disabled. |
bool IsPepperPlugin(const WebPluginInfo& plugin); |