| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_PERMISSIONS_DATA_H_ | 5 #ifndef CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSIONS_DATA_H_ |
| 6 #define CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSIONS_DATA_H_ | 6 #define CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSIONS_DATA_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
| 12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 13 #include "base/strings/string16.h" | 13 #include "base/strings/string16.h" |
| 14 #include "base/synchronization/lock.h" | 14 #include "base/synchronization/lock.h" |
| 15 #include "extensions/common/permissions/api_permission.h" | 15 #include "extensions/common/permissions/api_permission.h" |
| 16 #include "extensions/common/permissions/permission_message.h" | 16 #include "extensions/common/permissions/permission_message.h" |
| 17 | 17 |
| 18 class GURL; | 18 class GURL; |
| 19 | 19 |
| 20 namespace extensions { | 20 namespace extensions { |
| 21 | 21 |
| 22 class PermissionSet; | 22 class PermissionSet; |
| 23 class APIPermissionSet; | 23 class APIPermissionSet; |
| 24 class Extension; | 24 class Extension; |
| 25 class ManifestPermissionSet; |
| 25 class URLPatternSet; | 26 class URLPatternSet; |
| 26 class UserScript; | 27 class UserScript; |
| 27 | 28 |
| 28 // A container for the permissions data of the extension; also responsible for | 29 // A container for the permissions data of the extension; also responsible for |
| 29 // parsing the "permissions" and "optional_permissions" manifest keys. This | 30 // parsing the "permissions" and "optional_permissions" manifest keys. This |
| 30 // class also contains the active (runtime) permissions for the extension. | 31 // class also contains the active (runtime) permissions for the extension. |
| 31 class PermissionsData { | 32 class PermissionsData { |
| 32 public: | 33 public: |
| 33 PermissionsData(); | 34 PermissionsData(); |
| 34 ~PermissionsData(); | 35 ~PermissionsData(); |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 // is restricted to the extension's host permissions as well as the | 174 // is restricted to the extension's host permissions as well as the |
| 174 // extension page itself. | 175 // extension page itself. |
| 175 static bool CanCaptureVisiblePage(const Extension* extension, | 176 static bool CanCaptureVisiblePage(const Extension* extension, |
| 176 const GURL& page_url, | 177 const GURL& page_url, |
| 177 int tab_id, | 178 int tab_id, |
| 178 std::string* error); | 179 std::string* error); |
| 179 | 180 |
| 180 // Parse the permissions of a given extension in the initialization process. | 181 // Parse the permissions of a given extension in the initialization process. |
| 181 bool ParsePermissions(Extension* extension, string16* error); | 182 bool ParsePermissions(Extension* extension, string16* error); |
| 182 | 183 |
| 184 // Ensure manifest handlers provide their custom manifest permissions. |
| 185 void InitializeManifestPermissions(Extension* extension); |
| 186 |
| 183 // Finalize permissions after the initialization process completes. | 187 // Finalize permissions after the initialization process completes. |
| 184 void FinalizePermissions(Extension* extension); | 188 void FinalizePermissions(Extension* extension); |
| 185 | 189 |
| 186 private: | 190 private: |
| 187 struct InitialPermissions; | 191 struct InitialPermissions; |
| 188 typedef std::map<int, scoped_refptr<const PermissionSet> > TabPermissionsMap; | 192 typedef std::map<int, scoped_refptr<const PermissionSet> > TabPermissionsMap; |
| 189 | 193 |
| 190 // Temporary permissions during the initialization process; NULL after | 194 // Temporary permissions during the initialization process; NULL after |
| 191 // initialization completes. | 195 // initialization completes. |
| 192 scoped_ptr<InitialPermissions> initial_required_permissions_; | 196 scoped_ptr<InitialPermissions> initial_required_permissions_; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 205 mutable scoped_refptr<const PermissionSet> active_permissions_; | 209 mutable scoped_refptr<const PermissionSet> active_permissions_; |
| 206 | 210 |
| 207 mutable TabPermissionsMap tab_specific_permissions_; | 211 mutable TabPermissionsMap tab_specific_permissions_; |
| 208 | 212 |
| 209 DISALLOW_COPY_AND_ASSIGN(PermissionsData); | 213 DISALLOW_COPY_AND_ASSIGN(PermissionsData); |
| 210 }; | 214 }; |
| 211 | 215 |
| 212 } // namespace extensions | 216 } // namespace extensions |
| 213 | 217 |
| 214 #endif // CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSIONS_DATA_H_ | 218 #endif // CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSIONS_DATA_H_ |
| OLD | NEW |