ambient: Make Settings in sync with the server

This patch will make the Chrome OS Settings ambient mode page in sync
with the server.
1. Topic source radio button will be selected after the settings has
been fetched from the server.
2. Changes of the selected topic source will update it to the server.

Bug: b/148483925
Test: Modify the unittests.
Change-Id: I9313b74bfb8d489da94923baab1207a4dcc6a834
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2125686
Reviewed-by: Kyle Horimoto <[email protected]>
Reviewed-by: Gabriel Charette <[email protected]>
Reviewed-by: James Cook <[email protected]>
Reviewed-by: Xiaohui Chen <[email protected]>
Commit-Queue: Tao Wu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#756304}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 7d01e4ac..f38d55ce 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -554,6 +554,11 @@
 const char kInvalidatorInvalidationState[] = "invalidator.invalidation_state";
 const char kInvalidatorSavedInvalidations[] = "invalidator.saved_invalidations";
 
+#if defined(OS_CHROMEOS)
+// Deprecated 4/2020
+const char kAmbientModeTopicSource[] = "settings.ambient_mode.topic_source";
+#endif  // defined(OS_CHROMEOS)
+
 // Register prefs used only for migration (clearing or moving to a new key).
 void RegisterProfilePrefsForMigration(
     user_prefs::PrefRegistrySyncable* registry) {
@@ -652,6 +657,10 @@
   registry->RegisterStringPref(kInvalidatorClientId, std::string());
 
   chrome_browser_net::RegisterDNSProbesSettingBackupPref(registry);
+
+#if defined(OS_CHROMEOS)
+  registry->RegisterIntegerPref(kAmbientModeTopicSource, 0);
+#endif  // defined(OS_CHROMEOS)
 }
 
 }  // namespace
@@ -1326,4 +1335,9 @@
   // Added 3/2020.
   profile_prefs->ClearPref(kDataReductionNetworkProperties);
   chrome_browser_net::MigrateDNSProbesSettingToOrFromBackup(profile_prefs);
+
+#if defined(OS_CHROMEOS)
+  // Added 4/2020.
+  profile_prefs->ClearPref(kAmbientModeTopicSource);
+#endif
 }