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

Unified Diff: chrome/common/extensions/extension.cc

Issue 12494028: Move Requirements out of Extension Class (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Move Requirements from API Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/extension.cc
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
index 7a200106c8f342c6dea99c52c14bd024318777b3..34b38d9e2f3d40f0ed92eac313ac3cb724f35905 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -186,14 +186,6 @@ const int Extension::kValidHostPermissionSchemes = URLPattern::SCHEME_CHROMEUI |
URLPattern::SCHEME_FILE |
URLPattern::SCHEME_FTP;
-Extension::Requirements::Requirements()
- : webgl(false),
- css3d(false),
- npapi(false) {
-}
-
-Extension::Requirements::~Requirements() {}
-
//
// Extension
//
@@ -1663,7 +1655,6 @@ bool Extension::LoadSharedFeatures(string16* error) {
!ManifestHandler::ParseExtension(this, error) ||
!LoadNaClModules(error) ||
!LoadSandboxedPages(error) ||
- !LoadRequirements(error) ||
!LoadKioskEnabled(error) ||
!LoadOfflineEnabled(error))
return false;
@@ -1798,82 +1789,6 @@ bool Extension::LoadSandboxedPages(string16* error) {
return true;
}
-bool Extension::LoadRequirements(string16* error) {
- // Before parsing requirements from the manifest, automatically default the
- // NPAPI plugin requirement based on whether it includes NPAPI plugins.
- const ListValue* list_value = NULL;
- requirements_.npapi =
- manifest_->GetList(keys::kPlugins, &list_value) && !list_value->empty();
-
- if (!manifest_->HasKey(keys::kRequirements))
- return true;
-
- const DictionaryValue* requirements_value = NULL;
- if (!manifest_->GetDictionary(keys::kRequirements, &requirements_value)) {
- *error = ASCIIToUTF16(errors::kInvalidRequirements);
- return false;
- }
-
- for (DictionaryValue::Iterator it(*requirements_value); !it.IsAtEnd();
- it.Advance()) {
- const DictionaryValue* requirement_value;
- if (!it.value().GetAsDictionary(&requirement_value)) {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidRequirement, it.key());
- return false;
- }
-
- if (it.key() == "plugins") {
- for (DictionaryValue::Iterator plugin_it(*requirement_value);
- !plugin_it.IsAtEnd(); plugin_it.Advance()) {
- bool plugin_required = false;
- if (!plugin_it.value().GetAsBoolean(&plugin_required)) {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidRequirement, it.key());
- return false;
- }
- if (plugin_it.key() == "npapi") {
- requirements_.npapi = plugin_required;
- } else {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidRequirement, it.key());
- return false;
- }
- }
- } else if (it.key() == "3D") {
- const ListValue* features = NULL;
- if (!requirement_value->GetListWithoutPathExpansion("features",
- &features) ||
- !features) {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidRequirement, it.key());
- return false;
- }
-
- for (base::ListValue::const_iterator feature_it = features->begin();
- feature_it != features->end();
- ++feature_it) {
- std::string feature;
- if ((*feature_it)->GetAsString(&feature)) {
- if (feature == "webgl") {
- requirements_.webgl = true;
- } else if (feature == "css3d") {
- requirements_.css3d = true;
- } else {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidRequirement, it.key());
- return false;
- }
- }
- }
- } else {
- *error = ASCIIToUTF16(errors::kInvalidRequirements);
- return false;
- }
- }
- return true;
-}
-
bool Extension::LoadKioskEnabled(string16* error) {
if (!manifest_->HasKey(keys::kKioskEnabled))
return true;
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | chrome/common/extensions/manifest_handlers/requirements_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698