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..ccc215230a1adf6b60d7d942623f459f1cfd3ff8 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| from |default_settings| here |
+ // since it's not applicable to default settings. |
+} |
+ |
IndividualSettings::~IndividualSettings() { |
} |
@@ -118,6 +129,20 @@ bool IndividualSettings::Parse(const base::DictionaryValue* dict, |
permissions_to_merge_from, permissions_parsed, &blocked_permissions); |
} |
+ // Parses the minimum version settings. |
+ std::string minimum_version_str; |
+ if (scope == SCOPE_INDIVIDUAL && |
+ dict->GetStringWithoutPathExpansion(schema_constants::kMinimumVersion, |
+ &minimum_version_str)) { |
+ scoped_ptr<base::Version> version(new Version(minimum_version_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; |
Joao da Silva
2014/11/17 16:17:41
In this case, the administrator won't see any prob
binjin
2014/11/18 13:25:55
It's possible to enforce the exact requirement wit
|
+ else |
+ minimum_version = version.Pass(); |
+ } |
+ |
return true; |
} |