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

Side by Side Diff: extensions/shell/common/shell_extensions_client.cc

Issue 660333003: Add support for app_shell-only extension APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: (shell-identity) rebase Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "extensions/shell/common/shell_extensions_client.h" 5 #include "extensions/shell/common/shell_extensions_client.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "extensions/common/api/generated_schemas.h" 9 #include "extensions/common/api/generated_schemas.h"
10 #include "extensions/common/common_manifest_handlers.h" 10 #include "extensions/common/common_manifest_handlers.h"
11 #include "extensions/common/extension_urls.h" 11 #include "extensions/common/extension_urls.h"
12 #include "extensions/common/features/api_feature.h" 12 #include "extensions/common/features/api_feature.h"
13 #include "extensions/common/features/base_feature_provider.h" 13 #include "extensions/common/features/base_feature_provider.h"
14 #include "extensions/common/features/json_feature_provider_source.h" 14 #include "extensions/common/features/json_feature_provider_source.h"
15 #include "extensions/common/features/manifest_feature.h" 15 #include "extensions/common/features/manifest_feature.h"
16 #include "extensions/common/features/permission_feature.h" 16 #include "extensions/common/features/permission_feature.h"
17 #include "extensions/common/features/simple_feature.h" 17 #include "extensions/common/features/simple_feature.h"
18 #include "extensions/common/manifest_handler.h" 18 #include "extensions/common/manifest_handler.h"
19 #include "extensions/common/permissions/permission_message_provider.h" 19 #include "extensions/common/permissions/permission_message_provider.h"
20 #include "extensions/common/permissions/permissions_info.h" 20 #include "extensions/common/permissions/permissions_info.h"
21 #include "extensions/common/permissions/permissions_provider.h" 21 #include "extensions/common/permissions/permissions_provider.h"
22 #include "extensions/common/url_pattern_set.h" 22 #include "extensions/common/url_pattern_set.h"
23 #include "extensions/shell/common/api/generated_schemas.h"
24 #include "grit/app_shell_resources.h"
23 #include "grit/extensions_resources.h" 25 #include "grit/extensions_resources.h"
24 26
25 namespace extensions { 27 namespace extensions {
26 28
27 namespace { 29 namespace {
28 30
29 template <class FeatureClass> 31 template <class FeatureClass>
30 SimpleFeature* CreateFeature() { 32 SimpleFeature* CreateFeature() {
31 return new FeatureClass; 33 return new FeatureClass;
32 } 34 }
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 return provider.Pass(); 122 return provider.Pass();
121 } 123 }
122 124
123 scoped_ptr<JSONFeatureProviderSource> 125 scoped_ptr<JSONFeatureProviderSource>
124 ShellExtensionsClient::CreateFeatureProviderSource( 126 ShellExtensionsClient::CreateFeatureProviderSource(
125 const std::string& name) const { 127 const std::string& name) const {
126 scoped_ptr<JSONFeatureProviderSource> source( 128 scoped_ptr<JSONFeatureProviderSource> source(
127 new JSONFeatureProviderSource(name)); 129 new JSONFeatureProviderSource(name));
128 if (name == "api") { 130 if (name == "api") {
129 source->LoadJSON(IDR_EXTENSION_API_FEATURES); 131 source->LoadJSON(IDR_EXTENSION_API_FEATURES);
132 source->LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES);
130 } else if (name == "manifest") { 133 } else if (name == "manifest") {
131 source->LoadJSON(IDR_EXTENSION_MANIFEST_FEATURES); 134 source->LoadJSON(IDR_EXTENSION_MANIFEST_FEATURES);
132 } else if (name == "permission") { 135 } else if (name == "permission") {
133 source->LoadJSON(IDR_EXTENSION_PERMISSION_FEATURES); 136 source->LoadJSON(IDR_EXTENSION_PERMISSION_FEATURES);
134 } else { 137 } else {
135 NOTREACHED(); 138 NOTREACHED();
136 source.reset(); 139 source.reset();
137 } 140 }
138 return source.Pass(); 141 return source.Pass();
139 } 142 }
(...skipping 24 matching lines...) Expand all
164 } 167 }
165 168
166 bool ShellExtensionsClient::IsScriptableURL(const GURL& url, 169 bool ShellExtensionsClient::IsScriptableURL(const GURL& url,
167 std::string* error) const { 170 std::string* error) const {
168 NOTIMPLEMENTED(); 171 NOTIMPLEMENTED();
169 return true; 172 return true;
170 } 173 }
171 174
172 bool ShellExtensionsClient::IsAPISchemaGenerated( 175 bool ShellExtensionsClient::IsAPISchemaGenerated(
173 const std::string& name) const { 176 const std::string& name) const {
174 return core_api::GeneratedSchemas::IsGenerated(name); 177 return core_api::GeneratedSchemas::IsGenerated(name) ||
178 shell_api::GeneratedSchemas::IsGenerated(name);
175 } 179 }
176 180
177 base::StringPiece ShellExtensionsClient::GetAPISchema( 181 base::StringPiece ShellExtensionsClient::GetAPISchema(
178 const std::string& name) const { 182 const std::string& name) const {
183 // Schema for app_shell-only APIs.
184 if (shell_api::GeneratedSchemas::IsGenerated(name))
185 return shell_api::GeneratedSchemas::Get(name);
186
187 // Core extensions APIs.
179 return core_api::GeneratedSchemas::Get(name); 188 return core_api::GeneratedSchemas::Get(name);
180 } 189 }
181 190
182 void ShellExtensionsClient::RegisterAPISchemaResources( 191 void ShellExtensionsClient::RegisterAPISchemaResources(
183 ExtensionAPI* api) const { 192 ExtensionAPI* api) const {
184 } 193 }
185 194
186 bool ShellExtensionsClient::ShouldSuppressFatalErrors() const { 195 bool ShellExtensionsClient::ShouldSuppressFatalErrors() const {
187 return true; 196 return true;
188 } 197 }
189 198
190 std::string ShellExtensionsClient::GetWebstoreBaseURL() const { 199 std::string ShellExtensionsClient::GetWebstoreBaseURL() const {
191 return extension_urls::kChromeWebstoreBaseURL; 200 return extension_urls::kChromeWebstoreBaseURL;
192 } 201 }
193 202
194 std::string ShellExtensionsClient::GetWebstoreUpdateURL() const { 203 std::string ShellExtensionsClient::GetWebstoreUpdateURL() const {
195 return extension_urls::kChromeWebstoreUpdateURL; 204 return extension_urls::kChromeWebstoreUpdateURL;
196 } 205 }
197 206
198 bool ShellExtensionsClient::IsBlacklistUpdateURL(const GURL& url) const { 207 bool ShellExtensionsClient::IsBlacklistUpdateURL(const GURL& url) const {
199 // TODO(rockot): Maybe we want to do something else here. For now we accept 208 // TODO(rockot): Maybe we want to do something else here. For now we accept
200 // any URL as a blacklist URL because we don't really care. 209 // any URL as a blacklist URL because we don't really care.
201 return true; 210 return true;
202 } 211 }
203 212
204 } // namespace extensions 213 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698