| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSION_SET_H_ | 5 #ifndef CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSION_SET_H_ |
| 6 #define CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSION_SET_H_ | 6 #define CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSION_SET_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 | 119 |
| 120 // Returns true if this permission set includes effective access to |url|. | 120 // Returns true if this permission set includes effective access to |url|. |
| 121 bool HasEffectiveAccessToURL(const GURL& url) const; | 121 bool HasEffectiveAccessToURL(const GURL& url) const; |
| 122 | 122 |
| 123 // Returns ture if this permission set effectively represents full access | 123 // Returns ture if this permission set effectively represents full access |
| 124 // (e.g. native code). | 124 // (e.g. native code). |
| 125 bool HasEffectiveFullAccess() const; | 125 bool HasEffectiveFullAccess() const; |
| 126 | 126 |
| 127 // Returns true if |permissions| has a greater privilege level than this | 127 // Returns true if |permissions| has a greater privilege level than this |
| 128 // permission set (e.g., this permission set has less permissions). | 128 // permission set (e.g., this permission set has less permissions). |
| 129 bool HasLessPrivilegesThan(const PermissionSet* permissions) const; | 129 // Whether certain permissions are considered varies by extension type. |
| 130 bool HasLessPrivilegesThan(const PermissionSet* permissions, |
| 131 Manifest::Type extension_type) const; |
| 130 | 132 |
| 131 const APIPermissionSet& apis() const { return apis_; } | 133 const APIPermissionSet& apis() const { return apis_; } |
| 132 | 134 |
| 133 const URLPatternSet& effective_hosts() const { return effective_hosts_; } | 135 const URLPatternSet& effective_hosts() const { return effective_hosts_; } |
| 134 | 136 |
| 135 const URLPatternSet& explicit_hosts() const { return explicit_hosts_; } | 137 const URLPatternSet& explicit_hosts() const { return explicit_hosts_; } |
| 136 | 138 |
| 137 const URLPatternSet& scriptable_hosts() const { return scriptable_hosts_; } | 139 const URLPatternSet& scriptable_hosts() const { return scriptable_hosts_; } |
| 138 | 140 |
| 139 private: | 141 private: |
| (...skipping 23 matching lines...) Expand all Loading... |
| 163 void InitImplicitPermissions(); | 165 void InitImplicitPermissions(); |
| 164 | 166 |
| 165 // Initializes the effective host permission based on the data in this set. | 167 // Initializes the effective host permission based on the data in this set. |
| 166 void InitEffectiveHosts(); | 168 void InitEffectiveHosts(); |
| 167 | 169 |
| 168 // Gets the permission messages for the API permissions. | 170 // Gets the permission messages for the API permissions. |
| 169 std::set<PermissionMessage> GetSimplePermissionMessages() const; | 171 std::set<PermissionMessage> GetSimplePermissionMessages() const; |
| 170 | 172 |
| 171 // Returns true if |permissions| has an elevated API privilege level than | 173 // Returns true if |permissions| has an elevated API privilege level than |
| 172 // this set. | 174 // this set. |
| 173 bool HasLessAPIPrivilegesThan( | 175 bool HasLessAPIPrivilegesThan(const PermissionSet* permissions) const; |
| 174 const PermissionSet* permissions) const; | |
| 175 | 176 |
| 176 // Returns true if |permissions| has more host permissions compared to this | 177 // Returns true if |permissions| has more host permissions compared to this |
| 177 // set. | 178 // set. |
| 178 bool HasLessHostPrivilegesThan( | 179 bool HasLessHostPrivilegesThan(const PermissionSet* permissions, |
| 179 const PermissionSet* permissions) const; | 180 Manifest::Type extension_type) const; |
| 180 | 181 |
| 181 // Gets a list of the distinct hosts for displaying to the user. | 182 // Gets a list of the distinct hosts for displaying to the user. |
| 182 // NOTE: do not use this for comparing permissions, since this disgards some | 183 // NOTE: do not use this for comparing permissions, since this disgards some |
| 183 // information. | 184 // information. |
| 184 std::set<std::string> GetDistinctHostsForDisplay() const; | 185 std::set<std::string> GetDistinctHostsForDisplay() const; |
| 185 | 186 |
| 186 // The api list is used when deciding if an extension can access certain | 187 // The api list is used when deciding if an extension can access certain |
| 187 // extension APIs and features. | 188 // extension APIs and features. |
| 188 APIPermissionSet apis_; | 189 APIPermissionSet apis_; |
| 189 | 190 |
| 190 // The list of hosts that can be accessed directly from the extension. | 191 // The list of hosts that can be accessed directly from the extension. |
| 191 // TODO(jstritar): Rename to "hosts_"? | 192 // TODO(jstritar): Rename to "hosts_"? |
| 192 URLPatternSet explicit_hosts_; | 193 URLPatternSet explicit_hosts_; |
| 193 | 194 |
| 194 // The list of hosts that can be scripted by content scripts. | 195 // The list of hosts that can be scripted by content scripts. |
| 195 // TODO(jstritar): Rename to "user_script_hosts_"? | 196 // TODO(jstritar): Rename to "user_script_hosts_"? |
| 196 URLPatternSet scriptable_hosts_; | 197 URLPatternSet scriptable_hosts_; |
| 197 | 198 |
| 198 // The list of hosts this effectively grants access to. | 199 // The list of hosts this effectively grants access to. |
| 199 URLPatternSet effective_hosts_; | 200 URLPatternSet effective_hosts_; |
| 200 }; | 201 }; |
| 201 | 202 |
| 202 } // namespace extensions | 203 } // namespace extensions |
| 203 | 204 |
| 204 #endif // CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSION_SET_H_ | 205 #endif // CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSION_SET_H_ |
| OLD | NEW |