Index: chrome/common/extensions/extension.h |
diff --git a/chrome/common/extensions/extension.h b/chrome/common/extensions/extension.h |
index 21881ee5d8c3bb81e4a5c9d0b785fe64885b8cd9..65b4ebebee8b22535b7a9155b606ae33e66aeb2f 100644 |
--- a/chrome/common/extensions/extension.h |
+++ b/chrome/common/extensions/extension.h |
@@ -438,6 +438,7 @@ class Extension : public base::RefCountedThreadSafe<Extension> { |
bool HasAPIPermission(APIPermission::ID permission) const; |
bool HasAPIPermission(const std::string& function_name) const; |
+ bool HasAPIPermissionForTab(int tab_id, APIPermission::ID permission) const; |
const URLPatternSet& GetEffectiveHostPermissions() const; |
@@ -559,17 +560,16 @@ class Extension : public base::RefCountedThreadSafe<Extension> { |
// Gets the tab-specific host permissions of |tab_id|, or NULL if there |
// aren't any. |
- // |
- // This is a weak pointer. Callers should create a copy before mutating any |
- // tab specific permissions. |
- const URLPatternSet* GetTabSpecificHostPermissions(int tab_id) const; |
+ scoped_refptr<const PermissionSet> GetTabSpecificPermissions(int tab_id) |
+ const; |
- // Sets the tab-specific host permissions of |tab_id| to |permissions|. |
- void SetTabSpecificHostPermissions(int tab_id, |
- const URLPatternSet& permissions) const; |
+ // Updates the tab-specific permissions of |tab_id| to includes those from |
+ // |permissions|. |
+ void UpdateTabSpecificPermissions(int tab_id, |
+ const PermissionSet* permissions) const; |
- // Clears the tab-specific host permissions of |tab_id|. |
- void ClearTabSpecificHostPermissions(int tab_id) const; |
+ // Clears the tab-specific permissions of |tab_id|. |
+ void ClearTabSpecificPermissions(int tab_id) const; |
// Accessors: |
@@ -720,19 +720,20 @@ class Extension : public base::RefCountedThreadSafe<Extension> { |
void SetActivePermissions(const PermissionSet* active); |
scoped_refptr<const PermissionSet> GetActivePermissions() const; |
- const URLPatternSet* GetTabSpecificHostPermissions(int tab_id) const; |
- void SetTabSpecificHostPermissions(int tab_id, |
- const URLPatternSet& permissions); |
- void ClearTabSpecificHostPermissions(int tab_id); |
+ scoped_refptr<const PermissionSet> GetTabSpecificPermissions(int tab_id) |
+ const; |
+ void UpdateTabSpecificPermissions(int tab_id, |
+ const PermissionSet* permissions); |
+ void ClearTabSpecificPermissions(int tab_id); |
private: |
friend class base::RefCountedThreadSafe<RuntimeData>; |
scoped_refptr<const PermissionSet> active_permissions_; |
- typedef std::map<int, linked_ptr<const URLPatternSet> > |
- TabHostPermissionsMap; |
- TabHostPermissionsMap tab_specific_host_permissions_; |
+ typedef std::map<int, scoped_refptr<const PermissionSet> > |
+ TabPermissionsMap; |
+ TabPermissionsMap tab_specific_permissions_; |
}; |
// Chooses the extension ID for an extension based on a variety of criteria. |