ChromeOS: Update browser option UI for automatic timezone detection.

Update chrome://settings for "automatic timezone detection" option after UI
review.

BUG=461953
TEST=manual

Review URL: https://codereview.chromium.org/944593002

Cr-Commit-Position: refs/heads/master@{#318753}
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index a34c349..47742aa 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -1985,9 +1985,6 @@
   <message name="IDS_OPTIONS_SETTINGS_STORAGE_DESCRIPTION" desc="The 'Storage' button on the chrome://settings page.">
     Stored data...
   </message>
-  <message name="IDS_OPTIONS_SETTINGS_TIME_SYNCED_EXPLANATION" desc="In the settings tab, the text indicating that the date and time are set automatically.">
-    Date and time are set automatically.
-  </message>
   <message name="IDS_OPTIONS_SETTINGS_SET_TIME_BUTTON" desc="In the settings tab, the prompt on the button to open a dialog to set date and time.">
     Set date and time
   </message>
diff --git a/chrome/browser/resources/options/browser_options.html b/chrome/browser/resources/options/browser_options.html
index 7c800e5e..ccf90c0 100644
--- a/chrome/browser/resources/options/browser_options.html
+++ b/chrome/browser/resources/options/browser_options.html
@@ -306,11 +306,6 @@
         </div>
       </div>
       <div class="checkbox settings-row">
-        <label>
-          <input id="use-24hour-clock" pref="settings.clock.use_24hour_clock"
-              metric="Options_Use24HourClockCheckbox" type="checkbox">
-          <span i18n-content="use24HourClock"></span>
-        </label>
         <div id="resolve-timezone-by-geolocation-selection" hidden>
           <label>
             <input id="resolve-timezone-by-geolocation"
@@ -319,9 +314,12 @@
             <span i18n-content="resolveTimezoneByGeoLocation"></span>
           </label>
         </div>
+        <label>
+          <input id="use-24hour-clock" pref="settings.clock.use_24hour_clock"
+              metric="Options_Use24HourClockCheckbox" type="checkbox">
+          <span i18n-content="use24HourClock"></span>
+        </label>
       </div>
-      <div id="time-synced-explanation" class="settings-row"
-          i18n-content="timeSyncedExplanation"></div>
       <div id="set-time" class="settings-row" hidden>
         <button id="set-time-button"
             i18n-content="setTimeButton"></button>
diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js
index 3efebf9f..8ba30db 100644
--- a/chrome/browser/resources/options/browser_options.js
+++ b/chrome/browser/resources/options/browser_options.js
@@ -407,6 +407,8 @@
         if (loadTimeData.getBoolean('enableTimeZoneTrackingOption')) {
           $('resolve-timezone-by-geolocation-selection').hidden = false;
           this.setSystemTimezoneManaged_(false);
+          $('timezone-value-select').disabled = loadTimeData.getBoolean(
+              'resolveTimezoneByGeolocationInitialValue');
         }
       }
 
@@ -2113,7 +2115,6 @@
      */
     setCanSetTime_: function(canSetTime) {
       // If the time has been network-synced, it cannot be set manually.
-      $('time-synced-explanation').hidden = canSetTime;
       $('set-time').hidden = !canSetTime;
     },
 
@@ -2192,6 +2193,7 @@
     'setMetricsReportingSettingVisibility',
     'setProfilesInfo',
     'setSpokenFeedbackCheckboxState',
+    'setSystemTimezoneManaged',
     'setThemesResetButtonEnabled',
     'setVirtualKeyboardCheckboxState',
     'setupPageZoomSelector',
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc
index e3d05b1..a40eb9ef 100644
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc
@@ -681,6 +681,9 @@
   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
 }
 
diff --git a/chrome/browser/ui/webui/options/chromeos/date_time_options_browsertest.js b/chrome/browser/ui/webui/options/chromeos/date_time_options_browsertest.js
index 937af8b..4033599 100644
--- a/chrome/browser/ui/webui/options/chromeos/date_time_options_browsertest.js
+++ b/chrome/browser/ui/webui/options/chromeos/date_time_options_browsertest.js
@@ -26,14 +26,12 @@
 TEST_F('DateTimeOptionsWebUITest', 'testShowSetTimeButton', function() {
   assertEquals(this.browsePreload, document.location.href);
 
-  // Hide label and show button.
+  // Show button.
   BrowserOptions.setCanSetTime(true);
-  expectTrue($('time-synced-explanation').hidden);
   expectFalse($('set-time').hidden);
 
-  // Show label and hide button.
+  // Hide button.
   BrowserOptions.setCanSetTime(false);
-  expectFalse($('time-synced-explanation').hidden);
   expectTrue($('set-time').hidden);
 });
 
diff --git a/chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc
index ef55e5f..bbb4b0c 100644
--- a/chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc
+++ b/chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc
@@ -33,9 +33,6 @@
   localized_strings->SetString(
       "setTimeButton",
       l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_SET_TIME_BUTTON));
-  localized_strings->SetString(
-      "timeSyncedExplanation",
-      l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_TIME_SYNCED_EXPLANATION));
 }
 
 void DateTimeOptionsHandler::InitializeHandler() {
diff --git a/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc b/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc
index df7f7d1..d51fd41 100644
--- a/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc
+++ b/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc
@@ -118,11 +118,17 @@
         browser->tab_strip_model()->GetActiveWebContents();
 
     for (size_t i = 0; i < sizeof(kPrefTests) / sizeof(kPrefTests[0]); i++) {
-      CheckPreference(contents,
-                      kPrefTests[i].pref_name,
-                      !is_owner && kPrefTests[i].owner_only,
-                      !is_owner && kPrefTests[i].indicator ? "owner" :
-                                                             std::string());
+      bool disabled = !is_owner && kPrefTests[i].owner_only;
+      if (strcmp(kPrefTests[i].pref_name, kSystemTimezone) == 0) {
+        disabled = ProfileHelper::Get()
+                       ->GetProfileByUserUnsafe(user)
+                       ->GetPrefs()
+                       ->GetBoolean(prefs::kResolveTimezoneByGeolocation);
+      }
+
+      CheckPreference(
+          contents, kPrefTests[i].pref_name, disabled,
+          !is_owner && kPrefTests[i].indicator ? "owner" : std::string());
     }
     CheckBanner(contents, is_primary);
     CheckSharedSections(contents, is_primary);