Index: chrome/browser/chromeos/mobile_config.cc |
diff --git a/chrome/browser/chromeos/mobile_config.cc b/chrome/browser/chromeos/mobile_config.cc |
index a655ae28e8396931f5eec6c6a9d3037104edef12..0fbb47923fa86d525be61bd5603201643aaf9d87 100644 |
--- a/chrome/browser/chromeos/mobile_config.cc |
+++ b/chrome/browser/chromeos/mobile_config.cc |
@@ -44,6 +44,10 @@ const char kDealExpireDateAttr[] = "expire_date"; |
const char kLocalizedContentAttr[] = "localized_content"; |
const char kNotificationTextAttr[] = "notification_text"; |
+// Initial locale carrier config attributes. |
+const char kInitialLocalesAttr[] = "initial_locales"; |
+const char kSetupURLAttr[] = "setup_url"; |
+ |
// Local config properties. |
const char kExcludeDealsAttr[] = "exclude_deals"; |
@@ -192,6 +196,20 @@ void MobileConfig::Carrier::RemoveDeals() { |
STLDeleteValues(&deals_); |
} |
+// MobileConfig::LocaleConfig implementation. ---------------------------------- |
+ |
+MobileConfig::LocaleConfig::LocaleConfig(DictionaryValue* locale_dict) { |
+ InitFromDictionary(locale_dict); |
+} |
+ |
+MobileConfig::LocaleConfig::~LocaleConfig() { |
+} |
+ |
+void MobileConfig::LocaleConfig::InitFromDictionary( |
+ base::DictionaryValue* locale_dict) { |
+ locale_dict->GetString(kSetupURLAttr, &setup_url_); |
+} |
+ |
// MobileConfig implementation, public ----------------------------------------- |
// static |
@@ -215,6 +233,10 @@ const MobileConfig::Carrier* MobileConfig::GetCarrier( |
return NULL; |
} |
+const MobileConfig::LocaleConfig* MobileConfig::GetLocaleConfig() const { |
+ return locale_config_.get(); |
+} |
+ |
// MobileConfig implementation, protected -------------------------------------- |
bool MobileConfig::LoadManifestFromString(const std::string& manifest) { |
@@ -264,6 +286,17 @@ bool MobileConfig::LoadManifestFromString(const std::string& manifest) { |
} |
} |
+ DictionaryValue* initial_locales = NULL; |
+ if (root_.get() && root_->GetDictionary(kInitialLocalesAttr, |
+ &initial_locales)) { |
+ DictionaryValue* locale_config_dict = NULL; |
+ // Search for a config based on current initial locale. |
+ if (initial_locales->GetDictionary(initial_locale_, |
+ &locale_config_dict)) { |
+ locale_config_.reset(new LocaleConfig(locale_config_dict)); |
+ } |
+ } |
+ |
return true; |
} |