Index: webkit/plugins/npapi/webplugininfo.h |
diff --git a/webkit/plugins/npapi/webplugininfo.h b/webkit/plugins/npapi/webplugininfo.h |
index 859665c1963614f0aa6b4ca3cf88b28c4c0fb4a0..5f980407a5503466b1af3ee520702802bb90e8a3 100644 |
--- a/webkit/plugins/npapi/webplugininfo.h |
+++ b/webkit/plugins/npapi/webplugininfo.h |
@@ -31,6 +31,32 @@ struct WebPluginMimeType { |
// Describes an available NPAPI 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 |
+ }; |
+ |
WebPluginInfo(); |
WebPluginInfo(const WebPluginInfo& rhs); |
~WebPluginInfo(); |
@@ -58,9 +84,11 @@ struct WebPluginInfo { |
std::vector<WebPluginMimeType> mime_types; |
// Whether the plugin is enabled. |
jam
2011/01/15 00:51:34
nit: need to update comment
pastarmovj
2011/01/18 18:30:39
True. Done.
|
- bool enabled; |
+ int enabled; |
}; |
+bool IsPluginEnabled(const WebPluginInfo& plugin); |
+ |
} // namespace npapi |
} // namespace webkit |