Index: chrome/browser/ui/webui/options/browser_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc |
index 514b732fe09e4c3f29c0a86aedebe79bb7d960c4..5123b6ca3453bc7eb4dd6eafa63177245d431832 100644 |
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc |
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc |
@@ -682,9 +682,6 @@ void BrowserOptionsHandler::GetLocalizedValues(base::DictionaryValue* values) { |
values->SetBoolean("enableTimeZoneTrackingOption", |
!have_disable_time_zone_tracking_option_switch && |
!chromeos::system::HasSystemTimezonePolicy()); |
- values->SetBoolean("resolveTimezoneByGeolocationInitialValue", |
- Profile::FromWebUI(web_ui())->GetPrefs()->GetBoolean( |
- prefs::kResolveTimezoneByGeolocation)); |
#endif |
} |
@@ -981,6 +978,10 @@ void BrowserOptionsHandler::InitializeHandler() { |
chromeos::kSystemTimezonePolicy, |
base::Bind(&BrowserOptionsHandler::OnSystemTimezonePolicyChanged, |
weak_ptr_factory_.GetWeakPtr())); |
+ profile_pref_registrar_.Add( |
+ prefs::kResolveTimezoneByGeolocation, |
+ base::Bind(&BrowserOptionsHandler::OnResolveTimezoneByGeolocationChanged, |
+ base::Unretained(this))); |
#else // !defined(OS_CHROMEOS) |
profile_pref_registrar_.Add( |
prefs::kProxy, |
@@ -989,6 +990,17 @@ void BrowserOptionsHandler::InitializeHandler() { |
#endif // !defined(OS_CHROMEOS) |
} |
+#if defined(OS_CHROMEOS) |
+void BrowserOptionsHandler::OnResolveTimezoneByGeolocationChanged() { |
+ PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
+ const bool resolve_timezone_by_geolocation = |
+ pref_service->GetBoolean(prefs::kResolveTimezoneByGeolocation); |
+ web_ui()->CallJavascriptFunction( |
+ "BrowserOptions.onResolveTimezoneByGeolocationChanged", |
+ base::FundamentalValue(resolve_timezone_by_geolocation)); |
+} |
+#endif // defined(OS_CHROMEOS) |
+ |
void BrowserOptionsHandler::InitializePage() { |
page_initialized_ = true; |
@@ -1040,6 +1052,8 @@ void BrowserOptionsHandler::InitializePage() { |
OnConsumerManagementStatusChanged(); |
consumer_management->AddObserver(this); |
} |
+ |
+ OnResolveTimezoneByGeolocationChanged(); |
#endif |
} |