1 // Copyright 2018 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chrome/common/apps/platform_apps/chrome_apps_api_provider.h"
6 
7 #include "chrome/common/apps/platform_apps/api/api_features.h"
8 #include "chrome/common/apps/platform_apps/api/generated_schemas.h"
9 #include "chrome/common/apps/platform_apps/api/permission_features.h"
10 #include "chrome/common/apps/platform_apps/chrome_apps_api_permissions.h"
11 #include "chrome/grit/common_resources.h"
12 #include "extensions/common/alias.h"
13 #include "extensions/common/features/json_feature_provider_source.h"
14 #include "extensions/common/permissions/permissions_info.h"
15 
16 namespace chrome_apps {
17 
18 ChromeAppsAPIProvider::ChromeAppsAPIProvider() = default;
19 ChromeAppsAPIProvider::~ChromeAppsAPIProvider() = default;
20 
AddAPIFeatures(extensions::FeatureProvider * provider)21 void ChromeAppsAPIProvider::AddAPIFeatures(
22     extensions::FeatureProvider* provider) {
23   AddChromeAppsAPIFeatures(provider);
24 }
25 
AddManifestFeatures(extensions::FeatureProvider * provider)26 void ChromeAppsAPIProvider::AddManifestFeatures(
27     extensions::FeatureProvider* provider) {
28   // No Chrome-apps-specific manifest features (yet).
29 }
30 
AddPermissionFeatures(extensions::FeatureProvider * provider)31 void ChromeAppsAPIProvider::AddPermissionFeatures(
32     extensions::FeatureProvider* provider) {
33   AddChromeAppsPermissionFeatures(provider);
34 }
35 
AddBehaviorFeatures(extensions::FeatureProvider * provider)36 void ChromeAppsAPIProvider::AddBehaviorFeatures(
37     extensions::FeatureProvider* provider) {
38   // No Chrome-apps-specific manifest features.
39 }
40 
AddAPIJSONSources(extensions::JSONFeatureProviderSource * json_source)41 void ChromeAppsAPIProvider::AddAPIJSONSources(
42     extensions::JSONFeatureProviderSource* json_source) {
43   json_source->LoadJSON(IDR_CHROME_APP_API_FEATURES);
44 }
45 
IsAPISchemaGenerated(const std::string & name)46 bool ChromeAppsAPIProvider::IsAPISchemaGenerated(const std::string& name) {
47   return api::ChromeAppsGeneratedSchemas::IsGenerated(name);
48 }
49 
GetAPISchema(const std::string & name)50 base::StringPiece ChromeAppsAPIProvider::GetAPISchema(const std::string& name) {
51   return api::ChromeAppsGeneratedSchemas::Get(name);
52 }
53 
RegisterPermissions(extensions::PermissionsInfo * permissions_info)54 void ChromeAppsAPIProvider::RegisterPermissions(
55     extensions::PermissionsInfo* permissions_info) {
56   permissions_info->RegisterPermissions(
57       chrome_apps_api_permissions::GetPermissionInfos(),
58       base::span<const extensions::Alias>());
59 }
60 
RegisterManifestHandlers()61 void ChromeAppsAPIProvider::RegisterManifestHandlers() {
62   // No apps-specific manifest handlers (yet).
63 }
64 
65 }  // namespace chrome_apps
66