Chromium Code Reviews| Index: chrome/browser/chromeos/extensions/info_private_api.cc |
| diff --git a/chrome/browser/chromeos/extensions/info_private_api.cc b/chrome/browser/chromeos/extensions/info_private_api.cc |
| index 29bd74e2387dafa036aa085ba42a4ce3aa4386e8..4ba9f6fab5484b16718859a6d45913df617dbdf6 100644 |
| --- a/chrome/browser/chromeos/extensions/info_private_api.cc |
| +++ b/chrome/browser/chromeos/extensions/info_private_api.cc |
| @@ -214,6 +214,23 @@ std::string GetClientId() { |
| : std::string(); |
| } |
| +std::unique_ptr<base::Value> GetUserTimezoneValue( |
| + content::BrowserContext* browser_context) { |
| + if (chromeos::system::PerUserTimezoneEnabled()) { |
| + return base::WrapUnique<base::Value>( |
| + Profile::FromBrowserContext(browser_context) |
| + ->GetPrefs() |
| + ->GetUserPrefValue(prefs::kUserTimezone) |
| + ->DeepCopy()); |
| + } else { |
|
stevenjb
2017/05/30 16:47:18
no else after return
Alexander Alekseev
2017/07/06 06:30:28
Done.
|
| + // TODO(crbug.com/697817): Convert CrosSettings::Get to take a unique_ptr. |
| + return base::WrapUnique<base::Value>( |
| + chromeos::CrosSettings::Get() |
| + ->GetPref(chromeos::kSystemTimezone) |
| + ->DeepCopy()); |
| + } |
| +} |
|
stevenjb
2017/05/30 16:47:18
I actually think this code would be better off in
Alexander Alekseev
2017/07/06 06:30:28
This is very UI-specific. I'd leave it here.
|
| + |
| } // namespace |
| ChromeosInfoPrivateGetFunction::ChromeosInfoPrivateGetFunction() { |
| @@ -325,13 +342,8 @@ std::unique_ptr<base::Value> ChromeosInfoPrivateGetFunction::GetValue( |
| return base::MakeUnique<base::Value>(GetClientId()); |
| } |
| - if (property_name == kPropertyTimezone) { |
| - // TODO(crbug.com/697817): Convert CrosSettings::Get to take a unique_ptr. |
| - return base::WrapUnique<base::Value>( |
| - chromeos::CrosSettings::Get() |
| - ->GetPref(chromeos::kSystemTimezone) |
| - ->DeepCopy()); |
| - } |
| + if (property_name == kPropertyTimezone) |
| + return GetUserTimezoneValue(context_); |
| if (property_name == kPropertySupportedTimezones) { |
| std::unique_ptr<base::ListValue> values = |
| @@ -363,8 +375,13 @@ ExtensionFunction::ResponseAction ChromeosInfoPrivateSetFunction::Run() { |
| if (param_name == kPropertyTimezone) { |
| std::string param_value; |
| EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, ¶m_value)); |
| - chromeos::CrosSettings::Get()->Set(chromeos::kSystemTimezone, |
| - base::Value(param_value)); |
| + if (chromeos::system::PerUserTimezoneEnabled()) { |
| + Profile::FromBrowserContext(context_)->GetPrefs()->SetString( |
| + prefs::kUserTimezone, param_value); |
| + } else { |
| + chromeos::CrosSettings::Get()->Set(chromeos::kSystemTimezone, |
| + base::Value(param_value)); |
| + } |
| } else { |
| const char* pref_name = GetBoolPrefNameForApiProperty(param_name.c_str()); |
| if (pref_name) { |