[OsSettingsLanguages] Enable flag by default

OS tests need the flag to be disabled because some routes are
conditionally created in os_route and loadTimeData needs to
be overridden even before the test suite is started.

Browser tests work with just a change in loadTimeData value.

(cherry picked from commit 9b28a79079c8d3a283332ecb5666506730686649)

Bug: 1097328, 1109431
Change-Id: If3e1f5914764016ccc96238461ed9ea9923600ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2469337
Reviewed-by: Regan Hsu <[email protected]>
Commit-Queue: My Nguyen <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#817233}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2472678
Reviewed-by: My Nguyen <[email protected]>
Cr-Commit-Position: refs/branch-heads/4280@{#521}
Cr-Branched-From: ea420fb963f9658c9969b6513c56b8f47efa1a2a-refs/heads/master@{#812852}
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
index c6e68ad..85475d9 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
@@ -1672,6 +1672,7 @@
   mocha.run();
 });
 
+// TODO(crbug/1109431): Remove this test once migration is complete.
 // eslint-disable-next-line no-var
 var OSSettingsLanguagesPageTest = class extends OSSettingsBrowserTest {
   /** @override */
@@ -1681,6 +1682,11 @@
   }
 
   /** @override */
+  get featureList() {
+    return {disabled: ['chromeos::features::kLanguageSettingsUpdate']};
+  }
+
+  /** @override */
   get extraLibraries() {
     return super.extraLibraries.concat([
       BROWSER_SETTINGS_PATH + '../fake_chrome_event.js',
@@ -1721,11 +1727,6 @@
   }
 
   /** @override */
-  get featureList() {
-    return {enabled: ['chromeos::features::kLanguageSettingsUpdate']};
-  }
-
-  /** @override */
   get extraLibraries() {
     return super.extraLibraries.concat([
       BROWSER_SETTINGS_PATH + '../fake_chrome_event.js',
@@ -1797,11 +1798,6 @@
   }
 
   /** @override */
-  get featureList() {
-    return {enabled: ['chromeos::features::kLanguageSettingsUpdate']};
-  }
-
-  /** @override */
   get extraLibraries() {
     return super.extraLibraries.concat([
       BROWSER_SETTINGS_PATH + '../fake_chrome_event.js',
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js
index a777a47..1bd74aea 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js
@@ -38,41 +38,24 @@
   }
 };
 
+// TODO(crbug/1109431): Remove this test once migration is complete.
 // eslint-disable-next-line no-var
-var OSSettingsInputPageV3Test = class extends OSSettingsV3BrowserTest {
+var OSSettingsOsLanguagesPageV3Test = class extends OSSettingsV3BrowserTest {
   /** @override */
   get browsePreload() {
-    return 'chrome://os-settings/test_loader.html?module=settings/chromeos/input_page_test.m.js';
+    return 'chrome://os-settings/test_loader.html?module=settings/chromeos/os_languages_page_tests.m.js';
   }
 
   /** @override */
   get featureList() {
     return {
-      enabled: super.featureList.enabled.concat(
-          ['chromeos::features::kLanguageSettingsUpdate'])
+      enabled: super.featureList.enabled,
+      disabled: ['chromeos::features::kLanguageSettingsUpdate']
     };
   }
 };
 
-TEST_F('OSSettingsInputPageV3Test', 'All', () => mocha.run());
-
-// eslint-disable-next-line no-var
-var OSSettingsOsLanguagesPageV2V3Test = class extends OSSettingsV3BrowserTest {
-  /** @override */
-  get browsePreload() {
-    return 'chrome://os-settings/test_loader.html?module=settings/chromeos/os_languages_page_v2_tests.m.js';
-  }
-
-  /** @override */
-  get featureList() {
-    return {
-      enabled: super.featureList.enabled.concat(
-          ['chromeos::features::kLanguageSettingsUpdate'])
-    };
-  }
-};
-
-TEST_F('OSSettingsOsLanguagesPageV2V3Test', 'All', () => mocha.run());
+TEST_F('OSSettingsOsLanguagesPageV3Test', 'All', () => mocha.run());
 
 // eslint-disable-next-line no-var
 var OSSettingsNearbyShareSubPageV3Test = class extends OSSettingsV3BrowserTest {
@@ -96,6 +79,7 @@
  ['CellularSetupDialog', 'cellular_setup_dialog_test.m.js'],
  ['DateTimePage', 'date_time_page_tests.m.js'],
  ['InputMethodOptionPage', 'input_method_options_page_test.m.js'],
+ ['InputPage', 'input_page_test.m.js'],
  ['InternetConfig', 'internet_config_test.m.js'],
  ['InternetDetailPage', 'internet_detail_page_tests.m.js'],
  ['InternetKnownNetworksPage', 'internet_known_networks_page_tests.m.js'],
@@ -109,7 +93,7 @@
  ['NetworkSummary', 'network_summary_test.m.js'],
  ['NetworkSummaryItem', 'network_summary_item_test.m.js'],
  ['OsEditDictionaryPage', 'os_edit_dictionary_page_test.m.js'],
- ['OsLanguagesPage', 'os_languages_page_tests.m.js'],
+ ['OsLanguagesPageV2', 'os_languages_page_v2_tests.m.js'],
  ['NearbyShareReceiveDialog', 'nearby_share_receive_dialog_tests.m.js'],
  ['ParentalControlsPage', 'parental_controls_page_test.m.js'],
  ['PeoplePage', 'os_people_page_test.m.js'],
diff --git a/chrome/test/data/webui/settings/languages_page_metrics_test_cros.js b/chrome/test/data/webui/settings/languages_page_metrics_test_cros.js
index 547a492..de2dec4 100644
--- a/chrome/test/data/webui/settings/languages_page_metrics_test_cros.js
+++ b/chrome/test/data/webui/settings/languages_page_metrics_test_cros.js
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {LanguagesBrowserProxyImpl, LanguagesMetricsProxyImpl, LanguagesPageInteraction} from 'chrome://settings/lazy_load.js';
 import {CrSettingsPrefs} from 'chrome://settings/settings.js';
@@ -14,6 +15,7 @@
 import {TestLanguagesBrowserProxy} from './test_languages_browser_proxy.m.js';
 import {TestLanguagesMetricsProxy} from './test_languages_metrics_proxy.js';
 
+// TODO(crbug/1109431): Remove this test once migration is complete.
 suite('LanguagesPageMetricsChromeOS', function() {
   /** @type {!LanguageHelper} */
   let languageHelper;
@@ -25,6 +27,9 @@
   let languagesMetricsProxy;
 
   suiteSetup(function() {
+    loadTimeData.overrideValues({
+      isChromeOSLanguagesSettingsUpdate: false,
+    });
     CrSettingsPrefs.deferInitialization = true;
   });
 
diff --git a/chrome/test/data/webui/settings/languages_page_tests.js b/chrome/test/data/webui/settings/languages_page_tests.js
index 189a0f08..6ced8e1 100644
--- a/chrome/test/data/webui/settings/languages_page_tests.js
+++ b/chrome/test/data/webui/settings/languages_page_tests.js
@@ -47,6 +47,10 @@
   const initialLanguages = 'en-US,sw';
 
   suiteSetup(function() {
+    // TODO(crbug/1109431): Update this test once migration is completed.
+    loadTimeData.overrideValues({
+      isChromeOSLanguagesSettingsUpdate: false,
+    });
     testing.Test.disableAnimationsAndTransitions();
     PolymerTest.clearBody();
     CrSettingsPrefs.deferInitialization = true;
diff --git a/chromeos/constants/chromeos_features.cc b/chromeos/constants/chromeos_features.cc
index a40d4a2..f1fb46f6 100644
--- a/chromeos/constants/chromeos_features.cc
+++ b/chromeos/constants/chromeos_features.cc
@@ -387,7 +387,7 @@
 
 // Enables or disables language settings update.
 const base::Feature kLanguageSettingsUpdate{"LanguageSettingsUpdate",
-                                            base::FEATURE_DISABLED_BY_DEFAULT};
+                                            base::FEATURE_ENABLED_BY_DEFAULT};
 
 // Enables or disables device management disclosure on login / lock screen.
 const base::Feature kLoginDeviceManagementDisclosure{