| Index: chrome/common/extensions/api/extension_api.h
|
| diff --git a/chrome/common/extensions/api/extension_api.h b/chrome/common/extensions/api/extension_api.h
|
| index 128129e98c1b3a2933203369adfacd722c14955b..924ee8cb52abd76914f8ef9d7fccbeb4463f0b3c 100644
|
| --- a/chrome/common/extensions/api/extension_api.h
|
| +++ b/chrome/common/extensions/api/extension_api.h
|
| @@ -71,9 +71,10 @@ class ExtensionAPI : public FeatureProvider {
|
| // either a namespace name (like "bookmarks") or a member name (like
|
| // "bookmarks.create"). Returns true if the feature and all of its
|
| // dependencies are available to the specified context.
|
| - bool IsAvailable(const std::string& api_full_name,
|
| - const Extension* extension,
|
| - Feature::Context context);
|
| + Feature::Availability IsAvailable(const std::string& api_full_name,
|
| + const Extension* extension,
|
| + Feature::Context context,
|
| + const GURL& url);
|
|
|
| // Returns true if |name| is a privileged API path. Privileged paths can only
|
| // be called from extension code which is running in its own designated
|
| @@ -85,12 +86,6 @@ class ExtensionAPI : public FeatureProvider {
|
| // Ownership remains with this object.
|
| const base::DictionaryValue* GetSchema(const std::string& full_name);
|
|
|
| - // Gets the APIs available to |context| given an |extension| and |url|. The
|
| - // extension or URL may not be relevant to all contexts, and may be left
|
| - // NULL/empty.
|
| - std::set<std::string> GetAPIsForContext(
|
| - Feature::Context context, const Extension* extension, const GURL& url);
|
| -
|
| std::set<std::string> GetAllAPINames();
|
|
|
| // Gets a Feature object describing the API with the specified |full_name|.
|
| @@ -112,9 +107,6 @@ class ExtensionAPI : public FeatureProvider {
|
|
|
| void InitDefaultConfiguration();
|
|
|
| - // Loads the schemas registered with RegisterSchema().
|
| - void LoadAllSchemas();
|
| -
|
| private:
|
| friend struct DefaultSingletonTraits<ExtensionAPI>;
|
|
|
| @@ -127,11 +119,23 @@ class ExtensionAPI : public FeatureProvider {
|
| bool IsChildNamePrivileged(const base::DictionaryValue* namespace_node,
|
| const std::string& child_name);
|
|
|
| - // Adds all APIs to |out| that |extension| has any permission (required or
|
| - // optional) to use.
|
| - // NOTE: This only works for non-feature-controlled APIs.
|
| - // TODO(aa): Remove this when all APIs are converted to the feature system.
|
| - void GetAllowedAPIs(const Extension* extension, std::set<std::string>* out);
|
| + // NOTE: This IsAPIAllowed() and IsNonFeatureAPIAvailable only work for
|
| + // non-feature-controlled APIs.
|
| + // TODO(aa): Remove these when all APIs are converted to the feature system.
|
| +
|
| + // Checks if API |name| is allowed.
|
| + bool IsAPIAllowed(const std::string& name, const Extension* extension);
|
| +
|
| + // Check if an API is available to |context| given an |extension| and |url|.
|
| + // The extension or URL may not be relevant to all contexts, and may be left
|
| + // NULL/empty.
|
| + bool IsNonFeatureAPIAvailable(const std::string& name,
|
| + Feature::Context context,
|
| + const Extension* extension,
|
| + const GURL& url);
|
| +
|
| + // Returns true if the API uses the feature system.
|
| + bool UsesFeatureSystem(const std::string& full_name);
|
|
|
| // Gets a feature from any dependency provider.
|
| Feature* GetFeatureDependency(const std::string& dependency_name);
|
| @@ -148,15 +152,10 @@ class ExtensionAPI : public FeatureProvider {
|
| const std::set<std::string>& excluding,
|
| std::set<std::string>* out);
|
|
|
| - // Removes all APIs from |apis| which are *entirely* privileged. This won't
|
| - // include APIs such as "storage" which is entirely unprivileged, nor
|
| - // "extension" which has unprivileged components.
|
| - void RemovePrivilegedAPIs(std::set<std::string>* apis);
|
| -
|
| - // Adds an APIs that match |url| to |out|.
|
| - // NOTE: This only works for non-feature-controlled APIs.
|
| - // TODO(aa): Remove this when all APIs are converted to the feature system.
|
| - void GetAPIsMatchingURL(const GURL& url, std::set<std::string>* out);
|
| + // Checks if an API is *entirely* privileged. This won't include APIs such as
|
| + // "storage" which is entirely unprivileged, nor "extension" which has
|
| + // unprivileged components.
|
| + bool IsPrivilegedAPI(const std::string& name);
|
|
|
| // Map from each API that hasn't been loaded yet to the schema which defines
|
| // it. Note that there may be multiple APIs per schema.
|
|
|