Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 EXTENSIONS_COMMON_EXTENSION_API_H_ | 5 #ifndef EXTENSIONS_COMMON_EXTENSION_API_H_ |
| 6 #define EXTENSIONS_COMMON_EXTENSION_API_H_ | 6 #define EXTENSIONS_COMMON_EXTENSION_API_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 88 // Depending on the configuration of |api| (in _api_features.json), either | 88 // Depending on the configuration of |api| (in _api_features.json), either |
| 89 // |extension| or |url| (or both) may determine its availability, but this is | 89 // |extension| or |url| (or both) may determine its availability, but this is |
| 90 // up to the configuration of the individual feature. | 90 // up to the configuration of the individual feature. |
| 91 // | 91 // |
| 92 // TODO(kalman): This is just an unnecessary combination of finding a Feature | 92 // TODO(kalman): This is just an unnecessary combination of finding a Feature |
| 93 // then calling Feature::IsAvailableToContext(..) on it. Just provide that | 93 // then calling Feature::IsAvailableToContext(..) on it. Just provide that |
| 94 // FindFeature function and let callers compose if they want. | 94 // FindFeature function and let callers compose if they want. |
| 95 Feature::Availability IsAvailable(const std::string& api_full_name, | 95 Feature::Availability IsAvailable(const std::string& api_full_name, |
| 96 const Extension* extension, | 96 const Extension* extension, |
| 97 Feature::Context context, | 97 Feature::Context context, |
| 98 Feature::SessionType session_type, | |
|
Devlin
2016/08/17 17:07:35
The session type can't really change, right? Why
tbarzic
2016/08/17 19:49:01
It can change from UNSPECIFIED when a user logs in
| |
| 98 const GURL& url); | 99 const GURL& url); |
| 99 | 100 |
| 100 // Determines whether an API, or any parts of that API, are available in | 101 // Determines whether an API, or any parts of that API, are available in |
| 101 // |context|. | 102 // |context|. |
| 102 bool IsAnyFeatureAvailableToContext(const Feature& api, | 103 bool IsAnyFeatureAvailableToContext(const Feature& api, |
| 103 const Extension* extension, | 104 const Extension* extension, |
| 104 Feature::Context context, | 105 Feature::Context context, |
| 106 Feature::SessionType session_type, | |
| 105 const GURL& url); | 107 const GURL& url); |
| 106 | 108 |
| 107 // Returns true if |name| is available to WebUI contexts on |url|. | 109 // Returns true if |name| is available to WebUI contexts on |url|. |
| 108 bool IsAvailableToWebUI(const std::string& name, const GURL& url); | 110 bool IsAvailableToWebUI(const std::string& name, |
| 111 Feature::SessionType session_type, | |
| 112 const GURL& url); | |
| 109 | 113 |
| 110 // Gets the schema for the extension API with namespace |full_name|. | 114 // Gets the schema for the extension API with namespace |full_name|. |
| 111 // Ownership remains with this object. | 115 // Ownership remains with this object. |
| 112 const base::DictionaryValue* GetSchema(const std::string& full_name); | 116 const base::DictionaryValue* GetSchema(const std::string& full_name); |
| 113 | 117 |
| 114 // Splits a full name from the extension API into its API and child name | 118 // Splits a full name from the extension API into its API and child name |
| 115 // parts. Some examples: | 119 // parts. Some examples: |
| 116 // | 120 // |
| 117 // "bookmarks.create" -> ("bookmarks", "create") | 121 // "bookmarks.create" -> ("bookmarks", "create") |
| 118 // "experimental.input.ui.cursorUp" -> ("experimental.input.ui", "cursorUp") | 122 // "experimental.input.ui.cursorUp" -> ("experimental.input.ui", "cursorUp") |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 152 // FeatureProviders used for resolving dependencies. | 156 // FeatureProviders used for resolving dependencies. |
| 153 typedef std::map<std::string, const FeatureProvider*> FeatureProviderMap; | 157 typedef std::map<std::string, const FeatureProvider*> FeatureProviderMap; |
| 154 FeatureProviderMap dependency_providers_; | 158 FeatureProviderMap dependency_providers_; |
| 155 | 159 |
| 156 DISALLOW_COPY_AND_ASSIGN(ExtensionAPI); | 160 DISALLOW_COPY_AND_ASSIGN(ExtensionAPI); |
| 157 }; | 161 }; |
| 158 | 162 |
| 159 } // namespace extensions | 163 } // namespace extensions |
| 160 | 164 |
| 161 #endif // EXTENSIONS_COMMON_EXTENSION_API_H_ | 165 #endif // EXTENSIONS_COMMON_EXTENSION_API_H_ |
| OLD | NEW |