OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/extensions/info_private_api.h" | 5 #include "chrome/browser/chromeos/extensions/info_private_api.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 default: | 319 default: |
320 return base::MakeUnique<base::Value>(kDeviceTypeChromedevice); | 320 return base::MakeUnique<base::Value>(kDeviceTypeChromedevice); |
321 } | 321 } |
322 } | 322 } |
323 | 323 |
324 if (property_name == kPropertyClientId) { | 324 if (property_name == kPropertyClientId) { |
325 return base::MakeUnique<base::Value>(GetClientId()); | 325 return base::MakeUnique<base::Value>(GetClientId()); |
326 } | 326 } |
327 | 327 |
328 if (property_name == kPropertyTimezone) { | 328 if (property_name == kPropertyTimezone) { |
| 329 if (chromeos::system::PerUserTimezoneEnabled()) { |
| 330 return base::WrapUnique<base::Value>( |
| 331 Profile::FromBrowserContext(context_) |
| 332 ->GetPrefs() |
| 333 ->GetUserPrefValue(prefs::kUserTimezone) |
| 334 ->DeepCopy()); |
| 335 } |
329 // TODO(crbug.com/697817): Convert CrosSettings::Get to take a unique_ptr. | 336 // TODO(crbug.com/697817): Convert CrosSettings::Get to take a unique_ptr. |
330 return base::WrapUnique<base::Value>( | 337 return base::WrapUnique<base::Value>( |
331 chromeos::CrosSettings::Get() | 338 chromeos::CrosSettings::Get() |
332 ->GetPref(chromeos::kSystemTimezone) | 339 ->GetPref(chromeos::kSystemTimezone) |
333 ->DeepCopy()); | 340 ->DeepCopy()); |
334 } | 341 } |
335 | 342 |
336 if (property_name == kPropertySupportedTimezones) { | 343 if (property_name == kPropertySupportedTimezones) { |
337 std::unique_ptr<base::ListValue> values = | 344 std::unique_ptr<base::ListValue> values = |
338 chromeos::system::GetTimezoneList(); | 345 chromeos::system::GetTimezoneList(); |
(...skipping 17 matching lines...) Expand all Loading... |
356 | 363 |
357 ChromeosInfoPrivateSetFunction::~ChromeosInfoPrivateSetFunction() { | 364 ChromeosInfoPrivateSetFunction::~ChromeosInfoPrivateSetFunction() { |
358 } | 365 } |
359 | 366 |
360 ExtensionFunction::ResponseAction ChromeosInfoPrivateSetFunction::Run() { | 367 ExtensionFunction::ResponseAction ChromeosInfoPrivateSetFunction::Run() { |
361 std::string param_name; | 368 std::string param_name; |
362 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, ¶m_name)); | 369 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, ¶m_name)); |
363 if (param_name == kPropertyTimezone) { | 370 if (param_name == kPropertyTimezone) { |
364 std::string param_value; | 371 std::string param_value; |
365 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, ¶m_value)); | 372 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, ¶m_value)); |
366 chromeos::CrosSettings::Get()->Set(chromeos::kSystemTimezone, | 373 if (chromeos::system::PerUserTimezoneEnabled()) { |
367 base::Value(param_value)); | 374 Profile::FromBrowserContext(context_)->GetPrefs()->SetString( |
| 375 prefs::kUserTimezone, param_value); |
| 376 } else { |
| 377 chromeos::CrosSettings::Get()->Set(chromeos::kSystemTimezone, |
| 378 base::Value(param_value)); |
| 379 } |
368 } else { | 380 } else { |
369 const char* pref_name = GetBoolPrefNameForApiProperty(param_name.c_str()); | 381 const char* pref_name = GetBoolPrefNameForApiProperty(param_name.c_str()); |
370 if (pref_name) { | 382 if (pref_name) { |
371 bool param_value; | 383 bool param_value; |
372 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(1, ¶m_value)); | 384 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(1, ¶m_value)); |
373 Profile::FromBrowserContext(context_)->GetPrefs()->SetBoolean( | 385 Profile::FromBrowserContext(context_)->GetPrefs()->SetBoolean( |
374 pref_name, | 386 pref_name, |
375 param_value); | 387 param_value); |
376 } else { | 388 } else { |
377 return RespondNow(Error(kPropertyNotFound, param_name)); | 389 return RespondNow(Error(kPropertyNotFound, param_name)); |
378 } | 390 } |
379 } | 391 } |
380 | 392 |
381 return RespondNow(NoArguments()); | 393 return RespondNow(NoArguments()); |
382 } | 394 } |
383 | 395 |
384 } // namespace extensions | 396 } // namespace extensions |
OLD | NEW |