| Index: extensions/common/manifest_handler.h
|
| diff --git a/extensions/common/manifest_handler.h b/extensions/common/manifest_handler.h
|
| index fd7b571e33666830d3d2bb98c6c80b7a1e7a8c50..90fbe84998fa2f7d13f9881cb296cc7e8ed9a9c2 100644
|
| --- a/extensions/common/manifest_handler.h
|
| +++ b/extensions/common/manifest_handler.h
|
| @@ -16,6 +16,8 @@
|
|
|
| namespace extensions {
|
| class Extension;
|
| +class ManifestPermission;
|
| +class ManifestPermissionSet;
|
|
|
| // An interface for clients that recognize and parse keys in extension
|
| // manifests.
|
| @@ -64,6 +66,19 @@ class ManifestHandler {
|
| // (new MyManifestHandler)->Register();
|
| void Register();
|
|
|
| + // Creates a |ManifestPermission| instance for the given manifest key |name|.
|
| + // The returned permission does not contain any permission data, so this
|
| + // method is usually used before calling |FromValue| or |Read|. Returns
|
| + // |NULL| if the manifest handler does not support custom permissions.
|
| + virtual ManifestPermission* CreatePermission();
|
| +
|
| + // Creates a |ManifestPermission| instance containing the initial set of
|
| + // required manifest permissions for the given |extension|. Returns |NULL| if
|
| + // the manifest handler does not support custom permissions or if there was
|
| + // no manifest key in the extension manifest for this handler.
|
| + virtual ManifestPermission* CreateInitialRequiredPermission(
|
| + const Extension* extension);
|
| +
|
| // Calling FinalizeRegistration indicates that there are no more
|
| // manifest handlers to be registered.
|
| static void FinalizeRegistration();
|
| @@ -79,6 +94,20 @@ class ManifestHandler {
|
| std::string* error,
|
| std::vector<InstallWarning>* warnings);
|
|
|
| + // Calls |CreatePermission| on the manifest handler for |key|. Returns |NULL|
|
| + // if there is no manifest handler for |key| or if the manifest handler for
|
| + // |key| does not support custom permissions.
|
| + static ManifestPermission* CreatePermission(const std::string& key);
|
| +
|
| + // Calls |CreateInitialRequiredPermission| on all registered manifest handlers
|
| + // and adds the returned permissions to |permission_set|. Note this should be
|
| + // called after all manifest data elements have been read, parsed and stored
|
| + // in the manifest data property of |extension|, as manifest handlers need
|
| + // access to their manifest data to initialize their required manifest
|
| + // permission.
|
| + static void AddExtensionInitialRequiredPermissions(
|
| + const Extension* extension, ManifestPermissionSet* permission_set);
|
| +
|
| protected:
|
| // A convenience method for handlers that only register for 1 key,
|
| // so that they can define keys() { return SingleKey(kKey); }
|
| @@ -108,6 +137,12 @@ class ManifestHandlerRegistry {
|
| std::string* error,
|
| std::vector<InstallWarning>* warnings);
|
|
|
| + ManifestPermission* CreatePermission(const std::string& key);
|
| +
|
| + void AddExtensionInitialRequiredPermissions(
|
| + const Extension* extension,
|
| + ManifestPermissionSet* permission_set);
|
| +
|
| // Overrides the current global ManifestHandlerRegistry with
|
| // |registry|, returning the current one.
|
| static ManifestHandlerRegistry* SetForTesting(
|
|
|