| 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 #include "apps/shell/common/shell_extensions_client.h" | 5 #include "apps/shell/common/shell_extensions_client.h" |
| 6 | 6 |
| 7 #include "apps/shell/common/api/generated_schemas.h" | 7 #include "apps/shell/common/api/generated_schemas.h" |
| 8 #include "base/lazy_instance.h" | 8 #include "base/lazy_instance.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "extensions/common/api/generated_schemas.h" | 10 #include "extensions/common/api/generated_schemas.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 #include "extensions/common/permissions/permissions_provider.h" | 22 #include "extensions/common/permissions/permissions_provider.h" |
| 23 #include "extensions/common/url_pattern_set.h" | 23 #include "extensions/common/url_pattern_set.h" |
| 24 #include "grit/app_shell_resources.h" | 24 #include "grit/app_shell_resources.h" |
| 25 #include "grit/extensions_resources.h" | 25 #include "grit/extensions_resources.h" |
| 26 | 26 |
| 27 using extensions::APIPermissionInfo; | 27 using extensions::APIPermissionInfo; |
| 28 using extensions::APIPermissionSet; | 28 using extensions::APIPermissionSet; |
| 29 using extensions::BaseFeatureProvider; | 29 using extensions::BaseFeatureProvider; |
| 30 using extensions::Extension; | 30 using extensions::Extension; |
| 31 using extensions::FeatureProvider; | 31 using extensions::FeatureProvider; |
| 32 using extensions::JSONFeatureProviderSource; |
| 32 using extensions::Manifest; | 33 using extensions::Manifest; |
| 33 using extensions::PermissionMessage; | 34 using extensions::PermissionMessage; |
| 34 using extensions::PermissionMessages; | 35 using extensions::PermissionMessages; |
| 35 using extensions::PermissionSet; | 36 using extensions::PermissionSet; |
| 36 using extensions::URLPatternSet; | 37 using extensions::URLPatternSet; |
| 37 | 38 |
| 38 namespace apps { | 39 namespace apps { |
| 39 | 40 |
| 40 namespace { | 41 namespace { |
| 41 | 42 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 } | 113 } |
| 113 | 114 |
| 114 const extensions::PermissionMessageProvider& | 115 const extensions::PermissionMessageProvider& |
| 115 ShellExtensionsClient::GetPermissionMessageProvider() const { | 116 ShellExtensionsClient::GetPermissionMessageProvider() const { |
| 116 NOTIMPLEMENTED(); | 117 NOTIMPLEMENTED(); |
| 117 return g_permission_message_provider.Get(); | 118 return g_permission_message_provider.Get(); |
| 118 } | 119 } |
| 119 | 120 |
| 120 scoped_ptr<FeatureProvider> ShellExtensionsClient::CreateFeatureProvider( | 121 scoped_ptr<FeatureProvider> ShellExtensionsClient::CreateFeatureProvider( |
| 121 const std::string& name) const { | 122 const std::string& name) const { |
| 122 extensions::JSONFeatureProviderSource source(name); | 123 scoped_ptr<FeatureProvider> provider; |
| 124 scoped_ptr<JSONFeatureProviderSource> source( |
| 125 CreateFeatureProviderSource(name)); |
| 123 if (name == "api") { | 126 if (name == "api") { |
| 124 source.LoadJSON(IDR_EXTENSION_API_FEATURES); | 127 provider.reset(new BaseFeatureProvider( |
| 125 source.LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES); | 128 source->dictionary(), CreateFeature<extensions::APIFeature>)); |
| 126 return scoped_ptr<FeatureProvider>(new BaseFeatureProvider( | |
| 127 source.dictionary(), CreateFeature<extensions::APIFeature>)); | |
| 128 } else if (name == "manifest") { | 129 } else if (name == "manifest") { |
| 129 source.LoadJSON(IDR_EXTENSION_MANIFEST_FEATURES); | 130 provider.reset(new BaseFeatureProvider( |
| 130 return scoped_ptr<FeatureProvider>(new BaseFeatureProvider( | 131 source->dictionary(), CreateFeature<extensions::ManifestFeature>)); |
| 131 source.dictionary(), CreateFeature<extensions::ManifestFeature>)); | |
| 132 } else if (name == "permission") { | 132 } else if (name == "permission") { |
| 133 source.LoadJSON(IDR_EXTENSION_PERMISSION_FEATURES); | 133 provider.reset(new BaseFeatureProvider( |
| 134 return scoped_ptr<FeatureProvider>(new BaseFeatureProvider( | 134 source->dictionary(), CreateFeature<extensions::PermissionFeature>)); |
| 135 source.dictionary(), CreateFeature<extensions::PermissionFeature>)); | |
| 136 } else { | 135 } else { |
| 137 NOTREACHED(); | 136 NOTREACHED(); |
| 138 } | 137 } |
| 139 return scoped_ptr<FeatureProvider>(); | 138 return provider.Pass(); |
| 139 } |
| 140 |
| 141 scoped_ptr<JSONFeatureProviderSource> |
| 142 ShellExtensionsClient::CreateFeatureProviderSource( |
| 143 const std::string& name) const { |
| 144 scoped_ptr<JSONFeatureProviderSource> source( |
| 145 new JSONFeatureProviderSource(name)); |
| 146 if (name == "api") { |
| 147 source->LoadJSON(IDR_EXTENSION_API_FEATURES); |
| 148 source->LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES); |
| 149 } else if (name == "manifest") { |
| 150 source->LoadJSON(IDR_EXTENSION_MANIFEST_FEATURES); |
| 151 } else if (name == "permission") { |
| 152 source->LoadJSON(IDR_EXTENSION_PERMISSION_FEATURES); |
| 153 } else { |
| 154 NOTREACHED(); |
| 155 source.reset(); |
| 156 } |
| 157 return source.Pass(); |
| 140 } | 158 } |
| 141 | 159 |
| 142 void ShellExtensionsClient::FilterHostPermissions( | 160 void ShellExtensionsClient::FilterHostPermissions( |
| 143 const URLPatternSet& hosts, | 161 const URLPatternSet& hosts, |
| 144 URLPatternSet* new_hosts, | 162 URLPatternSet* new_hosts, |
| 145 std::set<PermissionMessage>* messages) const { | 163 std::set<PermissionMessage>* messages) const { |
| 146 NOTIMPLEMENTED(); | 164 NOTIMPLEMENTED(); |
| 147 } | 165 } |
| 148 | 166 |
| 149 void ShellExtensionsClient::SetScriptingWhitelist( | 167 void ShellExtensionsClient::SetScriptingWhitelist( |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 // Schema for chrome.shell APIs. | 203 // Schema for chrome.shell APIs. |
| 186 if (apps::shell_api::GeneratedSchemas::IsGenerated(name)) | 204 if (apps::shell_api::GeneratedSchemas::IsGenerated(name)) |
| 187 return apps::shell_api::GeneratedSchemas::Get(name); | 205 return apps::shell_api::GeneratedSchemas::Get(name); |
| 188 | 206 |
| 189 return extensions::core_api::GeneratedSchemas::Get(name); | 207 return extensions::core_api::GeneratedSchemas::Get(name); |
| 190 } | 208 } |
| 191 | 209 |
| 192 bool ShellExtensionsClient::ShouldSuppressFatalErrors() const { return true; } | 210 bool ShellExtensionsClient::ShouldSuppressFatalErrors() const { return true; } |
| 193 | 211 |
| 194 } // namespace apps | 212 } // namespace apps |
| OLD | NEW |