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

Unified Diff: chrome/browser/extensions/extension_management_internal.cc

Issue 706623004: Add minimum version to extension management (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ext-update-url
Patch Set: fixes addressing #44 Created 6 years 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/browser/extensions/extension_management_internal.cc
diff --git a/chrome/browser/extensions/extension_management_internal.cc b/chrome/browser/extensions/extension_management_internal.cc
index ca7c5fb710d264f19ed0e30f8f747b91477dd5e9..df1bbe7e51ee722b29e4dffcfba505296e69f6e2 100644
--- a/chrome/browser/extensions/extension_management_internal.cc
+++ b/chrome/browser/extensions/extension_management_internal.cc
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "base/values.h"
+#include "base/version.h"
#include "chrome/browser/extensions/extension_management_constants.h"
#include "extensions/common/url_pattern_set.h"
#include "url/gurl.h"
@@ -23,6 +24,16 @@ IndividualSettings::IndividualSettings() {
Reset();
}
+// Initializes from default settings.
+IndividualSettings::IndividualSettings(
+ const IndividualSettings* default_settings) {
+ installation_mode = default_settings->installation_mode;
+ update_url = default_settings->installation_mode;
+ blocked_permissions = default_settings->blocked_permissions;
+ // We are not initializing |minimum_version_required| from |default_settings|
+ // here since it's not applicable to default settings.
+}
+
IndividualSettings::~IndividualSettings() {
}
@@ -118,6 +129,22 @@ bool IndividualSettings::Parse(const base::DictionaryValue* dict,
permissions_to_merge_from, permissions_parsed, &blocked_permissions);
}
+ // Parses the minimum version settings.
+ std::string minimum_version_required_str;
+ if (scope == SCOPE_INDIVIDUAL &&
+ dict->GetStringWithoutPathExpansion(
+ schema_constants::kMinimumVersionRequired,
+ &minimum_version_required_str)) {
+ scoped_ptr<base::Version> version(
+ new Version(minimum_version_required_str));
+ // We accept a general version string here. Note that count of components in
+ // version string of extensions is limited to 4.
+ if (!version->IsValid())
+ LOG(WARNING) << kMalformedPreferenceWarning;
+ else
+ minimum_version_required = version.Pass();
+ }
+
return true;
}
« no previous file with comments | « chrome/browser/extensions/extension_management_internal.h ('k') | chrome/browser/extensions/extension_management_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698