Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5178)

Unified Diff: chrome/common/extensions/extension.h

Issue 10815028: Make ActiveTabPermissionManager also grant the tabs permission. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698