diff --git a/DEPS b/DEPS
index 85a7f49..ab868a8 100644
--- a/DEPS
+++ b/DEPS
@@ -228,11 +228,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': 'fdf7b3c41f8ede5cb7f8b160f73695e9a1682e46',
+  'skia_revision': '53c06de5478f1754b90a16df3f4bccd97423cc68',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': '8abf42653fe007387d73407b0ee72909580ab82e',
+  'v8_revision': 'ae254f30808154c3d27df1256a045ecf0e8cd34f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
@@ -240,7 +240,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '6c41548762d6236bb4247606164bd4fe6c9180ac',
+  'angle_revision': '06b19ed81e8a6aaf19d95a7487ab9ac418da0d07',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -263,7 +263,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling googletest
   # and whatever else without interference from each other.
-  'googletest_revision': '2d924d7a971e9667d76ad09727fb2402b4f8a1e3',
+  'googletest_revision': 'aefb45469ee7e6bde0cd1d2c18412046c30e7bb6',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling lighttpd
   # and whatever else without interference from each other.
@@ -299,7 +299,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': 'c71b1c718d486fbce636439bbdee3d31e8a0de86',
+  'catapult_revision': 'cf2488ab010520b862072e29362356e10a94a029',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -307,7 +307,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': '70a7372727f07dc09ccf378afb1f370d485dbfdc',
+  'devtools_frontend_revision': 'c4170ac05312211492911dd08a6b140120d4cde6',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -371,7 +371,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libavif
   # and whatever else without interference from each other.
-  'libavif_revision': 'c3c158fbd76587ce1e0be4902a775dc501f4815a',
+  'libavif_revision': 'bd1492e1812fff842c31c0f4da84d48f1349265c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling nearby
   # and whatever else without interference from each other.
@@ -680,7 +680,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/linux-amd64',
-          'version': 'dCpHjJxIdu2eACBlsvcm5hJyZMFrA8kAmHddwn_QCQIC',
+          'version': 'amVpB5q-1q110LLJIIICa9SDmZizR4n11Voq4Cn1lS4C',
         },
       ],
       'dep_type': 'cipd',
@@ -691,7 +691,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/mac-amd64',
-          'version': 'E5Ln_42Y_GkXNIM-xIIKxz-wILgWr3qAnNmq0FsRc6sC',
+          'version': 'Gr6PBXgVPpEE-GR9d1NMYLS2tDmY5g7RDA9oWYXdNeIC',
         },
       ],
       'dep_type': 'cipd',
@@ -702,7 +702,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/windows-amd64',
-          'version': '1x0CSyrcjJ6i6mVCSTmuciF2Re27_K__LsUxbOL9KdIC',
+          'version': 'KU_lZNMQnNYPCEIMjpjZ4SrP-wIRO2kYpjzMICRZdAMC',
         },
       ],
       'dep_type': 'cipd',
@@ -983,7 +983,7 @@
   # Tools used when building Chrome for Chrome OS. This affects both the Simple
   # Chrome workflow, as well as the chromeos-chrome ebuild.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '30ba124dd32204fa1181ccec8e5fbfdba0b6172e',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'f157bb00c47e35a90e7ff6d98c07b489cc7299e3',
       'condition': 'checkout_chromeos',
   },
 
@@ -998,7 +998,7 @@
 
   # For Linux and Chromium OS.
   'src/third_party/cros_system_api': {
-      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + '22cd4b423a8c3f345916a1f83789345db807b9dd',
+      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + '551c3b33fd5e15ccb1546dc42a7baca8c8c778fd',
       'condition': 'checkout_linux',
   },
 
@@ -1497,7 +1497,7 @@
   },
 
   'src/third_party/re2/src':
-    Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + '068a6a822c02ddca5f87293c3be1896801921a40',
+    Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + 'f275e378b27baad9da568a026d73a02e40628936',
 
   'src/third_party/r8': {
       'packages': [
@@ -1682,7 +1682,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@83328156dbaed7370872798fecc5decbd7c4bfb1',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@e730ae9c22953870f7bd782c8cdfb61915ce5408',
     'condition': 'checkout_src_internal',
   },
 
@@ -1690,7 +1690,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/eche_app/app',
-        'version': 'dF7RRf2XX9i7cNmcgfCeZMPDYSYNupB-C2vIQoE8DnwC',
+        'version': 'UOJ3XLQTDH0c8m98d-9ToR3ek2JD3ITYCNYI3y5-6mUC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 0f1cbac..e47e0460 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1185,7 +1185,8 @@
   ) | set('%s@developer.gserviceaccount.com' % s for s in ('3su6n15k.default',)
   ) | set('%s@chops-service-accounts.iam.gserviceaccount.com' % s
           for s in ('bling-autoroll-builder', 'v8-ci-autoroll-builder',
-                    'wpt-autoroller', 'chrome-weblayer-builder')
+                    'wpt-autoroller', 'chrome-weblayer-builder',
+                    'lacros-version-skew-roller', 'skylab-test-cros-roller')
   ) | set('%s@skia-public.iam.gserviceaccount.com' % s
           for s in ('chromium-autoroll', 'chromium-release-autoroll')
   ) | set('%s@skia-corp.google.com.iam.gserviceaccount.com' % s
diff --git a/ash/accessibility/accessibility_controller_impl.cc b/ash/accessibility/accessibility_controller_impl.cc
index 4a0610d..1f97b0a 100644
--- a/ash/accessibility/accessibility_controller_impl.cc
+++ b/ash/accessibility/accessibility_controller_impl.cc
@@ -743,6 +743,9 @@
       prefs::kAccessibilitySwitchAccessPointScanSpeedDipsPerSecond,
       kDefaultSwitchAccessPointScanSpeedDipsPerSecond,
       user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PREF);
+  registry->RegisterBooleanPref(
+      prefs::kAccessibilityEnhancedNetworkVoicesInSelectToSpeakAllowed, true,
+      user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PREF);
 }
 
 void AccessibilityControllerImpl::Shutdown() {
diff --git a/ash/accessibility/accessibility_controller_unittest.cc b/ash/accessibility/accessibility_controller_unittest.cc
index dbe8d6d..6550a14 100644
--- a/ash/accessibility/accessibility_controller_unittest.cc
+++ b/ash/accessibility/accessibility_controller_unittest.cc
@@ -75,6 +75,8 @@
   EXPECT_TRUE(prefs->FindPreference(prefs::kAccessibilityShortcutsEnabled));
   EXPECT_TRUE(
       prefs->FindPreference(prefs::kAccessibilityVirtualKeyboardEnabled));
+  EXPECT_TRUE(prefs->FindPreference(
+      prefs::kAccessibilityEnhancedNetworkVoicesInSelectToSpeakAllowed));
 }
 
 TEST_F(AccessibilityControllerTest, SetAutoclickEnabled) {
diff --git a/ash/ambient/ambient_controller_unittest.cc b/ash/ambient/ambient_controller_unittest.cc
index df21b99..2649132e 100644
--- a/ash/ambient/ambient_controller_unittest.cc
+++ b/ash/ambient/ambient_controller_unittest.cc
@@ -620,8 +620,7 @@
 
   // General key press will exit ambient mode.
   // Simulate key press to close the widget.
-  ui::test::EventGenerator* event_generator = GetEventGenerator();
-  event_generator->PressKey(ui::VKEY_A, /*flags=*/0);
+  PressAndReleaseKey(ui::VKEY_A);
   EXPECT_FALSE(ambient_controller()->IsShown());
 }
 
@@ -644,8 +643,7 @@
 
   // General key press will exit ambient mode.
   // Simulate key press to close the widget.
-  ui::test::EventGenerator* event_generator = GetEventGenerator();
-  event_generator->PressKey(ui::VKEY_A, /*flags=*/0);
+  PressAndReleaseKey(ui::VKEY_A);
   EXPECT_FALSE(ambient_controller()->IsShown());
 }
 
diff --git a/ash/app_list/app_list_metrics_unittest.cc b/ash/app_list/app_list_metrics_unittest.cc
index bef2377..e873563e 100644
--- a/ash/app_list/app_list_metrics_unittest.cc
+++ b/ash/app_list/app_list_metrics_unittest.cc
@@ -162,7 +162,7 @@
     search_result_container_view->GetFirstResultView()->RequestFocus();
 
     // Press return to simulate an app launch from the tile item.
-    GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   }
 
   void PopulateAndLaunchSuggestionChip() {
@@ -190,7 +190,7 @@
     GetAppListTestHelper()->WaitUntilIdle();
 
     // Press return to simulate an app launch from the suggestion chip.
-    GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   }
 
   void PopulateAndLaunchAppInGrid() {
@@ -208,7 +208,7 @@
     test_api.GetRootAppsGridView()->GetItemViewAt(0)->RequestFocus();
 
     // Press return to simulate an app launch from a grid item.
-    GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   }
 
  private:
@@ -227,7 +227,7 @@
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // Press a letter key, the AppListView should transition to kHalf.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_H, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_H);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   CreateAndClickShelfItem();
@@ -247,7 +247,7 @@
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // Press a letter key, the AppListView should transition to kHalf.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_H, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_H);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   PopulateAndLaunchSearchBoxTileItem();
@@ -262,14 +262,13 @@
 // fullscreen search launcher is showing.
 TEST_F(AppListAppLaunchedMetricTest, FullscreenSearchLaunchFromSearchBox) {
   base::HistogramTester histogram_tester;
-  ui::test::EventGenerator* generator = GetEventGenerator();
 
   // Press search + shift to transition to kFullscreenAllApps.
-  generator->PressKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, ui::EF_SHIFT_DOWN);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, ui::EF_SHIFT_DOWN);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   // Press a letter key, the AppListView should transition to kFullscreenSearch.
-  generator->PressKey(ui::KeyboardCode::VKEY_H, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_H);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
   PopulateAndLaunchSearchBoxTileItem();
@@ -285,14 +284,13 @@
 // fullscreen search launcher is showing.
 TEST_F(AppListAppLaunchedMetricTest, FullscreenSearchLaunchFromShelf) {
   base::HistogramTester histogram_tester;
-  ui::test::EventGenerator* generator = GetEventGenerator();
 
   // Press search + shift to transition to kFullscreenAllApps.
-  generator->PressKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, ui::EF_SHIFT_DOWN);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, ui::EF_SHIFT_DOWN);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   // Press a letter key, the AppListView should transition to kFullscreenSearch.
-  generator->PressKey(ui::KeyboardCode::VKEY_H, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_H);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
   CreateAndClickShelfItem();
@@ -309,8 +307,7 @@
   base::HistogramTester histogram_tester;
 
   // Press search + shift to transition to kFullscreenAllApps.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH,
-                                ui::EF_SHIFT_DOWN);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, ui::EF_SHIFT_DOWN);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   PopulateAndLaunchSuggestionChip();
@@ -327,8 +324,7 @@
   base::HistogramTester histogram_tester;
 
   // Press search + shift to transition to kFullscreenAllApps.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH,
-                                ui::EF_SHIFT_DOWN);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, ui::EF_SHIFT_DOWN);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   PopulateAndLaunchAppInGrid();
@@ -345,8 +341,7 @@
   base::HistogramTester histogram_tester;
 
   // Press search + shift to transition to kFullscreenAllApps.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH,
-                                ui::EF_SHIFT_DOWN);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, ui::EF_SHIFT_DOWN);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   CreateAndClickShelfItem();
@@ -404,11 +399,11 @@
       1 /* Number of times launched from shelf */);
 
   // Open the launcher to peeking.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH);
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // Close launcher back to closed.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_BROWSER_SEARCH);
   GetAppListTestHelper()->CheckState(AppListViewState::kClosed);
 
   ClickShelfItem();
@@ -480,7 +475,7 @@
   Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true);
 
   // Press a letter key, the AppListView should transition to kFullscreenSearch.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_H, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_H);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
@@ -502,7 +497,7 @@
   Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true);
 
   // Press a letter key, the AppListView should transition to kFullscreenSearch.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_H, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_H);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
diff --git a/ash/app_list/app_list_presenter_unittest.cc b/ash/app_list/app_list_presenter_unittest.cc
index d3182c1..c3458c016 100644
--- a/ash/app_list/app_list_presenter_unittest.cc
+++ b/ash/app_list/app_list_presenter_unittest.cc
@@ -541,12 +541,12 @@
   EXPECT_EQ(should_show_zero_state_search(), AppListSearchResultPageVisible());
 
   // Type a character into the textfield and check visibility.
-  generator->PressKey(ui::VKEY_A, 0);
+  PressAndReleaseKey(ui::VKEY_A);
   MaybeRefreshAppListSearchResultPage();
   EXPECT_TRUE(AppListSearchResultPageVisible());
 
   // Delete the character in the textfield and check visibility.
-  generator->PressKey(ui::VKEY_BACK, 0);
+  PressAndReleaseKey(ui::VKEY_BACK);
   MaybeRefreshAppListSearchResultPage();
   EXPECT_EQ(should_show_zero_state_search(), AppListSearchResultPageVisible());
 }
@@ -1794,14 +1794,13 @@
 
   // Enter text in the searchbox, the app list should transition to fullscreen
   // search.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
   // Pressing escape should transition the app list should to fullscreen all
   // apps state.
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 }
@@ -1816,17 +1815,16 @@
 
   // Enter text in the searchbox, this should transition the app list to half
   // state.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   // Empty the searchbox - app list should remain in half state (and show zero
   // state results).
-  generator->PressKey(ui::KeyboardCode::VKEY_BACK, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_BACK);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   // ESC should transition app list to the peeking state.
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 }
 
@@ -1839,14 +1837,13 @@
 
   // Enter text in the searchbox, the app list should transition to fullscreen
   // search.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
   // Pressing the escape key should transition the app list to the fullscreen
   // all apps state.
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 }
@@ -1867,8 +1864,7 @@
 
   // Enter text in the searchbox, the app list should transition to fullscreen
   // search.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
@@ -1884,15 +1880,14 @@
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // Enter text in the search box to transition to half app list.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   // Enable tablet mode and force the app list to transition to the fullscreen
   // equivalent of the current state.
   EnableTabletMode(true);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 }
 
@@ -1942,7 +1937,7 @@
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   // Enter text to transition to |FULLSCREEN_SEARCH|.
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
   // Execute a short downward drag, this should fail to close the app list.
@@ -2199,12 +2194,11 @@
 // searchbox, the searchbox remains active.
 TEST_P(AppListPresenterTest, KeyPressEnablesSearchBox) {
   GetAppListTestHelper()->ShowAndRunLoop(GetPrimaryDisplayId());
-  ui::test::EventGenerator* generator = GetEventGenerator();
   SearchBoxView* search_box_view = GetAppListView()->search_box_view();
   EXPECT_FALSE(search_box_view->is_search_box_active());
 
   // Press any key, the search box should be active.
-  generator->PressKey(ui::VKEY_0, 0);
+  PressAndReleaseKey(ui::VKEY_0);
   EXPECT_TRUE(search_box_view->is_search_box_active());
 
   // Delete the text, the search box should be inactive.
@@ -2226,7 +2220,7 @@
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // Press a key, the AppListView should transition to half.
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
   EXPECT_TRUE(search_box_view->is_search_box_active());
@@ -2280,7 +2274,7 @@
 
   // Press a key, this should activate the searchbox and transition to
   // fullscreen search.
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
   EXPECT_TRUE(search_box_view->is_search_box_active());
@@ -2385,8 +2379,7 @@
                   ->is_first_result());
 
   // Move the selection to the second result.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_DOWN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_DOWN);
   ASSERT_TRUE(result_selection_controller->selected_result());
   EXPECT_TRUE(result_selection_controller->selected_result()->selected());
   EXPECT_FALSE(result_selection_controller->selected_location_details()
@@ -2396,7 +2389,7 @@
   if (test_mouse_event) {
     ClickMouseAt(GetPointOutsideSearchbox());
   } else {
-    generator->GestureTapAt(GetPointOutsideSearchbox());
+    GetEventGenerator()->GestureTapAt(GetPointOutsideSearchbox());
   }
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(search_box_view->is_search_box_active());
@@ -2445,8 +2438,7 @@
                   ->is_first_result());
 
   // Move the selection to the second result.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_DOWN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_DOWN);
   ASSERT_TRUE(result_selection_controller->selected_result());
   EXPECT_TRUE(result_selection_controller->selected_result()->selected());
   EXPECT_FALSE(result_selection_controller->selected_location_details()
@@ -2458,7 +2450,8 @@
   if (test_mouse_event) {
     ClickMouseAt(close_button->GetBoundsInScreen().CenterPoint());
   } else {
-    generator->GestureTapAt(close_button->GetBoundsInScreen().CenterPoint());
+    GetEventGenerator()->GestureTapAt(
+        close_button->GetBoundsInScreen().CenterPoint());
   }
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(search_box_view->is_search_box_active());
@@ -2468,7 +2461,7 @@
   if (test_mouse_event) {
     ClickMouseAt(GetPointInsideSearchbox());
   } else {
-    generator->GestureTapAt(GetPointInsideSearchbox());
+    GetEventGenerator()->GestureTapAt(GetPointInsideSearchbox());
   }
 
   EXPECT_TRUE(search_box_view->is_search_box_active());
@@ -2505,10 +2498,9 @@
 // bounds.
 TEST_P(AppListPresenterTest, TapAndClickOutsideClosesHalfAppList) {
   GetAppListTestHelper()->ShowAndRunLoop(GetPrimaryDisplayId());
-  ui::test::EventGenerator* generator = GetEventGenerator();
 
   // Transition to half app list by entering text.
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
@@ -2517,6 +2509,7 @@
       0, GetAppListView()->GetWidget()->GetWindowBoundsInScreen().y() - 1);
 
   // Clicking/tapping outside the bounds closes the app list.
+  ui::test::EventGenerator* generator = GetEventGenerator();
   if (TestMouseEventParam()) {
     generator->MoveMouseTo(to_point);
     generator->ClickLeftButton();
@@ -2531,29 +2524,28 @@
 TEST_P(AppListPresenterTest, WhitespaceQuery) {
   GetAppListTestHelper()->ShowAndRunLoop(GetPrimaryDisplayId());
   AppListView* view = GetAppListView();
-  ui::test::EventGenerator* generator = GetEventGenerator();
   EXPECT_FALSE(view->search_box_view()->is_search_box_active());
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // Enter a whitespace query, the searchbox should activate (in zero state).
-  generator->PressKey(ui::VKEY_SPACE, 0);
+  PressAndReleaseKey(ui::VKEY_SPACE);
   EXPECT_TRUE(view->search_box_view()->is_search_box_active());
   EXPECT_TRUE(view->search_box_view()->IsSearchBoxTrimmedQueryEmpty());
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
-  generator->PressKey(ui::VKEY_A, 0);
+  PressAndReleaseKey(ui::VKEY_A);
   EXPECT_TRUE(view->search_box_view()->is_search_box_active());
   EXPECT_FALSE(view->search_box_view()->IsSearchBoxTrimmedQueryEmpty());
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   // Delete the non-whitespace character, the Searchbox should not deactivate.
-  generator->PressKey(ui::VKEY_BACK, 0);
+  PressAndReleaseKey(ui::VKEY_BACK);
   EXPECT_TRUE(view->search_box_view()->is_search_box_active());
   EXPECT_TRUE(view->search_box_view()->IsSearchBoxTrimmedQueryEmpty());
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   // Delete the whitespace, the search box remains active, in zero state.
-  generator->PressKey(ui::VKEY_BACK, 0);
+  PressAndReleaseKey(ui::VKEY_BACK);
   EXPECT_TRUE(view->search_box_view()->is_search_box_active());
   EXPECT_TRUE(view->search_box_view()->IsSearchBoxTrimmedQueryEmpty());
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
@@ -2913,7 +2905,7 @@
 
   if (test_fullscreen_search) {
     // Enter a character into the searchbox to transition to FULLSCREEN_SEARCH.
-    GetEventGenerator()->PressKey(ui::VKEY_0, 0);
+    PressAndReleaseKey(ui::VKEY_0);
     GetAppListTestHelper()->WaitUntilIdle();
     GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
   }
@@ -2957,7 +2949,7 @@
   }
 
   EXPECT_TRUE(GetAppListView()->is_in_drag());
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->CheckState(AppListViewState::kClosed);
   EXPECT_FALSE(GetAppListView()->is_in_drag());
 
@@ -2994,7 +2986,7 @@
   }
   EXPECT_TRUE(GetAppListView()->is_in_drag());
 
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
 
   // Update the drag before running the loop that waits for the close animation
   // to finish,
@@ -3040,20 +3032,19 @@
   GetAppListTestHelper()->ShowAndRunLoop(GetPrimaryDisplayId());
 
   // Animate to Half.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   AppListView* view = GetAppListView();
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
   EXPECT_LE(0, view->GetWidget()->GetNativeView()->bounds().y());
 
   // Animate to peeking.
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
   EXPECT_LE(0, view->GetWidget()->GetNativeView()->bounds().y());
 
   // Animate back to Half.
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
   EXPECT_LE(0, view->GetWidget()->GetNativeView()->bounds().y());
 }
@@ -3066,8 +3057,7 @@
       GetPrimaryDisplayId(), gfx::Insets(400, 0, 0, 0)));
 
   // Animate to Half.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   AppListView* view = GetAppListView();
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
@@ -3075,13 +3065,13 @@
             view->GetWidget()->GetNativeView()->bounds().y());
 
   // Animate to peeking.
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
   EXPECT_LE(GetPrimaryDisplay().work_area().y(),
             view->GetWidget()->GetNativeView()->bounds().y());
 
   // Animate back to Half.
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
   EXPECT_LE(GetPrimaryDisplay().work_area().y(),
             view->GetWidget()->GetNativeView()->bounds().y());
@@ -3649,8 +3639,7 @@
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // Enter text in the search box to transition to half app list.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   const AppListConfig& config = GetAppListView()->GetAppListConfig();
@@ -3666,6 +3655,7 @@
   // Drag AppListView upwards half way to the top of the screen, and check the
   // search box padding has been updated to a value half-way between peeking and
   // fullscreen values.
+  ui::test::EventGenerator* generator = GetEventGenerator();
   generator->MoveTouch(half_top);
   generator->PressTouch();
   generator->MoveTouch(
@@ -3765,8 +3755,7 @@
       GetAppListView()->GetBoundsInScreen().top_center();
 
   // Enter text in the search box to transition to half app list.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   const gfx::Point half_top =
@@ -3781,6 +3770,7 @@
   // Drag AppListView upwards half way to the top of the screen, and check the
   // search box padding has been updated to a value half-way between peeking and
   // fullscreen values.
+  ui::test::EventGenerator* generator = GetEventGenerator();
   generator->MoveTouch(half_top);
   generator->PressTouch();
   generator->MoveTouch(
@@ -3812,7 +3802,7 @@
   const gfx::Rect app_list_bounds = GetAppListView()->GetBoundsInScreen();
 
   // Press ESC key - this should move the UI back to the app list.
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->CheckState(AppListViewState::kPeeking);
 
   // The app list position should remain the same.
@@ -3840,7 +3830,7 @@
   EXPECT_EQ(search_box_bounds, search_result_page()->GetBoundsInScreen());
 
   // Enter text in the search box to transition back to search results page.
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kHalf);
 
   search_box_bounds = GetAppListView()->search_box_view()->GetBoundsInScreen();
@@ -3889,8 +3879,7 @@
   const gfx::Rect app_list_bounds = GetAppListView()->GetBoundsInScreen();
 
   // Enter text in the search box to transition to half app list.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
   search_box_bounds = GetAppListView()->search_box_view()->GetBoundsInScreen();
@@ -3910,7 +3899,7 @@
       apps_grid_view()->GetBoundsInScreen();
 
   // Press ESC key - this should move the UI back to the app list.
-  generator->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_ESCAPE);
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
 
   search_box_bounds = GetAppListView()->search_box_view()->GetBoundsInScreen();
@@ -4519,8 +4508,7 @@
 
   // Enter text in the searchbox, the app list should transition to fullscreen
   // search.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_0, ui::EF_NONE);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
@@ -4885,7 +4873,7 @@
 
   // Enter some text in the searchbox, the applist should transition to
   // fullscreen search.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_0, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_0);
   GetAppListTestHelper()->WaitUntilIdle();
   GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
 
diff --git a/ash/app_list/views/app_list_bubble_search_page_unittest.cc b/ash/app_list/views/app_list_bubble_search_page_unittest.cc
index 3d07b627..78c259a 100644
--- a/ash/app_list/views/app_list_bubble_search_page_unittest.cc
+++ b/ash/app_list/views/app_list_bubble_search_page_unittest.cc
@@ -11,7 +11,6 @@
 #include "base/test/scoped_feature_list.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/events/keycodes/keyboard_codes_posix.h"
-#include "ui/events/test/event_generator.h"
 
 namespace ash {
 namespace {
@@ -31,7 +30,7 @@
   test_helper->ShowAppList();
 
   // Press a key to start a search.
-  GetEventGenerator()->PressKey(ui::VKEY_A, ui::EF_NONE);
+  PressAndReleaseKey(ui::VKEY_A, ui::EF_NONE);
 
   // The single result container is visible.
   std::vector<SearchResultContainerView*> result_containers =
diff --git a/ash/app_list/views/apps_container_view.cc b/ash/app_list/views/apps_container_view.cc
index 094de0bd..197fc599 100644
--- a/ash/app_list/views/apps_container_view.cc
+++ b/ash/app_list/views/apps_container_view.cc
@@ -170,8 +170,10 @@
     : contents_view_(contents_view) {
   SetPaintToLayer(ui::LAYER_NOT_DRAWN);
 
-  suggestion_chip_container_view_ = AddChildView(
-      std::make_unique<SuggestionChipContainerView>(contents_view));
+  if (!features::IsAppListBubbleEnabled()) {
+    suggestion_chip_container_view_ = AddChildView(
+        std::make_unique<SuggestionChipContainerView>(contents_view));
+  }
 
   AppListViewDelegate* view_delegate =
       contents_view_->GetAppListMainView()->view_delegate();
@@ -296,19 +298,23 @@
   // being set to wrong value.
   page_switcher_->set_ignore_button_press(is_in_drag);
 
-  suggestion_chip_container_view_->SetVisible(
-      app_list_state == AppListViewState::kFullscreenAllApps ||
-      app_list_state == AppListViewState::kPeeking || is_in_drag);
+  if (suggestion_chip_container_view_) {
+    suggestion_chip_container_view_->SetVisible(
+        app_list_state == AppListViewState::kFullscreenAllApps ||
+        app_list_state == AppListViewState::kPeeking || is_in_drag);
+  }
 }
 
 void AppsContainerView::AnimateOpacity(float current_progress,
                                        AppListViewState target_view_state,
                                        const OpacityAnimator& animator) {
-  const bool target_suggestion_chip_visibility =
-      target_view_state == AppListViewState::kFullscreenAllApps ||
-      target_view_state == AppListViewState::kPeeking;
-  animator.Run(suggestion_chip_container_view_,
-               target_suggestion_chip_visibility);
+  if (suggestion_chip_container_view_) {
+    const bool target_suggestion_chip_visibility =
+        target_view_state == AppListViewState::kFullscreenAllApps ||
+        target_view_state == AppListViewState::kPeeking;
+    animator.Run(suggestion_chip_container_view_,
+                 target_suggestion_chip_visibility);
+  }
 
   if (!apps_grid_view_->layer()->GetAnimator()->IsAnimatingProperty(
           ui::LayerAnimationElement::OPACITY)) {
@@ -340,25 +346,25 @@
       AppListView::GetTransitionProgressForState(target_view_state));
   const int offset = current_suggestion_chip_y - target_suggestion_chip_y;
 
-  suggestion_chip_container_view_->SetY(target_suggestion_chip_y);
-  animator.Run(offset, suggestion_chip_container_view_->layer());
+  if (suggestion_chip_container_view_) {
+    suggestion_chip_container_view_->SetY(target_suggestion_chip_y);
+    animator.Run(offset, suggestion_chip_container_view_->layer());
+  }
 
   if (features::IsLauncherAppSortEnabled()) {
     sort_button_container_->SetY(target_suggestion_chip_y);
     animator.Run(offset, sort_button_container_->layer());
   }
 
-  apps_grid_view_->SetY(suggestion_chip_container_view_->y() +
-                        chip_grid_y_distance_);
+  apps_grid_view_->SetY(target_suggestion_chip_y + chip_grid_y_distance_);
   animator.Run(offset, apps_grid_view_->layer());
-
-  page_switcher_->SetY(suggestion_chip_container_view_->y() +
-                       chip_grid_y_distance_);
+  page_switcher_->SetY(target_suggestion_chip_y + chip_grid_y_distance_);
   animator.Run(offset, page_switcher_->layer());
 }
 
 void AppsContainerView::OnTabletModeChanged(bool started) {
-  suggestion_chip_container_view_->OnTabletModeChanged(started);
+  if (suggestion_chip_container_view_)
+    suggestion_chip_container_view_->OnTabletModeChanged(started);
   apps_grid_view_->OnTabletModeChanged(started);
   app_list_folder_view_->OnTabletModeChanged(started);
   page_switcher_->set_is_tablet_mode(started);
@@ -374,11 +380,16 @@
   chip_container_rect.set_y(GetExpectedSuggestionChipY(
       contents_view_->app_list_view()->GetAppListTransitionProgress(
           AppListView::kProgressFlagNone)));
-  chip_container_rect.set_height(
-      GetAppListConfig().suggestion_chip_container_height());
-  chip_container_rect.Inset(GetAppListConfig().GetIdealHorizontalMargin(rect),
-                            0);
-  suggestion_chip_container_view_->SetBoundsRect(chip_container_rect);
+
+  if (suggestion_chip_container_view_) {
+    chip_container_rect.set_height(
+        GetAppListConfig().suggestion_chip_container_height());
+    chip_container_rect.Inset(GetAppListConfig().GetIdealHorizontalMargin(rect),
+                              0);
+    suggestion_chip_container_view_->SetBoundsRect(chip_container_rect);
+  } else {
+    chip_container_rect.set_height(0);
+  }
 
   // Set bounding box for the folder view - the folder may overlap with
   // suggestion chips, but not the search box.
@@ -417,8 +428,10 @@
   // Record the distance of y position between suggestion chip container
   // and apps grid view to avoid duplicate calculation of apps grid view's
   // y position during dragging.
-  chip_grid_y_distance_ =
-      apps_grid_view_->y() - suggestion_chip_container_view_->y();
+  if (suggestion_chip_container_view_) {
+    chip_grid_y_distance_ =
+        apps_grid_view_->y() - suggestion_chip_container_view_->y();
+  }
 
   // Layout page switcher.
   const int page_switcher_width = page_switcher_->GetPreferredSize().width();
@@ -428,15 +441,15 @@
   page_switcher_->SetBoundsRect(page_switcher_bounds);
 
   if (features::IsLauncherAppSortEnabled()) {
-    // Align `sort_button_container_` with `suggestion_chip_container_view_`
-    // horizontally; align `sort_button_container_` with `page_switcher_bounds`
-    // vertically on the right edge.
+    // Align `sort_button_container_` with the bottom of the
+    // `suggestion_chip_container_view_` horizontally; align
+    // `sort_button_container_` with `page_switcher_bounds` vertically on the
+    // right edge.
     const int sort_button_container_width =
         sort_button_container_->GetPreferredSize().width();
     gfx::Rect sort_button_container_rect(
         page_switcher_bounds.right() - sort_button_container_width,
-        suggestion_chip_container_view_->y(), sort_button_container_width,
-        chip_container_rect.height());
+        chip_container_rect.bottom(), sort_button_container_width, 20);
     sort_button_container_->SetBoundsRect(sort_button_container_rect);
   }
 
@@ -686,6 +699,9 @@
 }
 
 void AppsContainerView::UpdateSuggestionChips() {
+  if (!suggestion_chip_container_view_)
+    return;
+
   suggestion_chip_container_view_->SetResults(
       contents_view_->GetAppListMainView()
           ->view_delegate()
@@ -694,6 +710,9 @@
 }
 
 base::ScopedClosureRunner AppsContainerView::DisableSuggestionChipsBlur() {
+  if (!suggestion_chip_container_view_)
+    return base::ScopedClosureRunner(base::DoNothing());
+
   ++suggestion_chips_blur_disabler_count_;
 
   if (suggestion_chips_blur_disabler_count_ == 1)
@@ -772,37 +791,42 @@
       1.0f);
   page_switcher_->layer()->SetOpacity(restore_opacity ? 1.0f : opacity);
 
-  // Changes the opacity of suggestion chips between 0 and 1 when app list
-  // transition progress changes between |kSuggestionChipOpacityStartProgress|
-  // and |kSuggestionChipOpacityEndProgress|.
-  float chips_opacity =
-      base::clamp((progress - kSuggestionChipOpacityStartProgress) /
-                      (kSuggestionChipOpacityEndProgress -
-                       kSuggestionChipOpacityStartProgress),
-                  0.0f, 1.0f);
-  suggestion_chip_container_view_->layer()->SetOpacity(
-      restore_opacity ? 1.0 : chips_opacity);
+  if (suggestion_chip_container_view_) {
+    // Changes the opacity of suggestion chips between 0 and 1 when app list
+    // transition progress changes between |kSuggestionChipOpacityStartProgress|
+    // and |kSuggestionChipOpacityEndProgress|.
+    float chips_opacity =
+        base::clamp((progress - kSuggestionChipOpacityStartProgress) /
+                        (kSuggestionChipOpacityEndProgress -
+                         kSuggestionChipOpacityStartProgress),
+                    0.0f, 1.0f);
+    suggestion_chip_container_view_->layer()->SetOpacity(
+        restore_opacity ? 1.0 : chips_opacity);
+  }
 }
 
 void AppsContainerView::UpdateContentsYPosition(float progress) {
-  suggestion_chip_container_view_->SetY(GetExpectedSuggestionChipY(progress));
-
-  apps_grid_view_->SetY(suggestion_chip_container_view_->y() +
-                        chip_grid_y_distance_);
-  page_switcher_->SetY(suggestion_chip_container_view_->y() +
-                       chip_grid_y_distance_);
+  const int current_suggestion_chip_y = GetExpectedSuggestionChipY(progress);
+  if (suggestion_chip_container_view_)
+    suggestion_chip_container_view_->SetY(current_suggestion_chip_y);
+  apps_grid_view_->SetY(current_suggestion_chip_y + chip_grid_y_distance_);
+  page_switcher_->SetY(current_suggestion_chip_y + chip_grid_y_distance_);
 
   // If app list is in drag, reset transforms that might started animating in
   // AnimateYPosition().
   if (contents_view_->app_list_view()->is_in_drag()) {
-    suggestion_chip_container_view_->layer()->SetTransform(gfx::Transform());
+    if (suggestion_chip_container_view_)
+      suggestion_chip_container_view_->layer()->SetTransform(gfx::Transform());
     apps_grid_view_->layer()->SetTransform(gfx::Transform());
     page_switcher_->layer()->SetTransform(gfx::Transform());
   }
 }
 
 void AppsContainerView::DisableFocusForShowingActiveFolder(bool disabled) {
-  suggestion_chip_container_view_->DisableFocusForShowingActiveFolder(disabled);
+  if (suggestion_chip_container_view_) {
+    suggestion_chip_container_view_->DisableFocusForShowingActiveFolder(
+        disabled);
+  }
   apps_grid_view_->DisableFocusForShowingActiveFolder(disabled);
 
   // Ignore the page switcher in accessibility tree so that buttons inside it
@@ -816,6 +840,10 @@
   const gfx::Rect search_box_bounds =
       contents_view_->GetSearchBoxExpectedBoundsForProgress(
           AppListState::kStateApps, progress);
+
+  if (!suggestion_chip_container_view_)
+    return search_box_bounds.bottom();
+
   return search_box_bounds.bottom() +
          GetAppListConfig().suggestion_chip_container_top_margin();
 }
diff --git a/ash/app_list/views/apps_grid_view.cc b/ash/app_list/views/apps_grid_view.cc
index 345d28b..06dbb1e 100644
--- a/ash/app_list/views/apps_grid_view.cc
+++ b/ash/app_list/views/apps_grid_view.cc
@@ -726,6 +726,7 @@
   BeginHideCurrentGhostImageView();
   MaybeStopPageFlip();
   StopAutoScroll();
+  SetFocusAfterEndDrag();  // Maybe focus the search box.
 
   AnimateDragIconToTargetPosition(reparented_into_folder, released_drag_view,
                                   drag_item, folder_item_view);
@@ -1763,6 +1764,7 @@
   BeginHideCurrentGhostImageView();
   MaybeStopPageFlip();
   StopAutoScroll();
+  SetFocusAfterEndDrag();  // Maybe focus the search box.
 
   AnimateDragIconToTargetPosition(
       /*dropping_into_folder=*/cancel_reparent || folder_item_view,
diff --git a/ash/app_list/views/apps_grid_view.h b/ash/app_list/views/apps_grid_view.h
index 7ff0aa07..e055f91 100644
--- a/ash/app_list/views/apps_grid_view.h
+++ b/ash/app_list/views/apps_grid_view.h
@@ -371,6 +371,10 @@
   // Stops auto-scroll (by stopping its timer) if the subclass supports it.
   virtual void StopAutoScroll() = 0;
 
+  // Sets the focus to the correct view when a drag ends. Focus is on the app
+  // list item view during the drag.
+  virtual void SetFocusAfterEndDrag() = 0;
+
   // Calculates the item views' bounds for non-folder.
   virtual void CalculateIdealBounds();
 
diff --git a/ash/app_list/views/paged_apps_grid_view.cc b/ash/app_list/views/paged_apps_grid_view.cc
index 641535a7..c0e76f2 100644
--- a/ash/app_list/views/paged_apps_grid_view.cc
+++ b/ash/app_list/views/paged_apps_grid_view.cc
@@ -563,6 +563,11 @@
   return false;
 }
 
+void PagedAppsGridView::SetFocusAfterEndDrag() {
+  // Leave focus on the dragged item. Pressing tab or an arrow key will
+  // highlight that item.
+}
+
 void PagedAppsGridView::RecordAppMovingTypeMetrics(AppListAppMovingType type) {
   UMA_HISTOGRAM_ENUMERATION("Apps.AppListAppMovingType", type,
                             kMaxAppListAppMovingType);
diff --git a/ash/app_list/views/paged_apps_grid_view.h b/ash/app_list/views/paged_apps_grid_view.h
index 55af459..2a47d6e 100644
--- a/ash/app_list/views/paged_apps_grid_view.h
+++ b/ash/app_list/views/paged_apps_grid_view.h
@@ -82,6 +82,7 @@
   void MaybeStopPageFlip() override;
   bool MaybeAutoScroll() override;
   void StopAutoScroll() override {}
+  void SetFocusAfterEndDrag() override;
   void RecordAppMovingTypeMetrics(AppListAppMovingType type) override;
 
   // AppListItemView::GridDelegate:
diff --git a/ash/app_list/views/scrollable_apps_grid_view.cc b/ash/app_list/views/scrollable_apps_grid_view.cc
index a0a63e7..ac1559c 100644
--- a/ash/app_list/views/scrollable_apps_grid_view.cc
+++ b/ash/app_list/views/scrollable_apps_grid_view.cc
@@ -19,6 +19,7 @@
 #include "ui/base/metadata/metadata_impl_macros.h"
 #include "ui/views/animation/bounds_animator.h"
 #include "ui/views/controls/scroll_view.h"
+#include "ui/views/focus/focus_manager.h"
 #include "ui/views/view_model_utils.h"
 
 namespace ash {
@@ -243,6 +244,16 @@
   return visible_rect.bottom() < scroll_view_->contents()->height();
 }
 
+void ScrollableAppsGridView::SetFocusAfterEndDrag() {
+  auto* focus_manager = GetFocusManager();
+  if (!focus_manager)  // Does not exist during widget close.
+    return;
+
+  // Focus the first focusable view in the widget (the search box).
+  focus_manager->ClearFocus();
+  focus_manager->AdvanceFocus(/*reverse=*/false);
+}
+
 void ScrollableAppsGridView::RecordAppMovingTypeMetrics(
     AppListAppMovingType type) {
   UMA_HISTOGRAM_ENUMERATION("Apps.AppListBubbleAppMovingType", type,
diff --git a/ash/app_list/views/scrollable_apps_grid_view.h b/ash/app_list/views/scrollable_apps_grid_view.h
index e2a4b3f..cc1858f 100644
--- a/ash/app_list/views/scrollable_apps_grid_view.h
+++ b/ash/app_list/views/scrollable_apps_grid_view.h
@@ -50,6 +50,7 @@
   void CalculateIdealBounds() override;
   bool MaybeAutoScroll() override;
   void StopAutoScroll() override;
+  void SetFocusAfterEndDrag() override;
   void RecordAppMovingTypeMetrics(AppListAppMovingType type) override;
 
   // AppListItemView::GridDelegate:
diff --git a/ash/app_list/views/scrollable_apps_grid_view_unittest.cc b/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
index caf6845..dc693870 100644
--- a/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
+++ b/ash/app_list/views/scrollable_apps_grid_view_unittest.cc
@@ -19,6 +19,7 @@
 #include "ash/app_list/test_app_list_client.h"
 #include "ash/app_list/views/app_list_item_view.h"
 #include "ash/app_list/views/apps_grid_view_test_api.h"
+#include "ash/app_list/views/search_box_view.h"
 #include "ash/constants/ash_features.h"
 #include "ash/shell.h"
 #include "ash/test/ash_test_base.h"
@@ -27,6 +28,7 @@
 #include "base/test/scoped_feature_list.h"
 #include "base/test/task_environment.h"
 #include "ui/views/controls/scroll_view.h"
+#include "ui/views/controls/textfield/textfield.h"
 
 namespace ash {
 namespace {
@@ -88,12 +90,13 @@
     scroll_view_ = apps_grid_view_->scroll_view_for_test();
   }
 
-  void StartDragOnItemViewAt(int item_index) {
+  AppListItemView* StartDragOnItemViewAt(int item_index) {
     AppListItemView* item = apps_grid_view_->GetItemViewAt(item_index);
     auto* generator = GetEventGenerator();
     generator->MoveMouseTo(item->GetBoundsInScreen().CenterPoint());
     generator->PressLeftButton();
     item->FireMouseDragTimerForTest();
+    return item;
   }
 
   ScrollableAppsGridView* GetScrollableAppsGridView() {
@@ -165,6 +168,25 @@
   EXPECT_EQ("id1", item_list->item_at(1)->id());
 }
 
+TEST_F(ScrollableAppsGridViewTest, SearchBoxHasFocusAfterDrag) {
+  PopulateApps(2);
+  ShowAppList();
+
+  // Drag the first item to the right.
+  AppListItemView* item = StartDragOnItemViewAt(0);
+  GetEventGenerator()->MoveMouseBy(250, 0);
+  GetEventGenerator()->ReleaseLeftButton();
+
+  // The item does not have focus.
+  EXPECT_FALSE(item->HasFocus());
+  EXPECT_FALSE(apps_grid_view_->IsSelectedView(item));
+
+  // The search box has focus.
+  auto* search_box_view = GetAppListTestHelper()->GetBubbleSearchBoxView();
+  EXPECT_TRUE(search_box_view->search_box()->HasFocus());
+  EXPECT_TRUE(search_box_view->is_search_box_active());
+}
+
 TEST_F(ScrollableAppsGridViewTest, ItemIndicesForMove) {
   AddAppListItem("aaa");  // App list item index 0, visual index 0,0.
   AddPageBreakItem();     // Not visible.
diff --git a/ash/assistant/ui/assistant_web_container_view_unittest.cc b/ash/assistant/ui/assistant_web_container_view_unittest.cc
index a06aa0e0..5064a3f4 100644
--- a/ash/assistant/ui/assistant_web_container_view_unittest.cc
+++ b/ash/assistant/ui/assistant_web_container_view_unittest.cc
@@ -13,7 +13,6 @@
 #include "base/macros.h"
 #include "base/run_loop.h"
 #include "chromeos/ui/frame/default_frame_header.h"
-#include "ui/events/test/event_generator.h"
 #include "ui/views/window/frame_caption_button.h"
 
 namespace ash {
@@ -111,8 +110,7 @@
   ASSERT_TRUE(view());
 
   // Close Assistant Settings UI by key event.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::VKEY_W, ui::EF_CONTROL_DOWN);
+  PressAndReleaseKey(ui::VKEY_W, ui::EF_CONTROL_DOWN);
   base::RunLoop().RunUntilIdle();
   ASSERT_FALSE(view());
 }
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc
index d96290f..69ea389 100644
--- a/ash/constants/ash_features.cc
+++ b/ash/constants/ash_features.cc
@@ -846,10 +846,10 @@
 const base::Feature kPreferConstantFrameRate{"PreferConstantFrameRate",
                                              base::FEATURE_DISABLED_BY_DEFAULT};
 
-// Controls whether to enable projector.
+// Controls whether to enable Projector.
 const base::Feature kProjector{"Projector", base::FEATURE_DISABLED_BY_DEFAULT};
 
-// Controls whether to enable projector in status tray.
+// Controls whether to enable Projector in status tray.
 const base::Feature kProjectorFeaturePod{"ProjectorFeaturePod",
                                          base::FEATURE_DISABLED_BY_DEFAULT};
 
diff --git a/ash/constants/ash_pref_names.cc b/ash/constants/ash_pref_names.cc
index 1c2f92c..fb14363 100644
--- a/ash/constants/ash_pref_names.cc
+++ b/ash/constants/ash_pref_names.cc
@@ -304,6 +304,10 @@
 // Locales match kAccessibilityDictationLocale and are in BCP-47 format.
 const char kAccessibilityDictationLocaleOfflineNudge[] =
     "settings.a11y.dictation_locale_offline_nudge";
+// A boolean pref which determines whether the enhanced network voices feature
+// in select-to-speak is allowed. This pref can only be set by policy.
+const char kAccessibilityEnhancedNetworkVoicesInSelectToSpeakAllowed[] =
+    "settings.a11y.enhanced_network_voices_in_select_to_speak_allowed";
 // A boolean pref which determines whether the accessibility menu shows
 // regardless of the state of a11y features.
 const char kShouldAlwaysShowAccessibilityMenu[] = "settings.a11y.enable_menu";
diff --git a/ash/constants/ash_pref_names.h b/ash/constants/ash_pref_names.h
index 2b5131c..9d5840f2 100644
--- a/ash/constants/ash_pref_names.h
+++ b/ash/constants/ash_pref_names.h
@@ -151,6 +151,8 @@
 COMPONENT_EXPORT(ASH_CONSTANTS)
 extern const char kAccessibilityDictationLocaleOfflineNudge[];
 COMPONENT_EXPORT(ASH_CONSTANTS)
+extern const char kAccessibilityEnhancedNetworkVoicesInSelectToSpeakAllowed[];
+COMPONENT_EXPORT(ASH_CONSTANTS)
 extern const char kShouldAlwaysShowAccessibilityMenu[];
 
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kAltTabPerDesk[];
diff --git a/ash/display/touch_calibrator_controller_unittest.cc b/ash/display/touch_calibrator_controller_unittest.cc
index f68a981..bb771ffb 100644
--- a/ash/display/touch_calibrator_controller_unittest.cc
+++ b/ash/display/touch_calibrator_controller_unittest.cc
@@ -203,9 +203,8 @@
   TouchCalibratorController touch_calibrator_controller;
   StartCalibrationChecks(&touch_calibrator_controller, touch_display);
 
-  ui::test::EventGenerator* eg = GetEventGenerator();
   EXPECT_TRUE(touch_calibrator_controller.IsCalibrating());
-  eg->PressKey(ui::VKEY_ESCAPE, ui::EF_NONE);
+  PressAndReleaseKey(ui::VKEY_ESCAPE);
   EXPECT_FALSE(touch_calibrator_controller.IsCalibrating());
 }
 
diff --git a/ash/drag_drop/drag_drop_controller.cc b/ash/drag_drop/drag_drop_controller.cc
index d22648d7..a774a67 100644
--- a/ash/drag_drop/drag_drop_controller.cc
+++ b/ash/drag_drop/drag_drop_controller.cc
@@ -380,17 +380,12 @@
   if (!IsDragDropInProgress())
     return;
 
-  // No one else should handle gesture events when in drag drop. Note that it is
-  // not enough to just set ER_HANDLED because the dispatcher only stops
-  // dispatching when the event has ER_CONSUMED. If we just set ER_HANDLED, the
-  // event will still be dispatched to other handlers and we depend on
-  // individual handlers' kindness to not touch events marked ER_HANDLED (not
-  // all handlers are so kind and may cause bugs like crbug.com/236493).
-  event->StopPropagation();
-
-  // If current drag session was not started by touch, dont process this event.
-  if (current_drag_event_source_ != ui::mojom::DragEventSource::kTouch)
+  // If current drag session was not started by touch, dont process this event
+  // but consume it so it does not interfere with current drag session.
+  if (current_drag_event_source_ != ui::mojom::DragEventSource::kTouch) {
+    event->StopPropagation();
     return;
+  }
 
   // Apply kTouchDragImageVerticalOffset to the location, if it is not a tab
   // drag/drop.
@@ -411,7 +406,7 @@
       drag_drop_tracker_->GetTarget(touch_offset_event);
   if (!translated_target) {
     DragCancel();
-    event->SetHandled();
+    event->StopPropagation();
     return;
   }
   std::unique_ptr<ui::LocatedEvent> translated_event(
@@ -440,7 +435,11 @@
     default:
       break;
   }
-  event->SetHandled();
+
+  if (toplevel_window_drag_delegate_)
+    toplevel_window_drag_delegate_->OnToplevelWindowDragEvent(event);
+
+  event->StopPropagation();
 }
 
 void DragDropController::OnWindowDestroyed(aura::Window* window) {
diff --git a/ash/drag_drop/drag_drop_controller_unittest.cc b/ash/drag_drop/drag_drop_controller_unittest.cc
index 060d3b7e4..c8ee5297 100644
--- a/ash/drag_drop/drag_drop_controller_unittest.cc
+++ b/ash/drag_drop/drag_drop_controller_unittest.cc
@@ -1526,6 +1526,48 @@
   EXPECT_EQ(0, delegate.events_forwarded());
 }
 
+TEST_F(DragDropControllerTest, ToplevelWindowDragDelegateWithTouch2) {
+  std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithDelegate(
+      aura::test::TestWindowDelegate::CreateSelfDestroyingDelegate(), -1,
+      gfx::Rect(0, 0, 100, 100)));
+
+  // Emulate a full drag and drop flow with touch and verify that toplevel
+  // window drag delegate gets notified about the events as expected.
+  TestToplevelWindowDragDelegate delegate;
+  drag_drop_controller_->set_toplevel_window_drag_delegate(&delegate);
+
+  ui::test::EventGenerator generator(window->GetRootWindow(), window.get());
+  generator.PressTouch();
+  auto point = gfx::Point(5, 5);
+
+  auto data(std::make_unique<ui::OSExchangeData>());
+  drag_drop_controller_->StartDragAndDrop(
+      std::move(data), window->GetRootWindow(), window.get(), point,
+      ui::DragDropTypes::DRAG_MOVE, ui::mojom::DragEventSource::kTouch);
+
+  EXPECT_EQ(TestToplevelWindowDragDelegate::State::kDragStartedInvoked,
+            delegate.state());
+  EXPECT_EQ(ui::mojom::DragEventSource::kTouch, delegate.source());
+  EXPECT_TRUE(delegate.current_location().has_value());
+  EXPECT_EQ(gfx::PointF(point), *delegate.current_location());
+  EXPECT_EQ(0, delegate.events_forwarded());
+
+  gfx::Point gesture_location = point;
+  int num_drags = 5;
+  for (int i = 0; i < num_drags; ++i) {
+    gesture_location.Offset(1, 1);
+    DispatchGesture(ui::ET_GESTURE_SCROLL_UPDATE, gesture_location);
+    EXPECT_EQ(i + 1, delegate.events_forwarded());
+  }
+
+  DispatchGesture(ui::ET_GESTURE_SCROLL_END, gesture_location);
+  EXPECT_EQ(TestToplevelWindowDragDelegate::State::kDragDroppedInvoked,
+            delegate.state());
+  EXPECT_TRUE(delegate.current_location().has_value());
+  EXPECT_EQ(gfx::PointF(10, 10), *delegate.current_location());
+  EXPECT_EQ(6, delegate.events_forwarded());
+}
+
 namespace {
 
 class MockDataTransferPolicyController
diff --git a/ash/fast_ink/fast_ink_host.cc b/ash/fast_ink/fast_ink_host.cc
index a66bb5be..e4734c2 100644
--- a/ash/fast_ink/fast_ink_host.cc
+++ b/ash/fast_ink/fast_ink_host.cc
@@ -382,7 +382,8 @@
 
   viz::TransferableResource transferable_resource;
   transferable_resource.id = id_generator_.GenerateNextId();
-  transferable_resource.format = viz::RGBA_8888;
+  transferable_resource.format =
+      SK_B32_SHIFT ? viz::RGBA_8888 : viz::BGRA_8888;
   transferable_resource.filter = GL_LINEAR;
   transferable_resource.size = buffer_size_;
   transferable_resource.mailbox_holder = gpu::MailboxHolder(
diff --git a/ash/focus_cycler_unittest.cc b/ash/focus_cycler_unittest.cc
index ebdfaba2..17bab8f 100644
--- a/ash/focus_cycler_unittest.cc
+++ b/ash/focus_cycler_unittest.cc
@@ -365,8 +365,7 @@
 
   // Pressing "Escape" while on the status area should
   // deactivate it, and activate the browser window.
-  ui::test::EventGenerator* event_generator = GetEventGenerator();
-  event_generator->PressKey(ui::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::VKEY_ESCAPE);
   EXPECT_TRUE(wm::IsActiveWindow(browser_window));
   EXPECT_EQ(focus_manager->GetFocusedView(), view1);
 
@@ -374,7 +373,7 @@
   // Focus the navigation widget directly because the shelf has no apps here.
   GetPrimaryShelf()->shelf_focus_cycler()->FocusNavigation(false /* last */);
   EXPECT_TRUE(GetPrimaryShelf()->navigation_widget()->IsActive());
-  event_generator->PressKey(ui::VKEY_ESCAPE, 0);
+  PressAndReleaseKey(ui::VKEY_ESCAPE);
   EXPECT_TRUE(wm::IsActiveWindow(browser_window));
   EXPECT_EQ(focus_manager->GetFocusedView(), view1);
 }
diff --git a/ash/login/ui/lock_contents_view_unittest.cc b/ash/login/ui/lock_contents_view_unittest.cc
index 431d0b7..6aaf27f 100644
--- a/ash/login/ui/lock_contents_view_unittest.cc
+++ b/ash/login/ui/lock_contents_view_unittest.cc
@@ -748,13 +748,13 @@
   EXPECT_FALSE(test_api.system_info()->GetVisible());
 
   // Alt-V shows hidden system info.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_V, ui::EF_ALT_DOWN);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_V, ui::EF_ALT_DOWN);
   EXPECT_TRUE(test_api.system_info()->GetVisible());
   // System info is not empty, ie, it is actually being displayed.
   EXPECT_FALSE(test_api.system_info()->bounds().IsEmpty());
 
   // Alt-V again hides the system info.
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_V, ui::EF_ALT_DOWN);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_V, ui::EF_ALT_DOWN);
   EXPECT_FALSE(test_api.system_info()->GetVisible());
 }
 
@@ -1062,16 +1062,15 @@
                            users()[0].basic_user_info.account_id, _, false, _));
 
   // Submit password.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
 
   EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
 
   // The error bubble is expected to close on a user action - e.g. if they start
   // typing the password again.
-  generator->PressKey(ui::KeyboardCode::VKEY_B, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_B);
   EXPECT_FALSE(test_api.auth_error_bubble()->GetVisible());
 }
 
@@ -1097,9 +1096,8 @@
   EXPECT_FALSE(test_api.auth_error_bubble()->GetVisible());
 
   // Submit password.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
 
   // Auth Error button should be visible as an incorrect password was given.
@@ -1115,6 +1113,7 @@
 
   // Move mouse to AuthError's ShowAccountAccessHelp button and click it.
   // Should result in ShowAccountAccessHelpApp().
+  ui::test::EventGenerator* generator = GetEventGenerator();
   generator->MoveMouseTo(button->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
 
@@ -1136,9 +1135,8 @@
   client->set_authenticate_user_callback_result(false);
 
   auto submit_password = [&]() {
-    ui::test::EventGenerator* generator = GetEventGenerator();
-    generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-    generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
     base::RunLoop().RunUntilIdle();
   };
 
@@ -1162,9 +1160,8 @@
   client->set_authenticate_user_callback_result(false);
 
   auto submit_password = [&]() {
-    ui::test::EventGenerator* generator = GetEventGenerator();
-    generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-    generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
     base::RunLoop().RunUntilIdle();
   };
 
@@ -1215,7 +1212,7 @@
   EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Verify that the bubble is not hidden if the user starts typing.
-  generator->PressKey(ui::KeyboardCode::VKEY_B, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_B);
   EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Switching to the user that doesn't have previously used detachable base
@@ -1252,8 +1249,8 @@
 
   // Submit password.
   primary_test_api.password_view()->RequestFocus();
-  generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
 
   EXPECT_EQ("5678",
@@ -1291,7 +1288,7 @@
   EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Verify that the bubble is not hidden if the user starts typing.
-  generator->PressKey(ui::KeyboardCode::VKEY_B, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_B);
   EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Switching to another user should not hide the error bubble.
@@ -1313,8 +1310,8 @@
 
   // Submit password.
   secondary_test_api.password_view()->RequestFocus();
-  generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
 
   EXPECT_EQ("", detachable_base_model->GetLastUsedBase(kFirstUserAccountId));
@@ -1381,7 +1378,6 @@
   SetWidget(CreateWidgetWithContent(contents));
 
   LockContentsView::TestApi test_api(contents);
-  ui::test::EventGenerator* generator = GetEventGenerator();
 
   EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 
@@ -1392,8 +1388,8 @@
               AuthenticateUserWithPasswordOrPin_(kUserAccountId, _, false, _));
 
   // Submit password.
-  generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
 
   EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
@@ -1432,7 +1428,6 @@
       DetachableBasePairingStatus::kAuthenticated, "1234");
 
   LockContentsView::TestApi test_api(contents);
-  ui::test::EventGenerator* generator = GetEventGenerator();
 
   EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 
@@ -1455,8 +1450,8 @@
   LoginAuthUserView::TestApi(test_api.primary_big_view()->auth_user())
       .password_view()
       ->RequestFocus();
-  generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
 
   EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
@@ -1464,7 +1459,7 @@
 
   // User action, like pressing a key should close the auth error bubble, but
   // not the detachable base error bubble.
-  generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
 
   EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
   EXPECT_FALSE(test_api.auth_error_bubble()->GetVisible());
@@ -1636,12 +1631,11 @@
   LoginAuthUserView::TestApi(big_view->auth_user())
       .password_view()
       ->RequestFocus();
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_1, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_1, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_1, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_1, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_1, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_1, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_1, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_1, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN, 0);
   base::RunLoop().RunUntilIdle();
 }
 
@@ -1850,7 +1844,7 @@
     // user, which shows and focuses the password.
     test_api.user_view()->RequestFocus();
     EXPECT_FALSE(HasFocusInAnyChildView(password));
-    GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
     EXPECT_TRUE(HasFocusInAnyChildView(password));
   };
 
@@ -1879,10 +1873,10 @@
 
     // Activate |auth_target|.
     auth_user_test_api.user_view()->RequestFocus();
-    GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
     // Move focus off of |auth_target|'s password.
     ASSERT_TRUE(HasFocusInAnyChildView(password));
-    GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_TAB, 0);
+    PressAndReleaseKey(ui::KeyboardCode::VKEY_TAB);
     EXPECT_FALSE(HasFocusInAnyChildView(password));
 
     // Click the user view, verify the password was focused.
@@ -1923,7 +1917,7 @@
   // user view, verify the password now has focus.
   user_view->RequestFocus();
   EXPECT_FALSE(HasFocusInAnyChildView(password_view));
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   EXPECT_TRUE(HasFocusInAnyChildView(password_view));
 }
 
@@ -1953,7 +1947,7 @@
   // Swapping to another user should still not focus password view.
   LoginUserView* first_list_user = test_api.users_list()->user_view_at(0);
   first_list_user->RequestFocus();
-  GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   EXPECT_FALSE(
       login_views_utils::HasFocusInAnyChildView(primary_password_view));
 }
@@ -1981,7 +1975,7 @@
 
   // Open the expanded public session view.
   ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
 
   EXPECT_FALSE(main_view->GetVisible());
   EXPECT_TRUE(expanded_view->GetVisible());
@@ -2397,11 +2391,10 @@
       LockContentsView::TestApi(lock_contents).primary_big_view();
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_big_view));
 
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::VKEY_RIGHT, 0);
+  PressAndReleaseKey(ui::VKEY_RIGHT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_big_view));
 
-  generator->PressKey(ui::VKEY_LEFT, 0);
+  PressAndReleaseKey(ui::VKEY_LEFT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_big_view));
 }
 
@@ -2421,17 +2414,16 @@
   ASSERT_NE(nullptr, secondary_user_view);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_password_view));
 
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::VKEY_RIGHT, 0);
+  PressAndReleaseKey(ui::VKEY_RIGHT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(secondary_user_view));
 
-  generator->PressKey(ui::VKEY_RIGHT, 0);
+  PressAndReleaseKey(ui::VKEY_RIGHT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_password_view));
 
-  generator->PressKey(ui::VKEY_LEFT, 0);
+  PressAndReleaseKey(ui::VKEY_LEFT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(secondary_user_view));
 
-  generator->PressKey(ui::VKEY_LEFT, 0);
+  PressAndReleaseKey(ui::VKEY_LEFT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_password_view));
 }
 
@@ -2448,23 +2440,22 @@
   LoginUserView* second_list_user = lock_contents.users_list()->user_view_at(1);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_password_view));
 
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::VKEY_RIGHT, 0);
+  PressAndReleaseKey(ui::VKEY_RIGHT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(first_list_user));
 
-  generator->PressKey(ui::VKEY_RIGHT, 0);
+  PressAndReleaseKey(ui::VKEY_RIGHT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(second_list_user));
 
-  generator->PressKey(ui::VKEY_RIGHT, 0);
+  PressAndReleaseKey(ui::VKEY_RIGHT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_password_view));
 
-  generator->PressKey(ui::VKEY_LEFT, 0);
+  PressAndReleaseKey(ui::VKEY_LEFT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(second_list_user));
 
-  generator->PressKey(ui::VKEY_LEFT, 0);
+  PressAndReleaseKey(ui::VKEY_LEFT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(first_list_user));
 
-  generator->PressKey(ui::VKEY_LEFT, 0);
+  PressAndReleaseKey(ui::VKEY_LEFT);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_password_view));
 }
 
@@ -2480,8 +2471,7 @@
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_password_view));
 
   lock_contents.users_list()->user_view_at(0)->RequestFocus();
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::VKEY_RETURN);
   EXPECT_TRUE(login_views_utils::HasFocusInAnyChildView(primary_password_view));
 }
 
@@ -2497,10 +2487,8 @@
   EXPECT_CALL(*client,
               HandleAccelerator(ash::LoginAcceleratorAction::kShowResetScreen));
 
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  generator->PressKey(ui::KeyboardCode::VKEY_R, ui::EF_CONTROL_DOWN |
-                                                    ui::EF_ALT_DOWN |
-                                                    ui::EF_SHIFT_DOWN);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_R,
+                     ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN);
   base::RunLoop().RunUntilIdle();
 }
 
@@ -2539,7 +2527,6 @@
   const AccountId& kUserAccountId = users()[0].basic_user_info.account_id;
 
   LockContentsView::TestApi test_api(lock);
-  ui::test::EventGenerator* generator = GetEventGenerator();
 
   // Creating lock screen does not show warning banner bubble.
   EXPECT_FALSE(test_api.warning_banner_bubble()->GetVisible());
@@ -2567,8 +2554,8 @@
   LoginAuthUserView::TestApi(test_api.primary_big_view()->auth_user())
       .password_view()
       ->RequestFocus();
-  generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_A);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
 
   EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
@@ -2596,17 +2583,15 @@
       test_api.opt_secondary_big_view()->auth_user());
   LoginUserView::TestApi user_test_api(secondary_test_api.user_view());
 
-  // Remove the user.
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  // Focus the dropdown to raise the bubble.
+  // Remove the user. First, focus the dropdown to raise the bubble.
   user_test_api.dropdown()->RequestFocus();
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
   // Focus the remove user bubble, tap twice to remove the user.
   user_test_api.remove_account_dialog()->RequestFocus();
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
-  generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
   base::RunLoop().RunUntilIdle();
 
   // Secondary user was removed.
diff --git a/ash/public/cpp/quick_answers/quick_answers_state.cc b/ash/public/cpp/quick_answers/quick_answers_state.cc
index ada12f2..27738cc 100644
--- a/ash/public/cpp/quick_answers/quick_answers_state.cc
+++ b/ash/public/cpp/quick_answers/quick_answers_state.cc
@@ -6,6 +6,8 @@
 
 #include "ash/constants/ash_features.h"
 #include "base/bind.h"
+#include "base/metrics/histogram_functions.h"
+#include "base/strings/stringprintf.h"
 #include "chromeos/services/assistant/public/cpp/assistant_prefs.h"
 #include "components/language/core/browser/pref_names.h"
 #include "components/prefs/pref_change_registrar.h"
@@ -30,6 +32,11 @@
 
 QuickAnswersState* g_quick_answers_state = nullptr;
 
+const char kQuickAnswersConsent[] = "QuickAnswers.V2.Consent";
+const char kQuickAnswersConsentDuration[] = "QuickAnswers.V2.Consent.Duration";
+const char kQuickAnswersConsentImpression[] =
+    "QuickAnswers.V2.Consent.Impression";
+
 bool IsQuickAnswersAllowedForLocale(const std::string& locale,
                                     const std::string& runtime_locale) {
   // String literals used in some cases in the array because their
@@ -71,6 +78,33 @@
   prefs->SetInteger(path, prefs->GetInteger(path) + count);
 }
 
+std::string ConsentResultTypeToString(ConsentResultType type) {
+  switch (type) {
+    case ConsentResultType::kAllow:
+      return "Allow";
+    case ConsentResultType::kNoThanks:
+      return "NoThanks";
+    case ConsentResultType::kDismiss:
+      return "Dismiss";
+  }
+}
+
+// Record the consent result with how many times the user has seen the consent
+// and impression duration.
+void RecordConsentResult(ConsentResultType type,
+                         int nth_impression,
+                         const base::TimeDelta duration) {
+  std::string interaction_type = ConsentResultTypeToString(type);
+  base::UmaHistogramExactLinear(
+      base::StringPrintf("%s.%s", kQuickAnswersConsentImpression,
+                         interaction_type.c_str()),
+      nth_impression, kConsentImpressionCap);
+  base::UmaHistogramTimes(
+      base::StringPrintf("%s.%s", kQuickAnswersConsentDuration,
+                         interaction_type.c_str()),
+      duration);
+}
+
 }  // namespace
 
 // static
@@ -168,6 +202,12 @@
   IncrementPrefCounter(pref_change_registrar_->prefs(),
                        kQuickAnswersNoticeImpressionCount, 1);
 
+  // Record how many times the user has seen the consent.
+  base::UmaHistogramExactLinear(kQuickAnswersConsent,
+                                pref_change_registrar_->prefs()->GetInteger(
+                                    kQuickAnswersNoticeImpressionCount),
+                                kConsentImpressionCap);
+
   consent_start_time_ = base::TimeTicks::Now();
 }
 
@@ -179,6 +219,8 @@
   auto duration = base::TimeTicks::Now() - consent_start_time_;
   IncrementPrefCounter(prefs, kQuickAnswersNoticeImpressionDuration,
                        duration.InSeconds());
+  RecordConsentResult(
+      result, prefs->GetInteger(kQuickAnswersNoticeImpressionCount), duration);
 
   switch (result) {
     case ConsentResultType::kAllow:
diff --git a/ash/shelf/scrollable_shelf_view.cc b/ash/shelf/scrollable_shelf_view.cc
index a29ccdd..6940ae5 100644
--- a/ash/shelf/scrollable_shelf_view.cc
+++ b/ash/shelf/scrollable_shelf_view.cc
@@ -578,6 +578,10 @@
   return CalculateScrollUpperBound(GetSpaceForIcons());
 }
 
+bool ScrollableShelfView::IsPageFlipTimerBusyForTest() const {
+  return page_flip_timer_.IsRunning();
+}
+
 int ScrollableShelfView::GetSumOfButtonSizeAndSpacing() const {
   return shelf_view_->GetButtonSize() + ShelfConfig::Get()->button_spacing();
 }
@@ -1103,8 +1107,8 @@
   gfx::Rect visible_space_in_screen = visible_space_;
   views::View::ConvertRectToScreen(this, &visible_space_in_screen);
 
-  drag_item_bounds_in_screen_ = item_bounds_in_screen;
-  if (AreBoundsWithinVisibleSpace(drag_item_bounds_in_screen_)) {
+  drag_item_bounds_in_screen_.emplace(item_bounds_in_screen);
+  if (AreBoundsWithinVisibleSpace(*drag_item_bounds_in_screen_)) {
     page_flip_timer_.AbandonAndStop();
     return;
   }
@@ -1115,7 +1119,7 @@
   }
 }
 void ScrollableShelfView::CancelScrollForItemDrag() {
-  drag_item_bounds_in_screen_ = gfx::Rect();
+  drag_item_bounds_in_screen_.reset();
   if (page_flip_timer_.IsRunning())
     page_flip_timer_.AbandonAndStop();
 }
@@ -1133,9 +1137,12 @@
   shelf_view_->NotifyAccessibilityEvent(ax::mojom::Event::kLocationChanged,
                                         /*send_native_event=*/true);
 
-  if (AreBoundsWithinVisibleSpace(drag_item_bounds_in_screen_))
+  if (!drag_item_bounds_in_screen_ ||
+      AreBoundsWithinVisibleSpace(*drag_item_bounds_in_screen_)) {
     return;
+  }
 
+  // Keep scrolling if the dragged shelf item is outside of the visible space.
   page_flip_timer_.Start(FROM_HERE, page_flip_time_threshold_, this,
                          &ScrollableShelfView::OnPageFlipTimer);
 }
@@ -1972,12 +1979,12 @@
   bool should_scroll_to_next;
   if (ShouldAdaptToRTL()) {
     should_scroll_to_next =
-        drag_item_bounds_in_screen_.x() < visible_space_in_screen.x();
+        drag_item_bounds_in_screen_->x() < visible_space_in_screen.x();
   } else {
     should_scroll_to_next = GetShelf()->IsHorizontalAlignment()
-                                ? drag_item_bounds_in_screen_.right() >
+                                ? drag_item_bounds_in_screen_->right() >
                                       visible_space_in_screen.right()
-                                : drag_item_bounds_in_screen_.bottom() >
+                                : drag_item_bounds_in_screen_->bottom() >
                                       visible_space_in_screen.bottom();
   }
 
diff --git a/ash/shelf/scrollable_shelf_view.h b/ash/shelf/scrollable_shelf_view.h
index 5f8ed8c4..9726eae 100644
--- a/ash/shelf/scrollable_shelf_view.h
+++ b/ash/shelf/scrollable_shelf_view.h
@@ -125,6 +125,9 @@
   // Returns the maximum scroll distance for the current layout.
   float GetScrollUpperBoundForTest() const;
 
+  // Returns whether `page_flip_timer_` is running.
+  bool IsPageFlipTimerBusyForTest() const;
+
   ShelfView* shelf_view() { return shelf_view_; }
   ShelfContainerView* shelf_container_view() { return shelf_container_view_; }
   const ShelfContainerView* shelf_container_view() const {
@@ -527,7 +530,7 @@
 
   // If page flip timer is active for shelf item drag, the last known drag item
   // bounds in screen coordinates.
-  gfx::Rect drag_item_bounds_in_screen_;
+  absl::optional<gfx::Rect> drag_item_bounds_in_screen_;
 
   base::OneShotTimer page_flip_timer_;
 
diff --git a/ash/shelf/scrollable_shelf_view_unittest.cc b/ash/shelf/scrollable_shelf_view_unittest.cc
index a596bf5..ea15833 100644
--- a/ash/shelf/scrollable_shelf_view_unittest.cc
+++ b/ash/shelf/scrollable_shelf_view_unittest.cc
@@ -122,7 +122,12 @@
     test_api_->SetAnimationDuration(base::TimeDelta::FromMilliseconds(1));
   }
 
-  void TearDown() override { AshTestBase::TearDown(); }
+  void TearDown() override {
+    // When the test is completed, the page flip timer should be idle.
+    EXPECT_FALSE(scrollable_shelf_view_->IsPageFlipTimerBusyForTest());
+
+    AshTestBase::TearDown();
+  }
 
  protected:
   void PopulateAppShortcut(int number) {
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index 1bae09d0..9074f65 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Stel op</translation>
 <translation id="3573179567135747900">Verander terug na "<ph name="FROM_LOCALE" />" (vereis herbegin)</translation>
 <translation id="3576141592585647168">Verander tydsone</translation>
+<translation id="3580650856351781466">Laai tans spraaklêers af</translation>
 <translation id="3593039967545720377">Kry jou knipbordgeskiedenis deur <ph name="SHORTCUT_KEY_NAME" /> + V te druk om jou knipbord te bekyk. Kopieer 'n item om te begin.</translation>
 <translation id="3593646411856133110">Swiep op en hou om oop programme te sien</translation>
 <translation id="3595596368722241419">Battery is vol</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 14172e5c..0eac0d8 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Konfigurer</translation>
 <translation id="3573179567135747900">Skift tilbage til "<ph name="FROM_LOCALE" />" (kræver genstart)</translation>
 <translation id="3576141592585647168">Skift tidszone</translation>
+<translation id="3580650856351781466">Downloader talefiler</translation>
 <translation id="3593039967545720377">Tryk på <ph name="SHORTCUT_KEY_NAME" />+V for at gå til din udklipsholders historik. Kopiér et element for at komme i gang.</translation>
 <translation id="3593646411856133110">Stryg opad, og hold fingeren nede for at se åbne apps</translation>
 <translation id="3595596368722241419">Batteri helt opladet</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index 6e87af2d9..618e59a 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -416,7 +416,7 @@
 <translation id="4269883910223712419">سرپرست این دستگاه می‌تواند:</translation>
 <translation id="4274537685965975248">میان‌بر صفحه‌کلید «مهار + دگرساز + جهت‌نمای پایین» تغییر کرده است. برای استفاده از کلید «پایان»، کلید «<ph name="LAUNCHER_KEY_NAME" /> + جهت‌نمای راست» را فشار دهید.</translation>
 <translation id="4279490309300973883">بازتاب می‌شود</translation>
-<translation id="4285498937028063278">لغو پین</translation>
+<translation id="4285498937028063278">برداشتن سنجاق</translation>
 <translation id="4292904812939562398">برنامه‌های اخیراً استفاده‌شده</translation>
 <translation id="429402653707266969">تغییر مکان نوار ابزار</translation>
 <translation id="4294319844246081198">صبح‌به‌خیر <ph name="GIVEN_NAME" />،</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index 27775bda..7c57730 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Beállítás</translation>
 <translation id="3573179567135747900">Visszatérés ehhez: "<ph name="FROM_LOCALE" />" (újraindítás szükséges)</translation>
 <translation id="3576141592585647168">Időzóna módosítása</translation>
+<translation id="3580650856351781466">Beszédfájlok letöltése…</translation>
 <translation id="3593039967545720377">Nyomja le a(z) <ph name="SHORTCUT_KEY_NAME" /> + V billentyűkombinációt a vágólap előzményeinek megtekintéséhez. Kezdésként másoljon valamit a vágólapra.</translation>
 <translation id="3593646411856133110">Felfelé csúsztatva és nyomva tartva megjelenik a többi alkalmazás</translation>
 <translation id="3595596368722241419">Akkumulátor feltöltve</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index 9c5ffb6..d815861 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">ຕັ້ງຄ່າ</translation>
 <translation id="3573179567135747900">ປ່ຽນ​​ກັບ​ຄືນ​ໄປຫາ "<ph name="FROM_LOCALE" />" (ຕ້ອງການໃຫ້ປິດເປີດຄືນໃໝ່)</translation>
 <translation id="3576141592585647168">ປ່ຽນເຂດເວລາ</translation>
+<translation id="3580650856351781466">ກຳລັງດາວໂຫຼດໄຟລ໌ການເວົ້າ</translation>
 <translation id="3593039967545720377">ເຂົ້າເຖິງປະຫວັດຄລິບບອດຂອງທ່ານໂດຍການກົດ <ph name="SHORTCUT_KEY_NAME" /> + V ເພື່ອເບິ່ງຄລິບບອດຂອງທ່ານ. ສຳເນົາລາຍການໃດໜຶ່ງເພື່ອເລີ່ມຕົ້ນ.</translation>
 <translation id="3593646411856133110">ປັດຂຶ້ນຄ້າງໄວ້ເພື່ອເບິ່ງແອັບທີ່ເປີດຢູ່</translation>
 <translation id="3595596368722241419">ແບັດເຕີຣີເຕັມ</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 16db62b..e20e2dd 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Nustatyti</translation>
 <translation id="3573179567135747900">Pakeisti atgal į „<ph name="FROM_LOCALE" />“ (reikia paleisti iš naujo)</translation>
 <translation id="3576141592585647168">Laiko juostos keitimas</translation>
+<translation id="3580650856351781466">Atsisiunčiami kalbos failai</translation>
 <translation id="3593039967545720377">Pasiekite iškarpinės istoriją paspaudę <ph name="SHORTCUT_KEY_NAME" /> ir V, kad peržiūrėtumėte iškarpinę. Jei norite pradėti, nukopijuokite elementą.</translation>
 <translation id="3593646411856133110">Perbraukite aukštyn ir laikykite, kad peržiūrėtumėte atidarytas programas</translation>
 <translation id="3595596368722241419">Akumuliatorius įkrautas</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 0770925e3..5fecb5a 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Тохиргоо хийх.</translation>
 <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />"-руу буцааж өөрчил (системийг дахин эхлүүлэх хэрэгтэй)</translation>
 <translation id="3576141592585647168">Цагийн бүсийг өөрчлөх</translation>
+<translation id="3580650856351781466">Ярианы файлуудыг татаж байна</translation>
 <translation id="3593039967545720377">Та түр санах ойгоо харахын тулд <ph name="SHORTCUT_KEY_NAME" /> + V дээр дарж түр санах ойн түүхдээ хандана уу. Эхлүүлэхийн тулд зүйл хуулна уу.</translation>
 <translation id="3593646411856133110">Нээлттэй аппуудыг харахын тулд дээш шудраад удаан дарна уу</translation>
 <translation id="3595596368722241419">Цэнэг дүүрсэн.</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 2da4cc4a8..4c2a02c2 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Instellen</translation>
 <translation id="3573179567135747900">Teruggaan naar '<ph name="FROM_LOCALE" />' (opnieuw starten vereist)</translation>
 <translation id="3576141592585647168">Tijdzone wijzigen</translation>
+<translation id="3580650856351781466">Spraakbestanden downloaden</translation>
 <translation id="3593039967545720377">Je opent je klembordgeschiedenis door op <ph name="SHORTCUT_KEY_NAME" /> + V te drukken. Daarna kun je kopiëren wat je nodig hebt.</translation>
 <translation id="3593646411856133110">Swipe omhoog en houd vast om apps te openen</translation>
 <translation id="3595596368722241419">Batterij is vol</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index a33c8f2..c91d5f8 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Konfiguruj</translation>
 <translation id="3573179567135747900">Zmień z powrotem na „<ph name="FROM_LOCALE" />” (wymaga ponownego uruchomienia)</translation>
 <translation id="3576141592585647168">Zmień strefę czasową</translation>
+<translation id="3580650856351781466">Pobieram pliki z mową</translation>
 <translation id="3593039967545720377">Aby wyświetlić schowek i jego historię, naciśnij <ph name="SHORTCUT_KEY_NAME" /> + V. Najpierw skopiuj element.</translation>
 <translation id="3593646411856133110">Aby zobaczyć otwarte aplikacje, przesuń palcem w górę i przytrzymaj</translation>
 <translation id="3595596368722241419">Bateria naładowana</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 063a8ab..b49a4d9 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Configurează</translation>
 <translation id="3573179567135747900">Modifică înapoi la „<ph name="FROM_LOCALE" />” (este necesară repornirea)</translation>
 <translation id="3576141592585647168">Modifică fusul orar</translation>
+<translation id="3580650856351781466">Se descarcă fișierele de redare în scris a vorbirii</translation>
 <translation id="3593039967545720377">Accesează istoricul clipboardului apăsând <ph name="SHORTCUT_KEY_NAME" /> + V pentru a vedea clipboardul. Copiază un element pentru a începe.</translation>
 <translation id="3593646411856133110">Glisează în sus și menține pentru a vedea aplicațiile deschise</translation>
 <translation id="3595596368722241419">Baterie încărcată</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index 6d1944a..6c51f97 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">Nastavi</translation>
 <translation id="3573179567135747900">Spremeni nazaj v jezik »<ph name="FROM_LOCALE" />« (potreben vnovični zagon)</translation>
 <translation id="3576141592585647168">Spreminjanje časovnega pasu</translation>
+<translation id="3580650856351781466">Prenos datotek za govor</translation>
 <translation id="3593039967545720377">Dostopajte do zgodovine odložišča, tako da pritisnete <ph name="SHORTCUT_KEY_NAME" /> + V za ogled odložišča. Kopirajte element, če želite začeti.</translation>
 <translation id="3593646411856133110">Povlecite navzgor in pridržite, če si želite ogledati odprte aplikacije</translation>
 <translation id="3595596368722241419">Baterija je polna</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index d2890d0..29a51aa9 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -177,6 +177,7 @@
 <translation id="2322173485024759474">எழுத்து வாரியாகப் பின்செல்</translation>
 <translation id="2339073806695260576">குறிப்பெடுக்க, ஸ்கிரீன்ஷாட்டை எடுக்க, லேசர் பாயிண்டர் அல்லது உருப்பெருக்கி ஆகியவற்றைப் பயன்படுத்த, ஷெல்ஃபில் உள்ள ஸ்டைலஸ் பட்டனைத் தட்டவும்.</translation>
 <translation id="2341729377289034582">செங்குத்து நிலையில் பூட்டப்பட்டது</translation>
+<translation id="2350794187831162545">சாதனம் ஆஃப்லைனில் இருந்தாலும் நீங்கள் <ph name="LANGUAGE" /> மொழியில் பேசியவை செயலாக்கப்படுவதுடன் அந்த மொழியிலேயே எழுதப்படும். சொல்வது எழுதப்படும் மொழியை ‘அமைப்புகள் &gt; அணுகல்தன்மை’ என்பதற்குச் சென்று மாற்றலாம்.</translation>
 <translation id="2352467521400612932">ஸ்டைலஸ் அமைப்புகள்</translation>
 <translation id="2354174487190027830"><ph name="NAME" /> ஐச் செயல்படுத்துகிறது</translation>
 <translation id="2359808026110333948">தொடர்க</translation>
@@ -436,6 +437,7 @@
 <translation id="4379531060876907730">இவை உங்கள் ஸ்டைலஸ் கருவிகள்</translation>
 <translation id="4389184120735010762">டாக் செய்யப்பட்ட பெரிதாக்கியின் கீபோர்டு ஷார்ட்கட்டை அழுத்தியுள்ளீர்கள். அதை இயக்க விரும்புகிறீர்களா?</translation>
 <translation id="439598569299422042">இடைநிறுத்தப்பட்டது, <ph name="SIZE_INFO" /></translation>
+<translation id="4405151984121254935">இணைத்துள்ள இந்த வகையான சாதனத்தைப் பயன்படுத்த முடியாது</translation>
 <translation id="4412944820643904175"><ph name="FEATURE_NAME" /> முடக்கப்பட்டுள்ளது.</translation>
 <translation id="4421231901400348175">தொலைநிலை உதவி மூலம் <ph name="HELPER_NAME" /> உடன் உங்கள் திரையின் கட்டுப்பாட்டைப் பகிர்கிறது.</translation>
 <translation id="4424159417645388645">டெஸ்க் 5</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 7f4fe9b..9878a4b 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -177,6 +177,7 @@
 <translation id="2322173485024759474">ఒక అక్షరం వెనుకకు</translation>
 <translation id="2339073806695260576">గమనికను వ్రాయడానికి, స్క్రీన్‌షాట్‌ను తీయడానికి, లేజర్ పాయింటర్ లేదా భూతద్దాన్ని ఉపయోగించడానికి అరలో స్టైలస్ బటన్‌ను నొక్కండి.</translation>
 <translation id="2341729377289034582">నిలువు ప్రదర్శనకు లాక్ చేయబడింది</translation>
+<translation id="2350794187831162545"><ph name="LANGUAGE" /> స్పీచ్ ఇప్పుడు పరికరంలోనే ప్రాసెస్ చేయబడింది, ఆఫ్‌లైన్‌లో పని చేస్తుంది. సెట్టింగ్‌లు &gt; యాక్సెసిబిలిటీకి వెళ్లడం ద్వారా మీరు మీ డిక్టేషన్ భాషను మార్చవచ్చు.</translation>
 <translation id="2352467521400612932">స్టైలస్ సెట్టింగ్‌లు</translation>
 <translation id="2354174487190027830"><ph name="NAME" />ని సక్రియం చేస్తోంది</translation>
 <translation id="2359808026110333948">కొనసాగించు</translation>
@@ -437,6 +438,7 @@
 <translation id="4379531060876907730">ఇవి మీ స్టైలస్ సాధనాలు</translation>
 <translation id="4389184120735010762">మీరు డాక్ చేసిన మాగ్నిఫైయర్‌ కోసం కీబోర్డ్ షార్ట్‌కట్‌ను నొక్కారు. మీరు దీన్ని ఆన్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="439598569299422042">పాజ్ చేయబడింది, <ph name="SIZE_INFO" /></translation>
+<translation id="4405151984121254935">కనెక్ట్ చేయబడిన పెరిఫెరల్ రకానికి సపోర్ట్ లేదు</translation>
 <translation id="4412944820643904175"><ph name="FEATURE_NAME" /> ఆఫ్‌లో ఉంది.</translation>
 <translation id="4421231901400348175">రిమోట్ సహాయం విధానంలో మీ స్క్రీన్ నియంత్రణ <ph name="HELPER_NAME" />కి భాగస్వామ్యం చేయబడుతోంది.</translation>
 <translation id="4424159417645388645">డెస్క్ 5</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index b734f373..2d29466 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -324,6 +324,7 @@
 <translation id="3571734092741541777">ตั้งค่า</translation>
 <translation id="3573179567135747900">เปลี่ยนกลับเป็น "<ph name="FROM_LOCALE" />" (จำเป็นต้องรีสตาร์ต)</translation>
 <translation id="3576141592585647168">เปลี่ยนแปลงเขตเวลา</translation>
+<translation id="3580650856351781466">กำลังดาวน์โหลดไฟล์คำพูด</translation>
 <translation id="3593039967545720377">เข้าถึงประวัติคลิปบอร์ดโดยกด <ph name="SHORTCUT_KEY_NAME" /> + V เพื่อดูคลิปบอร์ด คัดลอกรายการเพื่อเริ่มต้นใช้งาน</translation>
 <translation id="3593646411856133110">เลื่อนขึ้นค้างไว้เพื่อดูแอปที่เปิดอยู่</translation>
 <translation id="3595596368722241419">แบตเตอรี่เต็ม</translation>
diff --git a/ash/webui/diagnostics_ui/backend/BUILD.gn b/ash/webui/diagnostics_ui/backend/BUILD.gn
index 26ea829..2cdff49 100644
--- a/ash/webui/diagnostics_ui/backend/BUILD.gn
+++ b/ash/webui/diagnostics_ui/backend/BUILD.gn
@@ -93,6 +93,7 @@
     "//chromeos/dbus/cros_healthd",
     "//chromeos/dbus/power",
     "//chromeos/dbus/power:power_manager_proto",
+    "//chromeos/dbus/shill",
     "//chromeos/login/login_state:login_state",
     "//chromeos/services/cros_healthd/public/cpp",
     "//chromeos/services/cros_healthd/public/mojom",
@@ -103,6 +104,7 @@
     "//components/prefs:test_support",
     "//components/sync_preferences:test_support",
     "//content/test:test_support",
+    "//dbus",
     "//services/data_decoder/public/cpp:test_support",
     "//services/device/public/cpp:test_support",
     "//testing/gtest",
diff --git a/ash/webui/diagnostics_ui/backend/network_health_provider.cc b/ash/webui/diagnostics_ui/backend/network_health_provider.cc
index b3e6806..e10b821 100644
--- a/ash/webui/diagnostics_ui/backend/network_health_provider.cc
+++ b/ash/webui/diagnostics_ui/backend/network_health_provider.cc
@@ -217,10 +217,19 @@
   mojom::Network* network = network_info->network.get();
 
   const bool has_ip_config =
-      managed_properties && managed_properties->saved_ip_config;
+      managed_properties && managed_properties->ip_configs.has_value();
   if (has_ip_config) {
-    network->ip_config =
-        CreateIPConfigProperties(managed_properties->saved_ip_config);
+    const int ip_configs_len = managed_properties->ip_configs.value().size();
+    DCHECK(ip_configs_len >= 1);
+    if (ip_configs_len > 1) {
+      LOG(WARNING) << "More than one entry in ManagedProperties' ip_configs "
+                      "array, selecting the first, IP config count is: "
+                   << ip_configs_len;
+    }
+
+    // TODO(zentaro): Investigate IPV6.
+    auto ip_config = managed_properties->ip_configs.value()[0].Clone();
+    network->ip_config = CreateIPConfigProperties(ip_config);
   }
 }
 
diff --git a/ash/webui/diagnostics_ui/backend/network_health_provider_unittest.cc b/ash/webui/diagnostics_ui/backend/network_health_provider_unittest.cc
index 5a3278d..84abd8ef 100644
--- a/ash/webui/diagnostics_ui/backend/network_health_provider_unittest.cc
+++ b/ash/webui/diagnostics_ui/backend/network_health_provider_unittest.cc
@@ -7,6 +7,8 @@
 #include "base/containers/contains.h"
 #include "base/memory/ptr_util.h"
 #include "base/test/task_environment.h"
+#include "base/values.h"
+#include "chromeos/dbus/shill/shill_ipconfig_client.h"
 #include "chromeos/login/login_state/login_state.h"
 #include "chromeos/network/managed_network_configuration_handler.h"
 #include "chromeos/network/network_cert_loader.h"
@@ -27,6 +29,7 @@
 #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
 #include "components/proxy_config/proxy_config_pref_names.h"
 #include "components/sync_preferences/testing_pref_service_syncable.h"
+#include "dbus/object_path.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/cros_system_api/dbus/shill/dbus-constants.h"
@@ -42,6 +45,7 @@
 constexpr char kWlan0Name[] = "wlan0_name";
 constexpr char kWlan0NetworkGuid[] = "wlan0_network_guid";
 constexpr char kFormattedMacAddress[] = "01:23:45:67:89:AB";
+constexpr char kTestIPConfigPath[] = "test_ip_config_path";
 
 // TODO(https://crbug.com/1164001): remove when network_config is moved to ash.
 namespace network_config = ::chromeos::network_config;
@@ -205,6 +209,15 @@
     base::RunLoop().RunUntilIdle();
   }
 
+  void AssociateIPConfigWithWifiDevice() {
+    network_state_helper().device_test()->SetDeviceProperty(
+        kWlan0DevicePath, shill::kSavedIPConfigProperty,
+        base::Value(kTestIPConfigPath),
+        /*notify_changed=*/true);
+
+    base::RunLoop().RunUntilIdle();
+  }
+
   void CreateVpnDevice() {
     network_state_helper().manager_test()->AddTechnology(shill::kTypeVPN, true);
     network_state_helper().device_test()->AddDevice(
@@ -230,6 +243,14 @@
     base::RunLoop().RunUntilIdle();
   }
 
+  void AssociateWifiWithIPConfig() {
+    network_state_helper().service_test()->AddServiceWithIPConfig(
+        kWlan0DevicePath, kWlan0NetworkGuid, kWlan0Name, shill::kTypeWifi,
+        shill::kStateAssociation, kTestIPConfigPath, true);
+
+    base::RunLoop().RunUntilIdle();
+  }
+
   void AssociateAndConnectVpn() {
     network_state_helper().service_test()->AddService(
         "/device/vpn", "vpn guid", "vpn_name", shill::kTypeVPN,
@@ -305,6 +326,34 @@
     base::RunLoop().RunUntilIdle();
   }
 
+  void SetGatewayForIPConfig(const std::string& gateway) {
+    chromeos::ShillIPConfigClient::Get()->SetProperty(
+        dbus::ObjectPath(kTestIPConfigPath), shill::kGatewayProperty,
+        base::Value(gateway), base::DoNothing());
+    base::RunLoop().RunUntilIdle();
+  }
+
+  void SetIPAddressForIPConfig(const std::string& ip_address) {
+    chromeos::ShillIPConfigClient::Get()->SetProperty(
+        dbus::ObjectPath(kTestIPConfigPath), shill::kAddressProperty,
+        base::Value(ip_address), base::DoNothing());
+    base::RunLoop().RunUntilIdle();
+  }
+
+  void SetNameServersForIPConfig(const base::ListValue& dns_servers) {
+    chromeos::ShillIPConfigClient::Get()->SetProperty(
+        dbus::ObjectPath(kTestIPConfigPath), shill::kNameServersProperty,
+        dns_servers, base::DoNothing());
+    base::RunLoop().RunUntilIdle();
+  }
+
+  void SetRoutingPrefixForIPConfig(int routing_prefix) {
+    chromeos::ShillIPConfigClient::Get()->SetProperty(
+        dbus::ObjectPath(kTestIPConfigPath), shill::kPrefixlenProperty,
+        base::Value(routing_prefix), base::DoNothing());
+    base::RunLoop().RunUntilIdle();
+  }
+
   void SetupObserver(FakeNetworkListObserver* observer) {
     network_health_provider_->ObserveNetworkList(observer->pending_remote());
     base::RunLoop().RunUntilIdle();
@@ -758,5 +807,68 @@
   EXPECT_EQ(observer.GetLatestState()->mac_address, kFormattedMacAddress);
 }
 
+TEST_F(NetworkHealthProviderTest, IPConfig) {
+  // Observe the network list.
+  FakeNetworkListObserver list_observer;
+  SetupObserver(&list_observer);
+  size_t list_call_count = 0;
+  ExpectListObserverFired(list_observer, &list_call_count);
+
+  // No networks are present and no active network.
+  ASSERT_EQ(0u, list_observer.observer_guids().size());
+  EXPECT_TRUE(list_observer.active_guid().empty());
+
+  // Create a wifi device and verify `list_observer` fired.
+  CreateWifiDevice();
+  AssociateIPConfigWithWifiDevice();
+  ExpectListObserverFired(list_observer, &list_call_count);
+
+  // Verify a new network is created, but there is no active guid because
+  // the network isn't connected.
+  ASSERT_EQ(1u, list_observer.observer_guids().size());
+  const std::string guid = list_observer.observer_guids()[0];
+  EXPECT_FALSE(guid.empty());
+  EXPECT_TRUE(list_observer.active_guid().empty());
+
+  // Observe the network and verify the observer fired.
+  FakeNetworkStateObserver observer;
+  SetupObserver(&observer, guid);
+
+  // Set IP Config properties.
+  const std::string gateway("192.0.0.1");
+  SetGatewayForIPConfig(gateway);
+  const std::string ip_address("192.168.1.1");
+  SetIPAddressForIPConfig(ip_address);
+  const int routing_prefix = 1;
+  SetRoutingPrefixForIPConfig(routing_prefix);
+  base::ListValue dns_servers;
+  const std::string dns_server_1 = "192.168.1.100";
+  const std::string dns_server_2 = "192.168.1.101";
+  dns_servers.AppendString(dns_server_1);
+  dns_servers.AppendString(dns_server_2);
+  SetNameServersForIPConfig(dns_servers);
+
+  AssociateWifiWithIPConfig();
+  SetWifiOnline();
+
+  list_call_count = 0;
+  size_t state_call_count = 0;
+  ExpectListObserverFired(list_observer, &list_call_count);
+  ExpectStateObserverFired(observer, &state_call_count);
+  EXPECT_EQ(observer.GetLatestState()->state, mojom::NetworkState::kOnline);
+  EXPECT_FALSE(list_observer.active_guid().empty());
+  EXPECT_EQ(guid, list_observer.active_guid());
+
+  auto ip_config = observer.GetLatestState()->ip_config.Clone();
+  EXPECT_EQ(ip_config->gateway.value(), gateway);
+  EXPECT_EQ(ip_config->routing_prefix, routing_prefix);
+  EXPECT_EQ(ip_config->ip_address.value(), ip_address);
+
+  auto name_servers = ip_config->name_servers.value();
+  EXPECT_EQ(name_servers.size(), 2U);
+  EXPECT_EQ(name_servers[0], dns_server_1);
+  EXPECT_EQ(name_servers[1], dns_server_2);
+}
+
 }  // namespace diagnostics
 }  // namespace ash
diff --git a/ash/webui/shortcut_customization_ui/resources/fake_shortcut_provider.js b/ash/webui/shortcut_customization_ui/resources/fake_shortcut_provider.js
index 6ff8204..839809c 100644
--- a/ash/webui/shortcut_customization_ui/resources/fake_shortcut_provider.js
+++ b/ash/webui/shortcut_customization_ui/resources/fake_shortcut_provider.js
@@ -4,7 +4,7 @@
 
 import {FakeMethodResolver} from 'chrome://resources/ash/common/fake_method_resolver.js';
 
-import {AcceleratorConfig, LayoutInfoList, ShortcutProviderInterface} from './shortcut_types.js';
+import {AcceleratorConfig, AcceleratorSource, LayoutInfoList, ShortcutProviderInterface} from './shortcut_types.js';
 
 /**
  * @fileoverview
@@ -19,6 +19,7 @@
     // Setup method resolvers.
     this.methods_.register('getAllAcceleratorConfig');
     this.methods_.register('getLayoutInfo');
+    this.methods_.register('isMutable');
   }
 
   /**
@@ -36,6 +37,15 @@
   }
 
   /**
+   * @param {!AcceleratorSource} source
+   * @return {!Promise<boolean>}
+   */
+  isMutable(source) {
+    this.methods_.setResult('isMutable', source !== AcceleratorSource.kBrowser);
+    return this.methods_.resolveMethod('isMutable');
+  }
+
+  /**
    * Sets the value that will be returned when calling
    * getAllAcceleratorConfig().
    * @param {!AcceleratorConfig} config
diff --git a/ash/webui/shortcut_customization_ui/resources/shortcut_types.js b/ash/webui/shortcut_customization_ui/resources/shortcut_types.js
index 8b598ed..27b18b9 100644
--- a/ash/webui/shortcut_customization_ui/resources/shortcut_types.js
+++ b/ash/webui/shortcut_customization_ui/resources/shortcut_types.js
@@ -129,6 +129,7 @@
  * @typedef {{
  *   getAllAcceleratorConfig: !function(): !Promise<!AcceleratorConfig>,
  *   getLayoutInfo: !function(): !Promise<LayoutInfoList>,
+ *   isMutable: !function(!AcceleratorSource): !Promise<boolean>,
  * }}
  */
 export let ShortcutProviderInterface;
diff --git a/base/allocator/partition_allocator/partition_alloc.cc b/base/allocator/partition_allocator/partition_alloc.cc
index 703fd88..09d8ffd 100644
--- a/base/allocator/partition_allocator/partition_alloc.cc
+++ b/base/allocator/partition_allocator/partition_alloc.cc
@@ -29,20 +29,20 @@
   // This is from page_allocator_constants.h and doesn't really fit here, but
   // there isn't a centralized initialization function in page_allocator.cc, so
   // there's no good place in that file to do a STATIC_ASSERT_OR_PA_CHECK.
-  STATIC_ASSERT_OR_PA_CHECK((SystemPageSize() & (SystemPageSize() - 1)) == 0,
+  STATIC_ASSERT_OR_PA_CHECK((SystemPageSize() & SystemPageOffsetMask()) == 0,
                             "SystemPageSize() must be power of 2");
 
   // Two partition pages are used as guard / metadata page so make sure the
   // super page size is bigger.
   STATIC_ASSERT_OR_PA_CHECK(PartitionPageSize() * 4 <= kSuperPageSize,
                             "ok super page size");
-  STATIC_ASSERT_OR_PA_CHECK(!(kSuperPageSize % PartitionPageSize()),
+  STATIC_ASSERT_OR_PA_CHECK((kSuperPageSize & SystemPageOffsetMask()) == 0,
                             "ok super page multiple");
   // Four system pages gives us room to hack out a still-guard-paged piece
   // of metadata in the middle of a guard partition page.
   STATIC_ASSERT_OR_PA_CHECK(SystemPageSize() * 4 <= PartitionPageSize(),
                             "ok partition page size");
-  STATIC_ASSERT_OR_PA_CHECK(!(PartitionPageSize() % SystemPageSize()),
+  STATIC_ASSERT_OR_PA_CHECK((PartitionPageSize() & SystemPageOffsetMask()) == 0,
                             "ok partition page multiple");
   static_assert(sizeof(internal::PartitionPage<internal::ThreadSafe>) <=
                     kPageMetadataSize,
diff --git a/base/allocator/partition_allocator/partition_alloc_constants.h b/base/allocator/partition_allocator/partition_alloc_constants.h
index f46fee3..9ec436c 100644
--- a/base/allocator/partition_allocator/partition_alloc_constants.h
+++ b/base/allocator/partition_allocator/partition_alloc_constants.h
@@ -88,7 +88,7 @@
 
 PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
 NumSystemPagesPerPartitionPage() {
-  return PartitionPageSize() / SystemPageSize();
+  return PartitionPageSize() >> SystemPageShift();
 }
 
 PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
@@ -97,6 +97,11 @@
          kMaxPartitionPagesPerRegularSlotSpan;
 }
 
+PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
+MaxRegularSlotSpanSize() {
+  return kMaxPartitionPagesPerRegularSlotSpan << PartitionPageShift();
+}
+
 // We reserve virtual address space in 2 MiB chunks (aligned to 2 MiB as well).
 // These chunks are called *super pages*. We do this so that we can store
 // metadata in the first few pages of each 2 MiB-aligned section. This makes
@@ -198,7 +203,7 @@
 
 PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
 NumPartitionPagesPerSuperPage() {
-  return kSuperPageSize / PartitionPageSize();
+  return kSuperPageSize >> PartitionPageShift();
 }
 
 constexpr ALWAYS_INLINE size_t MaxSuperPages() {
diff --git a/base/allocator/partition_allocator/partition_alloc_unittest.cc b/base/allocator/partition_allocator/partition_alloc_unittest.cc
index 35504e0..8ebf201 100644
--- a/base/allocator/partition_allocator/partition_alloc_unittest.cc
+++ b/base/allocator/partition_allocator/partition_alloc_unittest.cc
@@ -2584,8 +2584,7 @@
   // use of the entire result is compatible with the debug mode's cookies, even
   // when the bucket size is large enough to span more than one partition page
   // and we can track the "raw" size. See https://crbug.com/709271
-  static const size_t kSize =
-      base::MaxSystemPagesPerRegularSlotSpan() * base::SystemPageSize();
+  static const size_t kSize = base::MaxRegularSlotSpanSize();
   void* ptr = allocator.root()->Alloc(kSize + 1, type_name);
   EXPECT_TRUE(ptr);
 
@@ -3259,8 +3258,7 @@
 // Test for crash http://crbug.com/1169003.
 TEST_F(PartitionAllocTest, CrossPartitionRootRealloc) {
   // Size is large enough to satisfy it from a single-slot slot span
-  size_t test_size =
-      SystemPageSize() * MaxSystemPagesPerRegularSlotSpan() - kExtraAllocSize;
+  size_t test_size = MaxRegularSlotSpanSize() - kExtraAllocSize;
   void* ptr = allocator.root()->AllocFlags(PartitionAllocReturnNull, test_size,
                                            nullptr);
   EXPECT_TRUE(ptr);
diff --git a/base/allocator/partition_allocator/partition_bucket.cc b/base/allocator/partition_allocator/partition_bucket.cc
index 3d6b6b4..9ac72e67 100644
--- a/base/allocator/partition_allocator/partition_bucket.cc
+++ b/base/allocator/partition_allocator/partition_bucket.cc
@@ -404,18 +404,18 @@
   // to using fewer system pages.
   double best_waste_ratio = 1.0f;
   uint16_t best_pages = 0;
-  if (slot_size > MaxSystemPagesPerRegularSlotSpan() * SystemPageSize()) {
+  if (slot_size > MaxRegularSlotSpanSize()) {
     // TODO(ajwong): Why is there a DCHECK here for this?
     // http://crbug.com/776537
     PA_DCHECK(!(slot_size % SystemPageSize()));
-    best_pages = static_cast<uint16_t>(slot_size / SystemPageSize());
+    best_pages = static_cast<uint16_t>(slot_size >> SystemPageShift());
     PA_CHECK(best_pages <= std::numeric_limits<uint8_t>::max());
     return static_cast<uint8_t>(best_pages);
   }
-  PA_DCHECK(slot_size <= MaxSystemPagesPerRegularSlotSpan() * SystemPageSize());
+  PA_DCHECK(slot_size <= MaxRegularSlotSpanSize());
   for (uint16_t i = NumSystemPagesPerPartitionPage() - 1;
        i <= MaxSystemPagesPerRegularSlotSpan(); ++i) {
-    size_t page_size = SystemPageSize() * i;
+    size_t page_size = i << SystemPageShift();
     size_t num_slots = page_size / slot_size;
     size_t waste = page_size - (num_slots * slot_size);
     // Leaving a page unfaulted is not free; the page will occupy an empty page
@@ -471,7 +471,8 @@
               PartitionPageSize()));
 
   size_t num_partition_pages = get_pages_per_slot_span();
-  size_t slot_span_reservation_size = PartitionPageSize() * num_partition_pages;
+  size_t slot_span_reservation_size = num_partition_pages
+                                      << PartitionPageShift();
   size_t slot_span_committed_size = get_bytes_per_span();
   PA_DCHECK(num_partition_pages <= NumPartitionPagesPerSuperPage());
   PA_DCHECK(slot_span_committed_size % SystemPageSize() == 0);
diff --git a/base/allocator/partition_allocator/partition_bucket.h b/base/allocator/partition_allocator/partition_bucket.h
index 60f4d52..f4c5681 100644
--- a/base/allocator/partition_allocator/partition_bucket.h
+++ b/base/allocator/partition_allocator/partition_bucket.h
@@ -67,13 +67,11 @@
 
   ALWAYS_INLINE bool CanStoreRawSize() const {
     // For direct-map as well as single-slot slot spans (recognized by checking
-    // against |MaxSystemPagesPerRegularSlotSpan()|), we have some spare
-    // metadata space in subsequent PartitionPage to store the raw size. It
-    // isn't only metadata space though, slot spans that have more than one slot
-    // can't have raw size stored, because we wouldn't know which slot it
-    // applies to.
-    if (LIKELY(slot_size <=
-               MaxSystemPagesPerRegularSlotSpan() * SystemPageSize()))
+    // against |MaxRegularSlotSpanSize()|), we have some spare metadata space in
+    // subsequent PartitionPage to store the raw size. It isn't only metadata
+    // space though, slot spans that have more than one slot can't have raw size
+    // stored, because we wouldn't know which slot it applies to.
+    if (LIKELY(slot_size <= MaxRegularSlotSpanSize()))
       return false;
 
     PA_DCHECK((slot_size % SystemPageSize()) == 0);
@@ -93,7 +91,7 @@
   ALWAYS_INLINE size_t get_bytes_per_span() const {
     // TODO(ajwong): Change to CheckedMul. https://crbug.com/787153
     // https://crbug.com/680657
-    return num_system_pages_per_slot_span * SystemPageSize();
+    return num_system_pages_per_slot_span << SystemPageShift();
   }
   ALWAYS_INLINE uint16_t get_slots_per_span() const {
     // TODO(ajwong): Change to CheckedMul. https://crbug.com/787153
diff --git a/base/allocator/partition_allocator/partition_ref_count.h b/base/allocator/partition_allocator/partition_ref_count.h
index de2106f..ec1039a 100644
--- a/base/allocator/partition_allocator/partition_ref_count.h
+++ b/base/allocator/partition_allocator/partition_ref_count.h
@@ -193,14 +193,9 @@
   } else {
     PartitionRefCount* bitmap_base = reinterpret_cast<PartitionRefCount*>(
         (slot_start_as_uintptr & kSuperPageBaseMask) + SystemPageSize() * 2);
-    size_t index = ((slot_start_as_uintptr & kSuperPageOffsetMask)
-#if !defined(OS_APPLE)
-                    >> SystemPageShift()
-#else
-                    / SystemPageSize()
-#endif
-                        ) *
-                   kPartitionRefCountIndexMultiplier;
+    size_t index =
+        ((slot_start_as_uintptr & kSuperPageOffsetMask) >> SystemPageShift()) *
+        kPartitionRefCountIndexMultiplier;
 #if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
     PA_CHECK(sizeof(PartitionRefCount) * index <= SystemPageSize());
 #endif
diff --git a/base/allocator/partition_allocator/partition_root.cc b/base/allocator/partition_allocator/partition_root.cc
index 2149ee1..4be03e7 100644
--- a/base/allocator/partition_allocator/partition_root.cc
+++ b/base/allocator/partition_allocator/partition_root.cc
@@ -674,8 +674,8 @@
   // Make this check before comparing slot sizes, as even with equal or similar
   // slot sizes we can save a lot if the original allocation was heavily padded
   // for alignment.
-  if ((new_reservation_size / SystemPageSize()) * 5 <
-      (current_reservation_size / SystemPageSize()) * 4)
+  if ((new_reservation_size >> SystemPageShift()) * 5 <
+      (current_reservation_size >> SystemPageShift()) * 4)
     return false;
 
   // Note that the new size isn't a bucketed size; this function is called
diff --git a/base/allocator/partition_allocator/thread_cache.h b/base/allocator/partition_allocator/thread_cache.h
index 7c615a5..29d073dc 100644
--- a/base/allocator/partition_allocator/thread_cache.h
+++ b/base/allocator/partition_allocator/thread_cache.h
@@ -482,7 +482,7 @@
   // The pointer is always 16 bytes aligned, so its start address is always == 0
   // % 16. Its distance to the next cacheline is 64 - ((address & 63) / 16) *
   // 16.
-  int distance_to_next_cacheline_in_16_bytes = 4 - (address >> 4) & 3;
+  int distance_to_next_cacheline_in_16_bytes = 4 - ((address >> 4) & 3);
   int slot_size_remaining_in_16_bytes =
       std::min(bucket.slot_size / 16, distance_to_next_cacheline_in_16_bytes);
 
diff --git a/base/android/OWNERS b/base/android/OWNERS
index 98d1b45..9e544529 100644
--- a/base/android/OWNERS
+++ b/base/android/OWNERS
@@ -2,7 +2,6 @@
 lizeb@chromium.org
 nyquist@chromium.org
 pasko@chromium.org
-rmcilroy@chromium.org
 torne@chromium.org
 yfriedman@chromium.org
 
diff --git a/base/mac/authorization_util.mm b/base/mac/authorization_util.mm
index a679a3e..872a79b 100644
--- a/base/mac/authorization_util.mm
+++ b/base/mac/authorization_util.mm
@@ -19,6 +19,7 @@
 #include "base/posix/eintr_wrapper.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
+#include "base/threading/hang_watcher.h"
 
 namespace base {
 namespace mac {
@@ -37,6 +38,14 @@
     return NULL;
   }
 
+  // Never consider the current WatchHangsInScope as hung. There was most likely
+  // one created in ThreadControllerWithMessagePumpImpl::DoWork(). The current
+  // hang watching deadline is not valid since the user can take unbounded time
+  // to answer the password prompt. HangWatching will resume when the next task
+  // or event is pumped in MessagePumpCFRunLoop so there is not need to
+  // reactivate it. You can see the function comments for more details.
+  base::HangWatcher::InvalidateActiveExpectations();
+
   AuthorizationFlags flags = kAuthorizationFlagDefaults |
                              kAuthorizationFlagInteractionAllowed |
                              kAuthorizationFlagExtendRights |
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 08e55e2..96ea0af5 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-6.20210809.0.1
+6.20210809.1.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 08e55e2..96ea0af5 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-6.20210809.0.1
+6.20210809.1.1
diff --git a/cc/paint/paint_filter.cc b/cc/paint/paint_filter.cc
index 0a364ee..6df6898 100644
--- a/cc/paint/paint_filter.cc
+++ b/cc/paint/paint_filter.cc
@@ -1598,7 +1598,6 @@
 #else   // defined(OS_ANDROID)
   // Stretch filter is only used on android and removed from other platforms
   // to reduce size. See https://crbug.com/1226170.
-  NOTREACHED();
 #endif  // defined(OS_ANDROID)
 }
 
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index 2fcd45f5..c25d48346 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -241,7 +241,7 @@
       sources += [ "app/chrome_exe_main_aura.cc" ]
     }
 
-    if (is_linux || is_chromeos) {
+    if (is_linux || is_chromeos || is_fuchsia) {
       sources += [
         "app/chrome_dll_resource.h",
         "app/chrome_main.cc",
@@ -269,12 +269,15 @@
         "//headless:headless_shell_lib",
       ]
 
-      public_deps = [
-        ":xdg_mime",  # Needs to be public for installer to consume files.
-        "//chrome/common:buildflags",
-      ]
+      public_deps = [ "//chrome/common:buildflags" ]
 
-      data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ]
+      if (!is_fuchsia) {
+        public_deps += [
+          ":xdg_mime",  # Needs to be public for installer to consume files.
+        ]
+
+        data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ]
+      }
 
       ldflags = []
 
@@ -1318,7 +1321,6 @@
     "//chrome/browser",
     "//chrome/browser/policy:path_parser",
     "//chrome/common",
-    "//components/crash/core/app",
     "//components/gwp_asan/buildflags",
     "//components/heap_profiling/in_process",
     "//components/power_scheduler",
@@ -1364,6 +1366,10 @@
     ]
   }
 
+  if (!is_fuchsia) {
+    public_deps += [ "//components/crash/core/app" ]
+  }
+
   if (!is_component_build) {
     assert_no_deps = [
       # Blink should not be used in the browser process. In component build this
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantChromeTabIntegrationTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantChromeTabIntegrationTest.java
index 6053d281..9fc92dc 100644
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantChromeTabIntegrationTest.java
+++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantChromeTabIntegrationTest.java
@@ -43,6 +43,7 @@
 
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.DisabledTest;
+import org.chromium.base.test.util.FlakyTest;
 import org.chromium.base.test.util.Restriction;
 import org.chromium.chrome.autofill_assistant.R;
 import org.chromium.chrome.browser.autofill_assistant.proto.ActionProto;
@@ -261,6 +262,7 @@
 
     @Test
     @MediumTest
+    @FlakyTest(message = "https://crbug.com/1237330")
     public void switchingTabsRestoresBottomSheetState() {
         ArrayList<ActionProto> listA = new ArrayList<>();
         listA.add(ActionProto.newBuilder()
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
index a79d0ed6d..cdb102d 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -239,6 +239,10 @@
                                         shoppingPersistedTabData.getPriceDrop().price,
                                         shoppingPersistedTabData.getPriceDrop().previousPrice);
                                 priceCardView.setVisibility(View.VISIBLE);
+                                priceCardView.setContentDescription(view.getResources().getString(
+                                        R.string.accessibility_tab_price_card,
+                                        shoppingPersistedTabData.getPriceDrop().previousPrice,
+                                        shoppingPersistedTabData.getPriceDrop().price));
                             }
                             if (shoppingPersistedTabData != null) {
                                 shoppingPersistedTabData.logPriceDropMetrics(
diff --git a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
index 87567b8c..c27d929 100644
--- a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
+++ b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
@@ -387,6 +387,9 @@
       <message name="IDS_PRICE_DROP_SPOTTED_LOWER_PRICE" desc="This text shows on the blue tooltip that appears on a tab where we have detected a price drop in that tab. 'Lower' is an adjective.">
         Lower price
       </message>
+      <message name="IDS_ACCESSIBILITY_TAB_PRICE_CARD" desc="This accessibility text is read when the Tab with a price drop annotation is selected." is_accessibility_with_no_ui="true">
+        The price of this item recently dropped from <ph name="PREVIOUS_PRICE">%1$s<ex>$42</ex></ph> to <ph name="NEW_PRICE">%2$s<ex>$30</ex></ph>
+      </message>
 
       <!-- Price Alerts Card strings -->
       <message name="IDS_PRICE_DROP_ALERTS_CARD_TITLE" desc="This text shows on the price drop alerts message card if any item in the open tabs has a price drop. It familiarizes users with the feature getting price drop alerts.">
diff --git a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_PRICE_CARD.png.sha1 b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_PRICE_CARD.png.sha1
new file mode 100644
index 0000000..1e9aa56
--- /dev/null
+++ b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_PRICE_CARD.png.sha1
@@ -0,0 +1 @@
+49cba984c7df51fca031808764e31826bbc26fcc
\ No newline at end of file
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java
index 53259c9..7a40234 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java
@@ -135,6 +135,8 @@
     private static final String USD_CURRENCY_SYMBOL = "$";
     private static final String EXPECTED_PRICE = "$5.00";
     private static final String EXPECTED_PREVIOUS_PRICE = "$10";
+    private static final String EXPECTED_CONTENT_DESCRIPTION =
+            "The price of this item recently dropped from $10 to $5.00";
     private static final GURL TEST_GURL = new GURL("https://www.google.com");
 
     private ViewGroup mTabGridView;
@@ -895,6 +897,7 @@
         TextView previousPrice = mTabGridView.findViewById(R.id.previous_price);
         Assert.assertEquals(EXPECTED_PRICE, currentPrice.getText());
         Assert.assertEquals(EXPECTED_PREVIOUS_PRICE, previousPrice.getText());
+        Assert.assertEquals(EXPECTED_CONTENT_DESCRIPTION, priceCardView.getContentDescription());
     }
 
     private void mockCurrencyFormatter() {
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java
index 8a17970..91b54e0 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java
@@ -35,6 +35,7 @@
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.DisableIf;
 import org.chromium.base.test.util.Feature;
+import org.chromium.base.test.util.FlakyTest;
 import org.chromium.base.test.util.Restriction;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -217,6 +218,7 @@
 
     @Test
     @MediumTest
+    @FlakyTest(message = "https://crbug.com/1237368")
     public void testToolbarGroupButton() {
         prepareBlankTab(2, false);
         List<Tab> tabs = getTabsInCurrentTabModel();
@@ -572,6 +574,7 @@
 
     @Test
     @MediumTest
+    @FlakyTest(message = "https://crbug.com/1237367")
     // clang-format off
     @EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID + "<Study"})
     @CommandLineFlags.Add({"force-fieldtrials=Study/Group",
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
index bb54c033..f1ab59a4 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
@@ -1546,10 +1546,13 @@
 
         assertThat(mModel.size(), equalTo(2));
         assertThat(mModel.get(0).model.get(TabProperties.TAB_ID), equalTo(TAB1_ID));
+        assertThat(mModel.get(1).model.get(TabProperties.TAB_ID), equalTo(TAB2_ID));
+        assertThat(mMediator.indexOfTab(TAB1_ID), equalTo(0));
+        assertThat(mMediator.indexOfTab(TAB2_ID), equalTo(1));
     }
 
     @Test
-    public void groupAndUngroupTabsInMRUOrder() {
+    public void groupAndUngroupSelectedTabsInMRUOrder() {
         StartSurfaceConfiguration.SHOW_TABS_IN_MRU_ORDER.setForTesting(true);
         // A new mediator with mode equals TabListMode.CAROUSEL will be created.
         setUpForTabGroupOperation(TabListMediatorType.TAB_SWITCHER, TabListMode.CAROUSEL);
@@ -1600,10 +1603,9 @@
         doReturn(tab3).when(mTabModel).getTabAt(POSITION2);
         doReturn(mTab2).when(mTabModel).getTabAt(position3);
         Pair<Integer, Integer> positions = mModel.getIndexesForMergeToGroup(mTabModel, group);
-        // Verifies that on the mModel (MRU order), it will remove Tab1 which at index 2 (srcIndex),
-        // and merge Tab 1 with Tab3 to index 0 (desIndex).
-        assertEquals(2, positions.first.intValue()); // srcIndex
-        assertEquals(0, positions.second.intValue()); // desIndex: index to merge to
+        // On the mModel (MRU order), moving Tab3 to Tab1 is to move scrIndex 0 to desIndex 2.
+        assertEquals(2, positions.first.intValue()); // desIndex
+        assertEquals(0, positions.second.intValue()); // scrIndex
 
         // The TabGroupModelFilter.getTabAt() returns the last selected Tab for each group, which
         // could be only has a single Tab.
@@ -1635,6 +1637,113 @@
     }
 
     @Test
+    public void mergeNoneSelectedToGroupBackwardsAndUngroup() {
+        StartSurfaceConfiguration.SHOW_TABS_IN_MRU_ORDER.setForTesting(true);
+        // A new mediator with mode equals TabListMode.CAROUSEL will be created.
+        setUpForTabGroupOperation(TabListMediatorType.TAB_SWITCHER, TabListMode.CAROUSEL);
+
+        List<Tab> tabs = new ArrayList<>();
+        for (int i = 0; i < mTabModel.getCount(); i++) {
+            tabs.add(mTabModel.getTabAt(i));
+        }
+        assertThat(tabs.size(), equalTo(2));
+        TabImpl tab3 = prepareTab(TAB3_ID, TAB3_TITLE, TAB3_URL);
+        int tab4Id = 0;
+        TabImpl tab4 = prepareTab(tab4Id, "tab 4", TAB2_URL);
+        tabs.add(tab3);
+        tabs.add(tab4);
+
+        int position3 = 2;
+        int position4 = 3;
+        doReturn(tab3).when(mTabModel).getTabAt(POSITION2);
+        doReturn(tab4).when(mTabModel).getTabAt(position4);
+        doReturn(position3).when(mTabModel).indexOf(tab3);
+        doReturn(position4).when(mTabModel).indexOf(tab4);
+        doReturn(4).when(mTabModel).getCount();
+
+        long timestamp1 = 1;
+        long timestamp2 = 2;
+        long timestamp3 = 3;
+        long timestamp4 = 4;
+        CriticalPersistedTabData criticalPersistedTabData1 = CriticalPersistedTabData.from(mTab1);
+        CriticalPersistedTabData criticalPersistedTabData2 = CriticalPersistedTabData.from(mTab2);
+        CriticalPersistedTabData criticalPersistedTabData3 = CriticalPersistedTabData.from(tab3);
+        CriticalPersistedTabData criticalPersistedTabData4 = CriticalPersistedTabData.from(tab4);
+        doReturn(timestamp1).when(criticalPersistedTabData1).getTimestampMillis();
+        doReturn(timestamp2).when(criticalPersistedTabData2).getTimestampMillis();
+        doReturn(timestamp3).when(criticalPersistedTabData3).getTimestampMillis();
+        doReturn(timestamp4).when(criticalPersistedTabData4).getTimestampMillis();
+
+        mMediator.resetWithListOfTabs(
+                PseudoTab.getListOfPseudoTab(tabs), /*quickMode =*/false, /*mruMode =*/true);
+
+        assertThat(mModel.size(), equalTo(4));
+        assertThat(mModel.get(0).model.get(TabProperties.TAB_ID), equalTo(tab4Id));
+        assertThat(mModel.get(1).model.get(TabProperties.TAB_ID), equalTo(TAB3_ID));
+        assertThat(mModel.get(2).model.get(TabProperties.TAB_ID), equalTo(TAB2_ID));
+        assertThat(mModel.get(3).model.get(TabProperties.TAB_ID), equalTo(TAB1_ID));
+        assertThat(mMediator.indexOfTab(TAB1_ID), equalTo(3));
+        assertThat(mMediator.indexOfTab(TAB2_ID), equalTo(2));
+        assertThat(mMediator.indexOfTab(TAB3_ID), equalTo(1));
+        assertThat(mMediator.indexOfTab(tab4Id), equalTo(0));
+
+        // Group Tab1 to Tab3, and create a new group {Tab3, Tab1} with id equals to TAB3_ID. Tab4
+        // is the current Tab. Assume that TabGroupModelFilter is already updated.
+        doReturn(tab4).when(mTabModelSelector).getCurrentTab();
+        doReturn(tab4Id).when(mTabModelSelector).getCurrentTabId();
+        List<Tab> group = new ArrayList<>(Arrays.asList(tab3, mTab1));
+        createTabGroup(group, TAB3_ID);
+
+        // In TabModel, it becomes Tab2, {Tab3, Tab1}, Tab4 from Tab1, Tab2, Tab3, Tab4.
+        doReturn(POSITION1).when(mTabModel).indexOf(mTab2);
+        doReturn(POSITION2).when(mTabModel).indexOf(tab3);
+        doReturn(position3).when(mTabModel).indexOf(mTab1);
+        doReturn(position4).when(mTabModel).indexOf(tab4);
+        doReturn(mTab2).when(mTabModel).getTabAt(POSITION1);
+        doReturn(tab3).when(mTabModel).getTabAt(POSITION2);
+        doReturn(mTab1).when(mTabModel).getTabAt(position3);
+        doReturn(tab4).when(mTabModel).getTabAt(position4);
+
+        // The TabGroupModelFilter.getTabAt() returns the last selected Tab for each group, which
+        // could be only has a single Tab.
+        doReturn(POSITION1).when(mTabGroupModelFilter).indexOf(mTab2);
+        doReturn(POSITION2).when(mTabGroupModelFilter).indexOf(mTab1);
+        doReturn(POSITION2).when(mTabGroupModelFilter).indexOf(tab3);
+        doReturn(position3).when(mTabGroupModelFilter).indexOf(tab4);
+        doReturn(mTab2).when(mTabGroupModelFilter).getTabAt(POSITION1);
+        doReturn(tab3).when(mTabGroupModelFilter).getTabAt(POSITION2);
+        doReturn(tab4).when(mTabGroupModelFilter).getTabAt(position3);
+
+        Pair<Integer, Integer> positions = mModel.getIndexesForMergeToGroup(mTabModel, group);
+        // On the mModel (MRU order), moving Tab1 to Tab3 is to move srcIndex 3 to desIndex 1.
+        assertEquals(1, positions.first.intValue()); // desIndex
+        assertEquals(3, positions.second.intValue()); // srcIndex
+
+        mMediatorTabGroupModelFilterObserver.didMergeTabToGroup(mTab1, TAB3_ID);
+        assertEquals(3, mModel.size());
+        // Verifies that the new group {Tab3, Tab1} is moved to the location of Tab3 and updated
+        // with Tab3's id.
+        assertThat(mModel.get(0).model.get(TabProperties.TAB_ID), equalTo(tab4Id));
+        assertThat(mModel.get(1).model.get(TabProperties.TAB_ID), equalTo(TAB3_ID));
+        assertThat(mModel.get(2).model.get(TabProperties.TAB_ID), equalTo(TAB2_ID));
+
+        // Move Tab3 out of the group. In TabModel, it becomes: Tab2, Tab1, Tab3, Tab4 from Tab2,
+        // {Tab3, Tab1}, Tab4.
+        doReturn(mTab2).when(mTabGroupModelFilter).getTabAt(POSITION1);
+        doReturn(mTab1).when(mTabGroupModelFilter).getTabAt(POSITION2);
+        doReturn(tab3).when(mTabGroupModelFilter).getTabAt(position3);
+        doReturn(tab4).when(mTabGroupModelFilter).getTabAt(position4);
+
+        mMediatorTabGroupModelFilterObserver.didMoveTabOutOfGroup(tab3, POSITION2);
+        assertEquals(mModel.size(), 4);
+        assertThat(mModel.get(0).model.get(TabProperties.TAB_ID), equalTo(tab4Id));
+        assertThat(mModel.get(1).model.get(TabProperties.TAB_ID), equalTo(TAB3_ID));
+        assertThat(mModel.get(2).model.get(TabProperties.TAB_ID), equalTo(TAB2_ID));
+        assertThat(mModel.get(3).model.get(TabProperties.TAB_ID), equalTo(TAB1_ID));
+        StartSurfaceConfiguration.SHOW_TABS_IN_MRU_ORDER.setForTesting(false);
+    }
+
+    @Test
     @Features.EnableFeatures({TAB_GROUPS_CONTINUATION_ANDROID})
     public void getLatestTitle_NotGTS() {
         setUpForTabGroupOperation(TabListMediatorType.TAB_GRID_DIALOG, TabListMode.GRID);
@@ -2961,6 +3070,7 @@
         when(tab.getView()).thenReturn(mock(View.class));
         doReturn(true).when(tab).isIncognito();
         when(mTitleProvider.getTitle(mActivity, PseudoTab.fromTab(tab))).thenReturn(title);
+        doReturn(tab).when(mTabModelSelector).getTabById(id);
         return tab;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/feedmanagement/FeedManagementActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/feedmanagement/FeedManagementActivity.java
index e09f220dc..c8804ec4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/feedmanagement/FeedManagementActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/feedmanagement/FeedManagementActivity.java
@@ -11,27 +11,32 @@
 import org.chromium.base.Log;
 import org.chromium.chrome.browser.SnackbarActivity;
 import org.chromium.chrome.browser.app.followmanagement.FollowManagementActivity;
+import org.chromium.chrome.browser.feed.FeedUma;
 import org.chromium.chrome.browser.feed.feedmanagement.FeedManagementCoordinator;
 import org.chromium.chrome.browser.feed.feedmanagement.FeedManagementMediator;
+import org.chromium.chrome.browser.feed.settings.FeedAutoplaySettingsFragment;
+import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
+import org.chromium.components.browser_ui.settings.SettingsLauncher;
 
 /**
  * Activity for managing feed and webfeed settings on the new tab page.
  */
 public class FeedManagementActivity
-        extends SnackbarActivity implements FeedManagementMediator.FollowManagementLauncher {
+        extends SnackbarActivity implements FeedManagementMediator.FollowManagementLauncher,
+                                            FeedManagementMediator.AutoplayManagementLauncher {
     private static final String TAG = "FeedMActivity";
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        FeedManagementCoordinator coordinator = new FeedManagementCoordinator(this, this);
+        FeedManagementCoordinator coordinator = new FeedManagementCoordinator(this, this, this);
         setContentView(coordinator.getView());
     }
 
     // FollowManagementLauncher method.
     @Override
-    public void launch(Context context) {
+    public void launchFollowManagement(Context context) {
         try {
             // Launch a new activity for the following management page.
             Intent intent = new Intent(context, FollowManagementActivity.class);
@@ -41,4 +46,17 @@
             Log.d(TAG, "Failed to launch activity " + e);
         }
     }
+    // AutoplayManagementLauncher method.
+    @Override
+    public void launchAutoplayManagement(Context context) {
+        try {
+            // Launch a new activity for the autoplay settings management page.
+            SettingsLauncher launcher = new SettingsLauncherImpl();
+            launcher.launchSettingsActivity(
+                    context, FeedAutoplaySettingsFragment.class, new Bundle());
+            FeedUma.recordFeedControlsAction(FeedUma.CONTROLS_ACTION_CLICKED_MANAGE_AUTOPLAY);
+        } catch (Exception e) {
+            Log.d(TAG, "Failed to launch activity " + e);
+        }
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
index 863f58e..b2f7556f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
@@ -175,7 +175,10 @@
         mWindowAndroid = windowAndroid;
 
         if (TranslateFeatureList.isEnabled(
-                    TranslateFeatureList.CONTENT_LANGUAGES_IN_LANGUAGE_PICKER)) {
+                    TranslateFeatureList.CONTENT_LANGUAGES_IN_LANGUAGE_PICKER)
+                && !TranslateFeatureList.getFieldTrialParamByFeatureAsBoolean(
+                        TranslateFeatureList.CONTENT_LANGUAGES_IN_LANGUAGE_PICKER,
+                        TranslateFeatureList.CONTENT_LANGUAGES_DISABLE_OBSERVERS_PARAM, false)) {
             mPrefChangeRegistrar = new PrefChangeRegistrar();
             mPrefChangeRegistrar.addObserver(Pref.ACCEPT_LANGUAGES, this);
         } else {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/PaymentHandlerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/PaymentHandlerMediator.java
index ac66d3b..2656723 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/PaymentHandlerMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/PaymentHandlerMediator.java
@@ -192,10 +192,6 @@
 
     // Implement BottomSheetObserver:
     @Override
-    public void onSheetFullyPeeked() {}
-
-    // Implement BottomSheetObserver:
-    @Override
     public void onSheetContentChanged(BottomSheetContent newContent) {}
 
     // Implement WebContentsObserver:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/minimal/MinimalUIMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/minimal/MinimalUIMediator.java
index d527adb..5f6cf7c42 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/minimal/MinimalUIMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/minimal/MinimalUIMediator.java
@@ -267,16 +267,18 @@
             case BottomSheetController.SheetState.FULL:
                 mModel.set(MinimalUIProperties.PAYMENT_APP_NAME_ALPHA, 1f);
                 break;
+            case BottomSheetController.SheetState.PEEK:
+                onSheetPeeked();
+                break;
         }
     }
 
-    @Override
-    public void onSheetFullyPeeked() {
+    public void onSheetPeeked() {
         // Post to avoid destroying the native JourneyLogger before it has recoreded its events in
         // tests. JourneyLogger records events after MinimalUICoordinator.show() returns, which can
-        // happen after onSheetFullyPeeked().
+        // happen after onSheetPeeked().
         mHandler.post(() -> {
-            // onSheetFullyPeeked() can be invoked more than once, but mReadyObserver.onReady() is
+            // onSheetPeeked() can be invoked more than once, but mReadyObserver.onReady() is
             // expected to be called at most once.
             if (mReadyObserver == null) return;
             mReadyObserver.onReady();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java
index 64861d7..af382a0 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java
@@ -1246,6 +1246,7 @@
     /** Same as above, but the hidden tab matching should not ignore the fragment. */
     @Test
     @SmallTest
+    @FlakyTest(message = "https://crbug.com/1237331")
     @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
     public void testHiddenTabAndChangingFragmentDontIgnoreFragments() throws Exception {
         startHiddenTabAndChangeFragment(false, true);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/jsdialog/JavascriptAppModalDialogTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/jsdialog/JavascriptAppModalDialogTest.java
index d08f82c..c69aa6c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/jsdialog/JavascriptAppModalDialogTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/jsdialog/JavascriptAppModalDialogTest.java
@@ -26,6 +26,7 @@
 import org.chromium.base.test.util.Criteria;
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.Feature;
+import org.chromium.base.test.util.FlakyTest;
 import org.chromium.base.test.util.UrlUtils;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
@@ -115,6 +116,7 @@
      */
     @Test
     @MediumTest
+    @FlakyTest(message = "https://crbug.com/1237639")
     @Feature({"Browser", "Main"})
     public void testBeforeUnloadDialogWithNoHistory() throws TimeoutException, ExecutionException {
         ChromeTabbedActivity activity = mActivityTestRule.getActivity();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
index 3be0b1d2..94185995 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
@@ -244,6 +244,7 @@
      */
     @Test
     @SmallTest
+    @FlakyTest(message = "https://crbug.com/1237369")
     @Feature({"ReturnToChrome"})
     // clang-format off
     @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS_PARAM + "/100000"
diff --git a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeBundleSmokeTest.java b/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeBundleSmokeTest.java
index fd38604..ad40d5922 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeBundleSmokeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeBundleSmokeTest.java
@@ -20,7 +20,6 @@
 import org.junit.runner.RunWith;
 
 import org.chromium.base.test.BaseJUnit4ClassRunner;
-import org.chromium.base.test.util.FlakyTest;
 import org.chromium.chrome.test.pagecontroller.rules.ChromeUiApplicationTestRule;
 import org.chromium.chrome.test.pagecontroller.rules.ChromeUiAutomatorTestRule;
 import org.chromium.chrome.test.pagecontroller.utils.IUi2Locator;
@@ -72,25 +71,21 @@
     }
 
     @Test
-    @FlakyTest(message = "https://crbug.com/1236987, https://crbug.com/1236986")
     public void testModuleJavaCodeExecution() {
         runTestActivity(0); // Test case EXECUTE_JAVA.
     }
 
     @Test
-    @FlakyTest(message = "https://crbug.com/1236987, https://crbug.com/1236986")
     public void testModuleNativeCodeExecution() {
         runTestActivity(1); // Test case EXECUTE_NATIVE.
     }
 
     @Test
-    @FlakyTest(message = "https://crbug.com/1236987, https://crbug.com/1236986")
     public void testModuleJavaResourceLoading() {
         runTestActivity(2); // Test case LOAD_JAVA_RESOURCE.
     }
 
     @Test
-    @FlakyTest(message = "https://crbug.com/1236987, https://crbug.com/1236986")
     public void testModuleNativeResourceLoading() {
         runTestActivity(3); // Test case LOAD_NATIVE_RESOURCE.
     }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/LaunchesWithColorSchemeTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/LaunchesWithColorSchemeTest.java
index 501c51ca..adf71d2 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/LaunchesWithColorSchemeTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/LaunchesWithColorSchemeTest.java
@@ -16,13 +16,14 @@
 import androidx.test.filters.SmallTest;
 
 import org.junit.After;
-import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TestRule;
 import org.junit.runner.RunWith;
 import org.robolectric.annotation.Config;
 
-import org.chromium.base.CommandLine;
 import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
@@ -32,17 +33,19 @@
 /**
  * Tests that {@link CustomTabActivity} launches into the correct color scheme.
  */
+// clang-format off
 @RunWith(BaseRobolectricTestRunner.class)
 @Config(manifest = Config.NONE)
+@CommandLineFlags.Add({
+    ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
+    ChromeSwitches.DISABLE_NATIVE_INITIALIZATION
+})
+// clang-format on
 public class LaunchesWithColorSchemeTest {
     private ActivityScenario<CustomTabActivity> mActivityScenario;
 
-    @Before
-    public void setUp() {
-        // Command line switches required to use ActivityScenario<ChromeTabbedActivity>.
-        CommandLine.getInstance().appendSwitch(ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE);
-        CommandLine.getInstance().appendSwitch(ChromeSwitches.DISABLE_NATIVE_INITIALIZATION);
-    }
+    @Rule
+    public TestRule mCommandLineFlagsRule = CommandLineFlags.getTestRule();
 
     @After
     public void tearDown() {
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java
index ca18eedd..d0785d3 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java
@@ -14,14 +14,16 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TestRule;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
-import org.chromium.base.CommandLine;
 import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.components.webapk.lib.client.WebApkValidator;
 import org.chromium.components.webapk.lib.common.WebApkMetaDataKeys;
@@ -31,14 +33,16 @@
 /** JUnit test for WebappLauncherActivity. */
 @RunWith(BaseRobolectricTestRunner.class)
 @Config(manifest = Config.NONE)
+@CommandLineFlags.Add(ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE)
 public class WebappLauncherActivityTest {
     private static final String WEBAPK_PACKAGE_NAME = "org.chromium.webapk.test_package";
     private static final String START_URL = "https://www.google.com/scope/a_is_for_apple";
 
+    @Rule
+    public TestRule mCommandLineFlagsRule = CommandLineFlags.getTestRule();
+
     @Before
     public void setUp() {
-        CommandLine.getInstance().appendSwitchWithValue(
-                ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, null);
         WebApkValidator.setDisableValidationForTesting(true);
     }
 
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index 292fee1..dd523bb 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -5678,6 +5678,10 @@
     1x
   </message>
 
+  <message name="IDS_PROJECTOR_APP_NAME" desc="Name for the Projector app in the launcher">
+    Projector
+  </message>
+
   <!-- Dictation accessibility feature confirmation dialog -->
   <message name="IDS_ACCESSIBILITY_DICTATION_CONFIRMATION_TITLE" desc="The title for the modal dialog shown the first time the user enables dictation. Only displayed if the user is using network speech recognition.">
     Dictation
diff --git a/chrome/app/chromeos_strings_grdp/IDS_PROJECTOR_APP_NAME.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_PROJECTOR_APP_NAME.png.sha1
new file mode 100644
index 0000000..d5ca504
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_PROJECTOR_APP_NAME.png.sha1
@@ -0,0 +1 @@
+ab7151f61e14d70c7a6cc62cd8bd118417f092c7
\ No newline at end of file
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 5225241..475239ee 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -2942,6 +2942,18 @@
       <message name="IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_PREDICTION_SERVICE_DESCRIPTION" desc="Text used as notification message when requesting permission for Web Notifications via a notification. Used when the prediction service has decided that the user will be very unlikely to grant this permission.">
         Notifications were automatically blocked because you usually don't allow them
       </message>
+      <message name="IDS_GEOLOCATION_OFF_EXPLANATORY_TEXT" desc="Explanatory animated text that appears (and then disappears) in the address bar as part of the less-prominent UX, when a website requests the geolocation permission.">
+        Location blocked
+      </message>
+      <message name="IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_TITLE" desc="Title for the notifications status bubble, which is triggered when a user clicks on the blocked notifications icon in the omnibox.">
+        Location blocked
+      </message>
+      <message name="IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_PREDICTION_SERVICE_DESCRIPTION" desc="Text used as notification message when requesting permission for Geolocation. Used when the prediction service has decided that the user will be very unlikely to grant this permission.">
+        This site was blocked from knowing your precise location because you usually don't allow this
+      </message>
+    <message name="IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_ALLOW_BUTTON" desc="Text displayed on the button that enables geolocation for a site. This button is part of the geolocation status bubble, which is triggered when a user clicks on the blocked geolocation icon in the omnibox.">
+      Allow for this site
+    </message>
 
       <!-- Cookie controls strings. -->
       <message name="IDS_COOKIE_CONTROLS_DIALOG_TITLE" desc="Title of the dialog that allows users to control cookie blocking.">
diff --git a/chrome/app/generated_resources_grd/IDS_GEOLOCATION_OFF_EXPLANATORY_TEXT.png.sha1 b/chrome/app/generated_resources_grd/IDS_GEOLOCATION_OFF_EXPLANATORY_TEXT.png.sha1
new file mode 100644
index 0000000..b03c1b29
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_GEOLOCATION_OFF_EXPLANATORY_TEXT.png.sha1
@@ -0,0 +1 @@
+d675b353a16de9803803dadd6e2c5a449c2ca23d
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_ALLOW_BUTTON.png.sha1 b/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_ALLOW_BUTTON.png.sha1
new file mode 100644
index 0000000..038c554
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_ALLOW_BUTTON.png.sha1
@@ -0,0 +1 @@
+3dd42f508eb34a284912f6e92f0e03bb159bbbf9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_PREDICTION_SERVICE_DESCRIPTION.png.sha1 b/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_PREDICTION_SERVICE_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..038c554
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_PREDICTION_SERVICE_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+3dd42f508eb34a284912f6e92f0e03bb159bbbf9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_TITLE.png.sha1 b/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_TITLE.png.sha1
new file mode 100644
index 0000000..038c554
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_TITLE.png.sha1
@@ -0,0 +1 @@
+3dd42f508eb34a284912f6e92f0e03bb159bbbf9
\ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index 5b2755b..b865baf 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -137,7 +137,7 @@
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium బీటా</translation>
 <translation id="5479196819031988440">Chromium OS ఈ పేజీని తెరవలేదు.</translation>
 <translation id="5480860683791598150">ఈ సైట్‌తో మీ స్థానాన్ని షేర్ చేయడానికి Chromiumకు మీ స్థాన యాక్సెస్ అవసరం</translation>
-<translation id="549669000822060376">దయచేసి Chromium తాజా సిస్టమ్ నవీకరణలను ఇన్‌స్టాల్ చేస్తున్నప్పుడు వేచి ఉండండి.</translation>
+<translation id="549669000822060376">దయచేసి Chromium తాజా సిస్టమ్ అప్‌డేట్‌లను ఇన్‌స్టాల్ చేస్తున్నప్పుడు వేచి ఉండండి.</translation>
 <translation id="5496810170689441661">పాస్‌వర్డ్‌లను ఎడిట్ చేయడానికి Chromium ప్రయత్నిస్తోంది. దీన్ని అనుమతించడానికి మీ Windows పాస్‌వర్డ్‌ను టైప్ చేయండి.</translation>
 <translation id="5527463683072221100">Chromiumలో PDFలను తెరవండి</translation>
 <translation id="5623402015214259806">{0,plural, =0{ఒక Chromium అప్‌డేట్ అందుబాటులో ఉంది}=1{ఒక Chromium అప్‌డేట్ అందుబాటులో ఉంది}other{ఒక Chromium అప్‌డేట్ # రోజులుగా అందుబాటులో ఉంది}}</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 36b499f..746e0ab 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -446,6 +446,7 @@
 <translation id="1476088332184200792">Kopieer na jou toestel toe</translation>
 <translation id="1476607407192946488">Taalinstellings …</translation>
 <translation id="1477446329585670721"><ph name="DOMAIN" /> vereis dat jy jou slimkaart ingesteek hou.</translation>
+<translation id="1477654881618305065">Jou organisasie laat jou nie toe om hierdie inhoud te deel nie. Kontak jou administrateur as jy hulp nodig het.</translation>
 <translation id="1478340334823509079">Besonderhede: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">Installering is nie geaktiveer nie</translation>
 <translation id="1480571698637441426">Gee jou Assistent toegang tot 'n skermskoot van wat op jou skerm is om gepasmaakte antwoorde te kry wanneer jy vrae vra. Dit kan ook inligting insluit oor liedjies of video's wat speel.</translation>
@@ -621,6 +622,7 @@
 <translation id="1643921258693943800">Skakel Bluetooth en wi-fi aan om Nabydeling te gebruik</translation>
 <translation id="1644574205037202324">Geskiedenis</translation>
 <translation id="1645516838734033527">Smart Lock vereis 'n skermslot op jou foon om jou <ph name="DEVICE_TYPE" /> veilig te hou.</translation>
+<translation id="1646793251510634025">Gaan instellings na om soek en blaai te optimeer</translation>
 <translation id="1646982517418478057">Voer asseblief 'n wagwoord in om hierdie sertifikaatlêer te enkripteer</translation>
 <translation id="1648528859488547844">Gebruik Wi-Fi of selnetwerke om ligging te bepaal</translation>
 <translation id="164936512206786300">Maak Bluetooth-toestel los</translation>
@@ -1476,6 +1478,7 @@
 <translation id="2514326558286966059">Ontsluit vinniger met jou vingerafdruk</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Wys nog een skakelaar toe</translation>
+<translation id="251722524540674480">Bevestig jou gebruikernaam</translation>
 <translation id="2517472476991765520">Skandeer</translation>
 <translation id="2518024842978892609">Gebruik jou kliëntsertifikate</translation>
 <translation id="2519517390894391510">Sertifikaatprofielnaam</translation>
@@ -2180,6 +2183,7 @@
 <translation id="3288047731229977326">Uitbreidings wat in ontwikkelaarmodus laat loop word, kan jou rekenaar beskadig. As jy nie 'n ontwikkelaar is nie, moet jy hierdie uitbreidings wat in ontwikkelaarmodus laat loop word, deaktiveer om veilig te bly.</translation>
 <translation id="3289668031376215426">Outohoofletters</translation>
 <translation id="3289856944988573801">Gebruik asseblief Ethernet of Wi-Fi om te kyk of daar opdaterings is.</translation>
+<translation id="3291436823898732747">Blaai-ervaring is verbeter: Byvoorbeeld, voorstelle in die Omniboks voordat jy begin tik</translation>
 <translation id="3293644607209440645">Stuur hierdie bladsy</translation>
 <translation id="32939749466444286">Die Linux-houer het nie begin nie. Probeer asseblief weer.</translation>
 <translation id="3294437725009624529">Gas</translation>
@@ -2666,7 +2670,6 @@
 <translation id="3797900183766075808">&amp;Deursoek <ph name="SEARCH_ENGINE" /> vir "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798449238516105146">Weergawe</translation>
 <translation id="3799128412641261490">Skakelaartoegang-instellings</translation>
-<translation id="3799903419983101749">Gaan voort waar jy opgehou het. Jy kan in Instellings stel dat programme outomaties teruggelaai word.</translation>
 <translation id="3800806661949714323">Wys almal (aanbeveel)</translation>
 <translation id="380329542618494757">Naam</translation>
 <translation id="3803345858388753269">Videogehalte</translation>
@@ -4135,7 +4138,6 @@
 <translation id="5430931332414098647">Kitsverbinding</translation>
 <translation id="5431318178759467895">Kleur</translation>
 <translation id="543338862236136125">Wysig wagwoord</translation>
-<translation id="5433791271511851494">Opsies om te deel word deur jou organisasie bestuur.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA-enkripsie</translation>
 <translation id="5435779377906857208">Laat <ph name="HOST" /> altyd toe om toegang tot jou ligging te kry</translation>
 <translation id="5436492226391861498">Wag tans vir instaanbedienertonnel …</translation>
@@ -4217,6 +4219,7 @@
 <translation id="5505307013568720083">Ink is op</translation>
 <translation id="5505794066310932198">Wissel opdraggewer</translation>
 <translation id="5507756662695126555">Nie-verwerping</translation>
+<translation id="5507795078844206688">URL van die bladsye wat jy besoek, bv. https://www.google.com</translation>
 <translation id="5509693895992845810">Stoor as …</translation>
 <translation id="5509914365760201064">Uitreiker: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Kry prentbeskrywings van Google af</translation>
@@ -4534,6 +4537,7 @@
 <translation id="5869522115854928033">Gestoorde wagwoorde</translation>
 <translation id="5870086504539785141">Maak toeganklikheidkieslys toe</translation>
 <translation id="5870155679953074650">Harde foute</translation>
+<translation id="5875534259258494936">Skermdeling het geëindig</translation>
 <translation id="5876576639916258720">Werk tans …</translation>
 <translation id="5876851302954717356">Nuwe oortjie aan die regterkant</translation>
 <translation id="5877064549588274448">Kanaal het verander. Herbegin jou toestel om veranderinge toe te pas.</translation>
@@ -5393,6 +5397,7 @@
 <translation id="6812349420832218321"><ph name="PRODUCT_NAME" /> kan nie as wortel gebruik word nie.</translation>
 <translation id="6812841287760418429">Hou veranderings</translation>
 <translation id="6813907279658683733">Hele skerm</translation>
+<translation id="6814033694018386318">Wat jy met Google deel</translation>
 <translation id="6817174620439930047">Vra wanneer 'n werf stelseleksklusiewe boodskappe wil gebruik om toegang tot MIDI-toestelle te kry (aanbeveel)</translation>
 <translation id="6818198425579322765">Bladsytaal om te vertaal</translation>
 <translation id="6818802132960437751">Ingeboude virusbeskerming</translation>
@@ -5888,6 +5893,7 @@
 <translation id="7374376573160927383">Bestuur USB-toestelle</translation>
 <translation id="7374461526650987610">Protokolhanteerders</translation>
 <translation id="7375235221357833624">{0,plural, =1{Dateer toestel binne 'n uur op}other{Dateer toestel binne # uur op}}</translation>
+<translation id="7376543451826039186">Om vinniger te blaai: Byvoorbeeld, laai spesifieke bykomende inhoud proaktief op gegrond op die huidige bladsy</translation>
 <translation id="7376553024552204454">Lig die muismerker uit wanneer dit beweeg</translation>
 <translation id="737728204345822099">'n Rekord van jou besoek aan hierdie werf kan op jou sekuriteitsleutel gehou word.</translation>
 <translation id="7377451353532943397">Hou aan om sensortoegang te blokkeer</translation>
@@ -5945,6 +5951,7 @@
 <translation id="7427798576651127129">Oproep vanaf <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">Geen HID-toestelle gekry nie</translation>
 <translation id="7431991332293347422">Beheer hoe jou blaaigeskiedenis gebruik word om Search en meer te personaliseer</translation>
+<translation id="7432200167665670017">Jou admin het "<ph name="EXTENSION_NAME" />" – program-ID <ph name="EXTENSION_ID" /> geblokkeer</translation>
 <translation id="7433708794692032816">Sit slimkaart in om aan te hou om jou <ph name="DEVICE_TYPE" /> te gebruik</translation>
 <translation id="7433957986129316853">Hou dit</translation>
 <translation id="7434509671034404296">Ontwikkelaar</translation>
@@ -5974,6 +5981,7 @@
 <translation id="7460045493116006516">Huidige tema wat jy geïnstalleer het</translation>
 <translation id="7461924472993315131">Pin</translation>
 <translation id="746216226901520237">Jou foon sal volgende keer jou <ph name="DEVICE_TYPE" /> ontsluit. Jy kan Smart Lock in Instellings afskakel.</translation>
+<translation id="7464637891177137294">Stoor dit in jou Google-rekening, <ph name="ACCOUNT" /></translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# oop oortjie; druk om oortjiestrook te wissel}other{# oop oortjies; druk om oortjiestrook te wissel}}</translation>
 <translation id="7465635034594602553">Iets is fout. Wag asseblief 'n paar minute en laat loop <ph name="APP_NAME" /> dan weer.</translation>
 <translation id="7465778193084373987">Netscape-sertifikaatherroeping se URL</translation>
@@ -6037,6 +6045,7 @@
 <translation id="7525625923260515951">Hoor gekose teks</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{Nog 1}other{Nog {NUM_DOWNLOADS}}}</translation>
 <translation id="7526989658317409655">Plekhouer</translation>
+<translation id="7527758104894292229">Dateer dit op in jou Google-rekening, <ph name="ACCOUNT" /></translation>
 <translation id="7529411698175791732">Gaan jou internetverbinding na. As die probleem voortduur, probeer afmeld en weer aanmeld.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Maak gas toe}other{Maak gas toe}}</translation>
 <translation id="7530016656428373557">Ontladingkoers in Watt</translation>
@@ -6424,6 +6433,7 @@
 <translation id="7898725031477653577">Vertaal altyd</translation>
 <translation id="790040513076446191">Manipuleer privaatheidverwante instellings</translation>
 <translation id="7901405293566323524">Foonspil</translation>
+<translation id="7901914889562552258">Chrome is verbeter met gebruik van bladsymaatstawwe</translation>
 <translation id="7903345046358933331">Die bladsy het ophou reageer. Jy kan wag tot dit reageer of dit toemaak.</translation>
 <translation id="7903742244674067440">Jy het sertifikate op lêer wat hierdie sertifikaatoutoriteite identifiseer</translation>
 <translation id="7903859912536385558">stabiel (vertroude toetser)</translation>
@@ -6889,6 +6899,7 @@
 <translation id="8392364544846746346">Vra wanneer 'n werf lêers of vouers op jou toestel wil wysig</translation>
 <translation id="8392451568018454956">Opsieskieslys vir <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8393511274964623038">Stop inprop</translation>
+<translation id="839363317075970734">Bluetooth-toestelbesonderhede</translation>
 <translation id="8393700583063109961">Stuur boodskap</translation>
 <translation id="8397825320644530257">Ontkoppel gekoppelde foon</translation>
 <translation id="8398877366907290961">Gaan nogtans voort</translation>
@@ -7139,6 +7150,7 @@
 <translation id="8681614230122836773">Chrome het skadelike sagteware op jou rekenaar gekry</translation>
 <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> is gekoppel en gereed</translation>
 <translation id="8683081248374354009">Stel groep terug</translation>
+<translation id="8683526617475118045">Wat jy kry</translation>
 <translation id="8688672835843460752">Beskikbaar</translation>
 <translation id="8690129572193755009">Werwe kan vra om protokolle te hanteer</translation>
 <translation id="8695139659682234808">Voeg ouerkontroles by ná opstelling</translation>
@@ -7192,6 +7204,7 @@
 <translation id="8737685506611670901">Maak <ph name="PROTOCOL" />-skakels oop pleks van <ph name="REPLACED_HANDLER_TITLE" /></translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Kies die taal waarin die bladsy vertaal moet word</translation>
+<translation id="8737916108453753541">Die URL'e word met Google gedeel om die blaaigedrag beter te verstaan</translation>
 <translation id="8740247629089392745">Jy kan hierdie Chromebook aan <ph name="SUPERVISED_USER_NAME" /> oorhandig. Die opstelling is amper klaar. Dan is dit tyd om te verken.</translation>
 <translation id="8741944563400125534">Opstellinggids vir skakelaartoegang</translation>
 <translation id="8742998548129056176">Dit is algemene inligting oor jou toestel en hoe jy dit gebruik (soos batteryvlak, stelsel- en programaktiwiteit en foute). Die data sal gebruik word om Android beter te maak, en sekere saamgestelde inligting sal ook Google-programme en -vennote, soos Android-ontwikkelaars, help om hul programme en produkte beter te maak.</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 0f8ae8d0..99cd07a 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -2660,7 +2660,6 @@
 <translation id="3797900183766075808">«<ph name="SEARCH_TERMS" />»ን በ<ph name="SEARCH_ENGINE" /> ውስጥ &amp;ፈልግ</translation>
 <translation id="3798449238516105146">ስሪት</translation>
 <translation id="3799128412641261490">የመዳረሻ መቀየሪያ ቅንብሮች</translation>
-<translation id="3799903419983101749">ካቆሙበት ይቀጥሉ። በራስ-ሰር ወደነበሩበት እንዲመለሱ መተግበሪያዎችን በቅንብሮች ውስጥ ማቀናበር ይችላሉ።</translation>
 <translation id="3800806661949714323">ሁሉንም አሳይ (የሚመከር)</translation>
 <translation id="380329542618494757">ስም</translation>
 <translation id="3803345858388753269">የቪዲዮ ጥራት</translation>
@@ -4126,7 +4125,6 @@
 <translation id="5430931332414098647">ቅጽበታዊ እንደ ሞደም መሰካት</translation>
 <translation id="5431318178759467895">ቀለም</translation>
 <translation id="543338862236136125">የይለፍ ቃል አርትዕ</translation>
-<translation id="5433791271511851494">የሚጋሩ አማራጮች በድርጅትዎ የሚተዳደሩ ናቸው።</translation>
 <translation id="5434065355175441495">PKCS #1 RSA ምስጠራ</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> ሁልጊዜ የእርስዎን አካባቢ እንዲደርስ ይፍቀዱ</translation>
 <translation id="5436492226391861498">ተኪ መሹለኪያን በመጠበቅ ላይ...</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index e1cf681..829fe3d1 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -2657,7 +2657,6 @@
 <translation id="3797900183766075808">&amp;بحث <ph name="SEARCH_ENGINE" /> عن "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798449238516105146">الإصدار</translation>
 <translation id="3799128412641261490">إعدادات "الوصول عبر مفتاح التحويل"</translation>
-<translation id="3799903419983101749">أمامك فرصة للمتابعة من حيث توقفت. ويمكنك ضبط التطبيقات لاستعادتها تلقائيًا في "الإعدادات".</translation>
 <translation id="3800806661949714323">عرض الكل (مستحسن)</translation>
 <translation id="380329542618494757">الاسم</translation>
 <translation id="3803345858388753269">جودة الفيديو</translation>
@@ -4122,7 +4121,6 @@
 <translation id="5430931332414098647">التوصيل الفوري</translation>
 <translation id="5431318178759467895">بالألوان</translation>
 <translation id="543338862236136125">تعديل كلمة المرور</translation>
-<translation id="5433791271511851494">تتولّى مؤسستك إدارة خيارات المشاركة.</translation>
 <translation id="5434065355175441495">‏ترميز PKCS #1 RSA</translation>
 <translation id="5435779377906857208">السماح دائمًا للنطاق <ph name="HOST" /> بالوصول إلى موقعك الجغرافي</translation>
 <translation id="5436492226391861498">في انتظار قناة الخادم...</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index e1bce88..66c2b0c 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -2663,7 +2663,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />”ৰ বাবে <ph name="SEARCH_ENGINE" />ত &amp;সন্ধান কৰক</translation>
 <translation id="3798449238516105146">সংস্কৰণ</translation>
 <translation id="3799128412641261490">ছুইচৰ দ্বাৰা এক্সেছৰ ছেটিংসমূহ</translation>
-<translation id="3799903419983101749">আপুনি য’ত এৰিছিল তাৰ পৰাই অব্যাহত ৰাখক। আপুনি ছেটিঙত স্বয়ংক্ৰিয়ভাৱে পুনঃস্থাপন কৰিবলৈ এপ্ ছেট কৰিব পাৰে।</translation>
 <translation id="3800806661949714323">সকলো দেখুৱাওক (চুপাৰিছ কৰা)</translation>
 <translation id="380329542618494757">নাম</translation>
 <translation id="3803345858388753269">ভিডিঅ’ৰ গুণগত মান</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index c15fad3..9cdf462 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -2649,7 +2649,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” üçün <ph name="SEARCH_ENGINE" /> axtarın</translation>
 <translation id="3798449238516105146">Versiya</translation>
 <translation id="3799128412641261490">Düymə ilə giriş ayarları</translation>
-<translation id="3799903419983101749">Qaldığınız yerdən davam edin. Ayarlarda tətbiqlərin avtomatik bərpa olmasını ayarlaya bilərsiniz.</translation>
 <translation id="3800806661949714323">Hamısını göstərin (tövsiyə olunur)</translation>
 <translation id="380329542618494757">Ad</translation>
 <translation id="3803345858388753269">Video Keyfiyyəti</translation>
@@ -4115,7 +4114,6 @@
 <translation id="5430931332414098647">Cəld modem rejimi</translation>
 <translation id="5431318178759467895">Rəng</translation>
 <translation id="543338862236136125">Parolu redaktə edin</translation>
-<translation id="5433791271511851494">Paylaşım seçimləri təşkilatınız tərəfindən idarə olunur.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA Şifrələmə</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> üçün həmişə məkanınıza giriş icazəsi verin</translation>
 <translation id="5436492226391861498">Proksi tunel gözlənilir...</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index ad82316..b8b7091 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -2653,7 +2653,6 @@
 <translation id="3797900183766075808">&amp;Шукаць у <ph name="SEARCH_ENGINE" /> "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798449238516105146">Версія</translation>
 <translation id="3799128412641261490">Налады доступу праз пераключальнікі</translation>
-<translation id="3799903419983101749">Працягвайце работу з таго месца, на якім спыніліся. У Наладах можна задаць параметры аўтаматычнага аднаўлення праграм</translation>
 <translation id="3800806661949714323">Паказваць усе (рэкамендуецца)</translation>
 <translation id="380329542618494757">Імя</translation>
 <translation id="3803345858388753269">Якасць відэа</translation>
@@ -4119,7 +4118,6 @@
 <translation id="5430931332414098647">Імгненны рэжым мадэма</translation>
 <translation id="5431318178759467895">Колер</translation>
 <translation id="543338862236136125">Змяніць пароль</translation>
-<translation id="5433791271511851494">Параметрамі абагульвання кіруе ваша арганізацыя.</translation>
 <translation id="5434065355175441495">Шыфраванне PKCS #1 RSA</translation>
 <translation id="5435779377906857208">Заўсёды даваць сайту <ph name="HOST" /> доступ да даных пра ваша месцазнаходжанне</translation>
 <translation id="5436492226391861498">Чакаецца проксі-тунэль...</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 20e1babe1..8e9a072 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;Търсене на „<ph name="SEARCH_TERMS" />“ със: <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Версия</translation>
 <translation id="3799128412641261490">Настройки на достъпа с превключване</translation>
-<translation id="3799903419983101749">Продължавайте оттам, откъдето сте прекъснали. От настройките можете да зададете приложенията да се възстановяват автоматично.</translation>
 <translation id="3800806661949714323">Показване на всички (препоръчително)</translation>
 <translation id="380329542618494757">Име</translation>
 <translation id="3803345858388753269">Качество на картината</translation>
@@ -4136,7 +4135,6 @@
 <translation id="5430931332414098647">Незабавен тетъринг</translation>
 <translation id="5431318178759467895">Цветно</translation>
 <translation id="543338862236136125">Редактиране на паролата</translation>
-<translation id="5433791271511851494">Опциите за споделяне се управляват от организацията ви.</translation>
 <translation id="5434065355175441495">PKCS 1 с RSA шифроване</translation>
 <translation id="5435779377906857208">Достъпът на <ph name="HOST" /> до местоположението ви да е разрешен винаги</translation>
 <translation id="5436492226391861498">Изчаква се прокси тунел...</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index ffd821a..589cb6c 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> এ “<ph name="SEARCH_TERMS" />” এর &amp;অনুসন্ধান করুন</translation>
 <translation id="3798449238516105146">ভার্সন</translation>
 <translation id="3799128412641261490">অ্যাক্সেস সেটিংস পাল্টান</translation>
-<translation id="3799903419983101749">আপনি যেখানে শেষ করেছিলেন সেখান থেকে চালু করুন। সেটিংস থেকে অটোমেটিক ফিরিয়ে আনতে অ্যাপ সেট করতে পারেন।</translation>
 <translation id="3800806661949714323">সব দেখান (প্রস্তাবিত)</translation>
 <translation id="380329542618494757">নাম</translation>
 <translation id="3803345858388753269">ভিডিও কোয়ালিটি</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 23897438..b6b6db51 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -2664,7 +2664,6 @@
 <translation id="3797900183766075808">&amp;Pretraži termin “<ph name="SEARCH_TERMS" />” u pretraživaču <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Verzija</translation>
 <translation id="3799128412641261490">Postavke prekidača za pristup</translation>
-<translation id="3799903419983101749">Nastavite gdje ste stali. U Postavkama možete postaviti da se aplikacije automatski vraćaju.</translation>
 <translation id="3800806661949714323">Prikaži sve (preporučeno)</translation>
 <translation id="380329542618494757">Ime</translation>
 <translation id="3803345858388753269">Kvalitet videozapisa</translation>
@@ -4133,7 +4132,6 @@
 <translation id="5430931332414098647">Trenutno povezivanje putem mobitela</translation>
 <translation id="5431318178759467895">Boja</translation>
 <translation id="543338862236136125">Uredite lozinku</translation>
-<translation id="5433791271511851494">Opcijama dijeljenja upravlja vaša organizacija.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA šifriranje</translation>
 <translation id="5435779377906857208">Uvijek dozvoli pristup lokaciji za web lokaciju <ph name="HOST" /></translation>
 <translation id="5436492226391861498">Čekanje na proksi tunel...</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index a499c08..4a5a7f1 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -2650,7 +2650,6 @@
 <translation id="3797900183766075808">&amp;Cerca "<ph name="SEARCH_TERMS" />" a <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versió</translation>
 <translation id="3799128412641261490">Configuració d'accés amb interruptors</translation>
-<translation id="3799903419983101749">Continua des d'on ho vas deixar. Pots definir que les aplicacions es restaurin automàticament a Configuració.</translation>
 <translation id="3800806661949714323">Mostra-ho tot (opció recomanada)</translation>
 <translation id="380329542618494757">Nom</translation>
 <translation id="3803345858388753269">Qualitat del vídeo</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">Compartició de xarxa instantània</translation>
 <translation id="5431318178759467895">Color</translation>
 <translation id="543338862236136125">Edita la contrasenya</translation>
-<translation id="5433791271511851494">La teva organització gestiona les opcions de compartició.</translation>
 <translation id="5434065355175441495">PKCS #1 amb encriptació RSA</translation>
 <translation id="5435779377906857208">Permet sempre que <ph name="HOST" /> accedeixi a la meva ubicació</translation>
 <translation id="5436492226391861498">S'està esperant un túnel de servidor intermediari...</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 3f9c2823..b1158b1 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -2651,7 +2651,6 @@
 <translation id="3797900183766075808">&amp;Vyhledat „<ph name="SEARCH_TERMS" />“ pomocí vyhledávače <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Verze</translation>
 <translation id="3799128412641261490">Nastavení přístupu pomocí přepínačů</translation>
-<translation id="3799903419983101749">Pokračujte tam, kde jste přestali. V Nastavení můžete nastavit automatické obnovování aplikací.</translation>
 <translation id="3800806661949714323">Zobrazit vše (doporučeno)</translation>
 <translation id="380329542618494757">Název</translation>
 <translation id="3803345858388753269">Kvalita videa</translation>
@@ -2766,7 +2765,7 @@
 <translation id="3905761538810670789">Opravit aplikaci</translation>
 <translation id="3908393983276948098">Plugin <ph name="PLUGIN_NAME" /> je zastaralý</translation>
 <translation id="3908501907586732282">Aktivovat rozšíření</translation>
-<translation id="3909701002594999354">&amp;Zobrazit všechny ovládací prvky</translation>
+<translation id="3909701002594999354">Zobrazit všechny ovládací prvky</translation>
 <translation id="3909791450649380159">Vyjmou&amp;t</translation>
 <translation id="39103738135459590">Aktivační kód</translation>
 <translation id="3911824782900911339">Stránka Nová karta</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">Dynamický tethering</translation>
 <translation id="5431318178759467895">Barevně</translation>
 <translation id="543338862236136125">Upravit heslo</translation>
-<translation id="5433791271511851494">Možnosti sdílení spravuje vaše organizace.</translation>
 <translation id="5434065355175441495">Šifrování PKCS #1 RSA</translation>
 <translation id="5435779377906857208">Webu <ph name="HOST" /> vždy povolit přístup k poloze</translation>
 <translation id="5436492226391861498">Čeká se na tunel proxy...</translation>
@@ -5157,7 +5155,7 @@
 <translation id="657402800789773160">&amp;Načíst tuto stránku znovu</translation>
 <translation id="6577284282025554716">Stahování zrušeno: <ph name="FILE_NAME" /></translation>
 <translation id="657866106756413002">Přehled o zdraví sítě</translation>
-<translation id="6579369886355986318">&amp;Zobrazit všechny ovládací prvky</translation>
+<translation id="6579369886355986318">Zobrazit všechny ovládací prvky</translation>
 <translation id="6579705087617859690"><ph name="WINDOW_TITLE" /> – sdílí obsah plochy</translation>
 <translation id="6580203076670148210">Rychlost procházení</translation>
 <translation id="6582080224869403177">Resetujte zařízení <ph name="DEVICE_TYPE" />, aby se upgradovalo zabezpečení</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index dd1826f..cc8fa90 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -447,6 +447,7 @@
 <translation id="1476088332184200792">Kopiér til din enhed</translation>
 <translation id="1476607407192946488">&amp;Sprogindstillinger</translation>
 <translation id="1477446329585670721"><ph name="DOMAIN" /> kræver, at chipkortet er indsat.</translation>
+<translation id="1477654881618305065">Din organisation tillader ikke, at du deler dette indhold. Hvis du har brug for hjælp, skal du kontakte din administrator.</translation>
 <translation id="1478340334823509079">Detaljer: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">Installationen er ikke aktiveret</translation>
 <translation id="1480571698637441426">Få personligt tilpassede svar, når du stiller spørgsmål, ved at give Google Assistent adgang til et screenshot af oplysninger på din skærm. Dette screenshot kan også indeholde oplysninger om sange eller videoer, der afspilles.</translation>
@@ -622,6 +623,7 @@
 <translation id="1643921258693943800">Aktivér Bluetooth eller Wi-Fi for at bruge Deling tæt på</translation>
 <translation id="1644574205037202324">Historik</translation>
 <translation id="1645516838734033527">For at beskytte din <ph name="DEVICE_TYPE" /> kræver Smart Lock en skærmlås på din telefon.</translation>
+<translation id="1646793251510634025">Gennemse indstillinger for optimering af søgning og browsing</translation>
 <translation id="1646982517418478057">Angiv en adgangskode til kryptering af dette certifikat</translation>
 <translation id="1648528859488547844">Brug Wi-Fi eller mobilnetværk til at fastslå placeringen</translation>
 <translation id="164936512206786300">Fjern parring af Bluetooth-enhed</translation>
@@ -1477,6 +1479,7 @@
 <translation id="2514326558286966059">Lås op hurtigere med dit fingeraftryk</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Tildel en anden kontakt</translation>
+<translation id="251722524540674480">Bekræft dit brugernavn</translation>
 <translation id="2517472476991765520">Scan</translation>
 <translation id="2518024842978892609">Brug dine klientcertifikater</translation>
 <translation id="2519517390894391510">Navn på certifikatprofil</translation>
@@ -2181,6 +2184,7 @@
 <translation id="3288047731229977326">Udvidelser, der kører i udviklertilstand, kan skade din computer. Hvis du ikke er udvikler, skal du deaktivere udvidelserne, der kører i udviklertilstand, af hensyn til sikkerheden.</translation>
 <translation id="3289668031376215426">Skriv automatisk med stort</translation>
 <translation id="3289856944988573801">Du kan søge efter opdateringer via Ethernet eller Wi-Fi.</translation>
+<translation id="3291436823898732747">Forbedret browsing: Du får f.eks. forslag i omnifeltet, inden du begynder at skrive</translation>
 <translation id="3293644607209440645">Send denne side</translation>
 <translation id="32939749466444286">Linux-containeren startede ikke. Prøv igen.</translation>
 <translation id="3294437725009624529">Gæst</translation>
@@ -2667,7 +2671,6 @@
 <translation id="3797900183766075808">&amp;Søg på <ph name="SEARCH_ENGINE" /> efter "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798449238516105146">Version</translation>
 <translation id="3799128412641261490">Indstillinger for kontaktadgang</translation>
-<translation id="3799903419983101749">Fortsæt, hvor du slap. Du kan indstille apps til automatisk at blive gendannet ved at gå til Indstillinger.</translation>
 <translation id="3800806661949714323">Vis alle (anbefales)</translation>
 <translation id="380329542618494757">Navn</translation>
 <translation id="3803345858388753269">Videokvalitet</translation>
@@ -4136,7 +4139,6 @@
 <translation id="5430931332414098647">Øjeblikkelig netdeling</translation>
 <translation id="5431318178759467895">Farve</translation>
 <translation id="543338862236136125">Rediger adgangskode</translation>
-<translation id="5433791271511851494">Delingsindstilingerne administreres af din organisation.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA-kryptering</translation>
 <translation id="5435779377906857208">Tillad altid, at <ph name="HOST" /> kan få adgang til din placering</translation>
 <translation id="5436492226391861498">Venter på proxytunnel...</translation>
@@ -4218,6 +4220,7 @@
 <translation id="5505307013568720083">Der mangler blæk</translation>
 <translation id="5505794066310932198">Toggle Commander</translation>
 <translation id="5507756662695126555">Uafviselighed</translation>
+<translation id="5507795078844206688">Webadressen til de sider, du besøger, f.eks. https://www.google.com</translation>
 <translation id="5509693895992845810">Gem &amp;som...</translation>
 <translation id="5509914365760201064">Udsteder: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Hent billedbeskrivelser fra Google</translation>
@@ -4534,6 +4537,7 @@
 <translation id="5869522115854928033">Gemte adgangskoder</translation>
 <translation id="5870086504539785141">Luk menuen for hjælpefunktioner</translation>
 <translation id="5870155679953074650">Hårde fejl</translation>
+<translation id="5875534259258494936">Skærmdeling er afsluttet</translation>
 <translation id="5876576639916258720">Kører...</translation>
 <translation id="5876851302954717356">Ny fane til højre</translation>
 <translation id="5877064549588274448">Kanalen er ændret. Genstart din enhed for at anvende ændringerne.</translation>
@@ -5393,6 +5397,7 @@
 <translation id="6812349420832218321"><ph name="PRODUCT_NAME" /> kan ikke køres med rodcertifikat.</translation>
 <translation id="6812841287760418429">Behold ændringer</translation>
 <translation id="6813907279658683733">Hele skærmen</translation>
+<translation id="6814033694018386318">Det deler du med Google</translation>
 <translation id="6817174620439930047">Spørg mig, når et website vil anvende interne systemmeddelelser til at få adgang til MIDI-enheder (anbefales)</translation>
 <translation id="6818198425579322765">Sidens sprog, som skal oversættes</translation>
 <translation id="6818802132960437751">Indbygget virusbeskyttelse</translation>
@@ -5888,6 +5893,7 @@
 <translation id="7374376573160927383">Administrer USB-enheder</translation>
 <translation id="7374461526650987610">Protokolhåndtering</translation>
 <translation id="7375235221357833624">{0,plural, =1{Genstart enheden inden for en time}one{Genstart enheden inden for # time}other{Genstart enheden inden for # timer}}</translation>
+<translation id="7376543451826039186">Hurtigere browsing: Der indlæses f.eks. automatisk yderligere specifikt indhold baseret på den aktuelle side</translation>
 <translation id="7376553024552204454">Fremhæv musemarkøren, når den bevæger sig</translation>
 <translation id="737728204345822099">En registrering af dit besøg på dette website gemmes muligvis på din sikkerhedsnøgle.</translation>
 <translation id="7377451353532943397">Fortsæt blokering af adgang til sensorer</translation>
@@ -5945,6 +5951,7 @@
 <translation id="7427798576651127129">Ring fra <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">Der blev ikke fundet nogen HID-enheder</translation>
 <translation id="7431991332293347422">Bestem selv, hvordan din browserhistorik skal bruges til at tilpasse søgeresultater m.m.</translation>
+<translation id="7432200167665670017">Din administrator har blokeret "<ph name="EXTENSION_NAME" />" – app-id <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">Indsæt chipkortet for at blive ved med at bruge din <ph name="DEVICE_TYPE" /></translation>
 <translation id="7433957986129316853">Behold den</translation>
 <translation id="7434509671034404296">Udvikler</translation>
@@ -5974,6 +5981,7 @@
 <translation id="7460045493116006516">Det aktuelle tema, du har installeret</translation>
 <translation id="7461924472993315131">Fastgør</translation>
 <translation id="746216226901520237">Næste gang låser din telefon din <ph name="DEVICE_TYPE" /> op. Du kan deaktivere Smart Lock i Indstillinger.</translation>
+<translation id="7464637891177137294">Gem den på din Google-konto, <ph name="ACCOUNT" /></translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# åben fane. Tryk for at vise eller skjule fanelinje.}one{# åben fane. Tryk for at vise eller skjule fanelinje.}other{# åbne faner. Tryk for at vise eller skjule fanelinje.}}</translation>
 <translation id="7465635034594602553">Noget gik galt. Vent et øjeblik, og prøv derefter at køre <ph name="APP_NAME" /> igen.</translation>
 <translation id="7465778193084373987">Webadresse for tilbagekaldelse af Netscape-certifikat</translation>
@@ -6037,6 +6045,7 @@
 <translation id="7525625923260515951">Hør den markerede tekst</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{1 anden}one{{NUM_DOWNLOADS} anden}other{{NUM_DOWNLOADS} andre}}</translation>
 <translation id="7526989658317409655">Pladsholder</translation>
+<translation id="7527758104894292229">Opdater den på din Google-konto, <ph name="ACCOUNT" /></translation>
 <translation id="7529411698175791732">Tjek din internetforbindelse. Hvis problemet fortsætter, kan du prøve at logge ud og logge ind igen.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Luk gæstevindue}one{Close Guest}other{Luk gæstevinduer}}</translation>
 <translation id="7530016656428373557">Afladningshastighed i Watt</translation>
@@ -6423,6 +6432,7 @@
 <translation id="7898725031477653577">Oversæt altid</translation>
 <translation id="790040513076446191">Manipulere indstillinger til beskyttelse af personlige oplysninger</translation>
 <translation id="7901405293566323524">Phone Hub</translation>
+<translation id="7901914889562552258">Forbedret Chrome via sidemetrics</translation>
 <translation id="7903345046358933331">Siden svarer ikke. Du kan vente på, at den svarer, eller lukke den.</translation>
 <translation id="7903742244674067440">Du har lagrede certifikater, som identificerer disse certifikatautoriteter</translation>
 <translation id="7903859912536385558">stabil (betroet tester)</translation>
@@ -6889,6 +6899,7 @@
 <translation id="8392364544846746346">Spørg, når et website vil redigere filer eller mapper på din enhed</translation>
 <translation id="8392451568018454956">Menuen Indstillinger for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8393511274964623038">Stop plugin</translation>
+<translation id="839363317075970734">Oplysninger om Bluetooth-enhed</translation>
 <translation id="8393700583063109961">Send en besked</translation>
 <translation id="8397825320644530257">Afbryd forbindelsen til den tilsluttede telefon</translation>
 <translation id="8398877366907290961">Fortsæt alligevel</translation>
@@ -7139,6 +7150,7 @@
 <translation id="8681614230122836773">Chrome har registreret skadelig software på din computer</translation>
 <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> er tilsluttet og klar</translation>
 <translation id="8683081248374354009">Nulstil gruppe</translation>
+<translation id="8683526617475118045">Det får du</translation>
 <translation id="8688672835843460752">Tilgængelig</translation>
 <translation id="8690129572193755009">Websites kan anmode om tilladelse til at håndtere protokoller</translation>
 <translation id="8695139659682234808">Tilføj forældreindstillinger efter konfigurationen</translation>
@@ -7192,6 +7204,7 @@
 <translation id="8737685506611670901">Åbne <ph name="PROTOCOL" />-links i stedet for <ph name="REPLACED_HANDLER_TITLE" /></translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Vælg det sprog, du vil oversætte siden til</translation>
+<translation id="8737916108453753541">Webadresserne deles med Google for at give indblik i browseradfærd</translation>
 <translation id="8740247629089392745">Nu er denne Chromebook klar til <ph name="SUPERVISED_USER_NAME" />. Konfigurationen er næsten gennemført, og det er snart tid til at gå på opdagelse.</translation>
 <translation id="8741944563400125534">Konfigurationsvejledning til Kontaktadgang</translation>
 <translation id="8742998548129056176">Dette er generelle oplysninger om din enhed og din brug af den (f.eks. batteriniveau, system- og appaktivitet samt fejl). Dataene bruges til at forbedre Android, og visse samlede oplysninger kan også hjælpe Google-apps og -partnere som f.eks. Android-udviklere med at forbedre deres apps og produkter.</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index dca65a9..ba1fdcb 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -2648,7 +2648,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> nach "<ph name="SEARCH_TERMS" />" durchsuchen</translation>
 <translation id="3798449238516105146">Version</translation>
 <translation id="3799128412641261490">Einstellungen für Schalterzugriff</translation>
-<translation id="3799903419983101749">Fahren Sie dort fort, wo Sie aufgehört haben. Sie können in den Einstellungen festlegen, dass Apps automatisch wiederhergestellt werden.</translation>
 <translation id="3800806661949714323">Alle anzeigen (empfohlen)</translation>
 <translation id="380329542618494757">Name</translation>
 <translation id="3803345858388753269">Videoqualität</translation>
@@ -4114,7 +4113,6 @@
 <translation id="5430931332414098647">Instant Tethering</translation>
 <translation id="5431318178759467895">Farbe</translation>
 <translation id="543338862236136125">Passwort ändern</translation>
-<translation id="5433791271511851494">Freigabeoptionen werden von Ihrer Organisation verwaltet.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA-Verschlüsselung</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> immer Zugriff auf Ihren Standort erlauben</translation>
 <translation id="5436492226391861498">Warten auf Proxy-Tunnel...</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 64b5525..3fe88a9f 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;Αναζήτηση <ph name="SEARCH_ENGINE" /> για "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798449238516105146">Έκδοση</translation>
 <translation id="3799128412641261490">Ρυθμίσεις Πρόσβασης με διακόπτη</translation>
-<translation id="3799903419983101749">Συνεχίστε από εκεί που είχατε σταματήσει. Μπορείτε να ρυθμίσετε τις εφαρμογές ώστε να γίνεται αυτόματη επαναφορά στις Ρυθμίσεις.</translation>
 <translation id="3800806661949714323">Εμφάνιση όλων (συνιστάται)</translation>
 <translation id="380329542618494757">Όνομα</translation>
 <translation id="3803345858388753269">Ποιότητα βίντεο</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">Άμεση σύνδεση</translation>
 <translation id="5431318178759467895">Χρώμα</translation>
 <translation id="543338862236136125">Επεξεργασία κωδικού πρόσβασης</translation>
-<translation id="5433791271511851494">Η διαχείριση των επιλογών κοινοποίησης πραγματοποιείται από τον οργανισμό σας.</translation>
 <translation id="5434065355175441495">PKCS #1 Κρυπτογράφηση RSA</translation>
 <translation id="5435779377906857208">Να επιτρέπεται πάντα στο <ph name="HOST" /> η πρόσβαση στην τοποθεσία σας.</translation>
 <translation id="5436492226391861498">Αναμονή για διοχέτευση διακομιστή μεσολάβησης...</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index b859135e..94a775cf 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -2670,7 +2670,6 @@
 <translation id="3797900183766075808">&amp;Search <ph name="SEARCH_ENGINE" /> for “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">Version</translation>
 <translation id="3799128412641261490">Switch access settings</translation>
-<translation id="3799903419983101749">Continue from where you left off. You can set apps to restore automatically in Settings.</translation>
 <translation id="3800806661949714323">Show all (recommended)</translation>
 <translation id="380329542618494757">Name</translation>
 <translation id="3803345858388753269">Video quality</translation>
@@ -4139,7 +4138,6 @@
 <translation id="5430931332414098647">Instant Tethering</translation>
 <translation id="5431318178759467895">Colour</translation>
 <translation id="543338862236136125">Edit password</translation>
-<translation id="5433791271511851494">Options for sharing are managed by your organisation.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA Encryption</translation>
 <translation id="5435779377906857208">Always allow <ph name="HOST" /> to access your location</translation>
 <translation id="5436492226391861498">Waiting for proxy tunnel...</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 21745cc..236fcb3 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -2648,7 +2648,6 @@
 <translation id="3797900183766075808">&amp;Buscar "<ph name="SEARCH_TERMS" />" en <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versión</translation>
 <translation id="3799128412641261490">Configuración de Accesibilidad con interruptores</translation>
-<translation id="3799903419983101749">Continúa desde donde dejaste. En Configuración, puedes habilitar las apps para que se restablezcan automáticamente.</translation>
 <translation id="3800806661949714323">Mostrar todo (recomendado)</translation>
 <translation id="380329542618494757">Nombre</translation>
 <translation id="3803345858388753269">Calidad del video</translation>
@@ -4116,7 +4115,6 @@
 <translation id="5430931332414098647">Conexión instantánea mediante dispositivo móvil</translation>
 <translation id="5431318178759467895">Color</translation>
 <translation id="543338862236136125">Editar la contraseña</translation>
-<translation id="5433791271511851494">Tu organización administra las opciones de uso compartido.</translation>
 <translation id="5434065355175441495">PKCS N. º 1, Encriptación RSA</translation>
 <translation id="5435779377906857208">Siempre permitir que <ph name="HOST" /> acceda a tu ubicación</translation>
 <translation id="5436492226391861498">Esperando túnel proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 5563056b..ddf325f 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -2651,7 +2651,6 @@
 <translation id="3797900183766075808">&amp;Buscar <ph name="SEARCH_TERMS" /> en <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versión</translation>
 <translation id="3799128412641261490">Ajustes de accesibilidad con interruptores</translation>
-<translation id="3799903419983101749">Continúa donde lo dejaste. Para hacer que las aplicaciones se restauren automáticamente, ve a Configuración.</translation>
 <translation id="3800806661949714323">Mostrar todo (recomendado)</translation>
 <translation id="380329542618494757">Nombre</translation>
 <translation id="3803345858388753269">Calidad de vídeo</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">Conexión compartida instantánea</translation>
 <translation id="5431318178759467895">Color</translation>
 <translation id="543338862236136125">Cambiar contraseña</translation>
-<translation id="5433791271511851494">Las opciones de compartir las gestiona tu organización.</translation>
 <translation id="5434065355175441495">PKCS #1 con cifrado RSA</translation>
 <translation id="5435779377906857208">Permitir siempre que <ph name="HOST" /> acceda a tu ubicación</translation>
 <translation id="5436492226391861498">Esperando túnel proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index be872a6..83462c4 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -2657,7 +2657,6 @@
 <translation id="3797900183766075808">&amp;Otsi otsingumootoriga <ph name="SEARCH_ENGINE" /> terminit „<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">Versioon</translation>
 <translation id="3799128412641261490">Lülitiga juurdepääsu seaded</translation>
-<translation id="3799903419983101749">Jätkake sealt, kus pooleli jäite. Seadetes saate seadistada rakenduste automaatse taastamise.</translation>
 <translation id="3800806661949714323">Kuva kõik (soovitatud)</translation>
 <translation id="380329542618494757">Nimi</translation>
 <translation id="3803345858388753269">Videokvaliteet</translation>
@@ -4125,7 +4124,6 @@
 <translation id="5430931332414098647">Automaatne jagamine</translation>
 <translation id="5431318178759467895">Värv</translation>
 <translation id="543338862236136125">Muuda parooli</translation>
-<translation id="5433791271511851494">Jagamisvalikuid haldab teie organisatsioon.</translation>
 <translation id="5434065355175441495">PKCS 1 RSA krüpteerimine</translation>
 <translation id="5435779377906857208">Luba hosti <ph name="HOST" /> jaoks alati juurdepääs minu asukohale</translation>
 <translation id="5436492226391861498">Puhverserveri tunneli ootamine...</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index cc905d8..e62e466b 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -2650,7 +2650,6 @@
 <translation id="3797900183766075808">&amp;Bilatu "<ph name="SEARCH_TERMS" />" <ph name="SEARCH_ENGINE" /> bilatzailean</translation>
 <translation id="3798449238516105146">Bertsioa</translation>
 <translation id="3799128412641261490">Erabilerraztasun-osagarriaren ezarpenak</translation>
-<translation id="3799903419983101749">Jarraitu utzi zenuen tokitik. Aplikazioak automatikoki leheneratzeko aukera ezartzeko, joan ezarpenetara.</translation>
 <translation id="3800806661949714323">Erakutsi guztiak (gomendatua)</translation>
 <translation id="380329542618494757">Izena</translation>
 <translation id="3803345858388753269">Bideoaren kalitatea</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">Konexioa bizkor partekatzeko eginbidea</translation>
 <translation id="5431318178759467895">Kolorez</translation>
 <translation id="543338862236136125">Editatu pasahitza</translation>
-<translation id="5433791271511851494">Zure erakundeak kudeatzen ditu partekatzeko aukerak.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA enkriptatzea</translation>
 <translation id="5435779377906857208">Eman beti kokapena atzitzeko baimena <ph name="HOST" /> ostalariari</translation>
 <translation id="5436492226391861498">Proxy-tunelaren zain…</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index e675a31..9157e57 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -79,7 +79,7 @@
 <translation id="1079766198702302550">دسترسی به دوربین همیشه مسدود شود</translation>
 <translation id="1081956462909987459">{NUM_TABS,plural, =1{<ph name="GROUP_TITLE" /> - ۱ برگه}one{<ph name="GROUP_TITLE" /> - # برگه}other{<ph name="GROUP_TITLE" /> - # برگه}}</translation>
 <translation id="1082214733466244292">سرپرستتان برخی‌از عملکردهای این دستگاه را مسدود کرده است</translation>
-<translation id="1082398631555931481">‏<ph name="THIRD_PARTY_TOOL_NAME" /> می‌خواهد تنظیمات Chrome شما را به پیش‌فرض‌های اصلی‌شان بازیابی کند. با این کار صفحه اصلی، صفحه برگه جدید و موتور جستجویتان بازنشانی می‌شود، افزونه‌های شما غیرفعال می‌شوند و پین همه برگه‌ها برداشته می‌شود. همچنین سایر داده‌های موقت و داده‌های ذخیره شده در حافظه موقت، مانند کوکی‌ها، اطلاعات سایت و محتوا پاک می‌شوند.</translation>
+<translation id="1082398631555931481">‏<ph name="THIRD_PARTY_TOOL_NAME" /> می‌خواهد تنظیمات Chrome شما را به پیش‌فرض‌های اصلی‌شان بازیابی کند. با این کار صفحه اصلی، صفحه برگه جدید، و موتور جستجویتان بازنشانی می‌شود، افزونه‌های شما غیرفعال می‌شوند و سنجاق همه برگه‌ها برداشته می‌شود. همچنین سایر داده‌های موقت و داده‌های ذخیره‌شده در حافظه موقت مانند کوکی‌ها، اطلاعات سایت و محتوا پاک می‌شوند.</translation>
 <translation id="1084096383128641877">با برداشتن گذرواژه، حساب‌تان در <ph name="DOMAIN" /> حذف نخواهد شد. برای ایمن نگه‌داشتن گذرواژه‌تان، آن را تغییر دهید یا حساب‌تان را در <ph name="DOMAIN_LINK" /> حذف کنید.</translation>
 <translation id="1084824384139382525">کپی آدر&amp;س پیوند</translation>
 <translation id="1085697365578766383">هنگام شروع دستگاه مجازی خطایی روی داد. لطفاً دوباره امتحان کنید.</translation>
@@ -2663,7 +2663,6 @@
 <translation id="3797900183766075808">‏(&amp;S) جستجوی <ph name="SEARCH_ENGINE" /> برای «<ph name="SEARCH_TERMS" />»</translation>
 <translation id="3798449238516105146">نسخه</translation>
 <translation id="3799128412641261490">تنظیمات دسترسی کلیدی</translation>
-<translation id="3799903419983101749">کارتان را از جایی که متوقف کرده‌اید ادامه دهید. در «تنظیمات» می‌توانید تنظیم کنید برنامه‌ها به‌طور خودکار بازیابی شوند.</translation>
 <translation id="3800806661949714323">نمایش همه موارد (توصیه می‌شود)</translation>
 <translation id="380329542618494757">نام</translation>
 <translation id="3803345858388753269">کیفیت ویدیو</translation>
@@ -3101,7 +3100,7 @@
 <translation id="4281844954008187215">شرایط استفاده از سرویس</translation>
 <translation id="4282196459431406533">‏Smart Lock روشن شده است</translation>
 <translation id="4285418559658561636">به‌روزرسانی گذرواژه</translation>
-<translation id="4285498937028063278">لغو پین</translation>
+<translation id="4285498937028063278">برداشتن سنجاق</translation>
 <translation id="428565720843367874">نرم‌افزار آنتی‌ویروس به‌طور غیرمنتظره‌ای در هنگام اسکن کردن این فایل متوقف شد.</translation>
 <translation id="4287099557599763816">صفحه‌خوان</translation>
 <translation id="428715201724021596">درحال اتصال به نمایه. ممکن است چند دقیقه طول بکشد.</translation>
@@ -4132,7 +4131,6 @@
 <translation id="5430931332414098647">اشتراک‌گذاری اینترنت فوری</translation>
 <translation id="5431318178759467895">رنگ</translation>
 <translation id="543338862236136125">ویرایش گذرواژه</translation>
-<translation id="5433791271511851494">سازمانتان گزینه‌های هم‌رسانی را مدیریت می‌کند.</translation>
 <translation id="5434065355175441495">‏PKCS #1 RSA رمزگذاری</translation>
 <translation id="5435779377906857208">دسترسی <ph name="HOST" /> به مکان شما همیشه مجاز باشد</translation>
 <translation id="5436492226391861498">منتظر تونل پراکسی...</translation>
@@ -6837,7 +6835,7 @@
 <translation id="8327039559959785305">‏هنگام نشاندن فایل‌های Linux خطایی روی داد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="8327676037044516220">تنظیمات محتوا و اجازه‌ها</translation>
 <translation id="833256022891467078">‏پوشه‌های هم‌رسانی‌شده Crostini</translation>
-<translation id="8335587457941836791">جدا کردن از راه‌انداز</translation>
+<translation id="8335587457941836791">برداشتن سنجاق از راه‌انداز</translation>
 <translation id="8336407002559723354">به‌روزرسانی‌ها در <ph name="MONTH_AND_YEAR" /> تمام می‌شود</translation>
 <translation id="8336739000755212683">تغییر تصویر حساب دستگاه</translation>
 <translation id="8337047789441383384">قبلاً این کلید امنیتی را ثبت کرده‌اید. لازم نیست آن را دوباره ثبت کنید.</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index db0a198..f6ba24fb 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -2665,7 +2665,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" />-haku termillä <ph name="SEARCH_TERMS" /></translation>
 <translation id="3798449238516105146">Versio</translation>
 <translation id="3799128412641261490">Kytkimen käytön asetukset</translation>
-<translation id="3799903419983101749">Jatka siitä, mihin jäit. Voit valita asetuksista, että sovellukset palautetaan automaattisesti.</translation>
 <translation id="3800806661949714323">Näytä kaikki (suositus)</translation>
 <translation id="380329542618494757">Nimi</translation>
 <translation id="3803345858388753269">Videon laatu</translation>
@@ -4131,7 +4130,6 @@
 <translation id="5430931332414098647">Yhteyden pikajakaminen</translation>
 <translation id="5431318178759467895">Väri</translation>
 <translation id="543338862236136125">Muokkaa salasanaa</translation>
-<translation id="5433791271511851494">Organisaatiosi ylläpitää jakamisasetuksia.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA-salaus</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> saa aina käyttää sijaintitietojasi</translation>
 <translation id="5436492226391861498">Odotetaan välityspalvelintunnelia...</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 7441636..46210c4 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -2667,7 +2667,6 @@
 <translation id="3797900183766075808">&amp;Maghanap sa <ph name="SEARCH_ENGINE" /> ng “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">Bersyon</translation>
 <translation id="3799128412641261490">Mga setting ng switch access</translation>
-<translation id="3799903419983101749">Magpatuloy mula sa kung saan ka huminto. Puwede mong itakda na awtomatikong mag-restore ang mga app sa Mga Setting.</translation>
 <translation id="3800806661949714323">Ipakita lahat (inirerekomenda)</translation>
 <translation id="380329542618494757">Pangalan</translation>
 <translation id="3803345858388753269">Kalidad ng Video</translation>
@@ -4136,7 +4135,6 @@
 <translation id="5430931332414098647">Instant na Pag-tether</translation>
 <translation id="5431318178759467895">Kulay</translation>
 <translation id="543338862236136125">I-edit ang password</translation>
-<translation id="5433791271511851494">Pinapamahalaan ng iyong organisasyon ang mga opsyon para sa pagbabahagi.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA Encryption</translation>
 <translation id="5435779377906857208">Laging payagan ang <ph name="HOST" /> na i-access ang iyong lokasyon</translation>
 <translation id="5436492226391861498">Naghihintay para sa proxy tunnel...</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 90f193c..d80eccd 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -2653,7 +2653,6 @@
 <translation id="3797900183766075808">Rechercher <ph name="SEARCH_TERMS" /> avec <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Version</translation>
 <translation id="3799128412641261490">Paramètres de Switch Access</translation>
-<translation id="3799903419983101749">Reprenez là où vous vous étiez arrêté. Vous pouvez configurer les applications pour qu'elles se restaurent automatiquement dans Paramètres.</translation>
 <translation id="3800806661949714323">Tout afficher (recommandé)</translation>
 <translation id="380329542618494757">Nom</translation>
 <translation id="3803345858388753269">Qualité de la vidéo</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 4b031a2..abae037 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -2652,7 +2652,6 @@
 <translation id="3797900183766075808">&amp;Rechercher "<ph name="SEARCH_TERMS" />" avec <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Version</translation>
 <translation id="3799128412641261490">Paramètres Switch Access</translation>
-<translation id="3799903419983101749">Reprenez là où vous en étiez. Dans les paramètres, vous pouvez configurer la restauration automatique des applis.</translation>
 <translation id="3800806661949714323">Tout afficher (recommandé)</translation>
 <translation id="380329542618494757">Nom</translation>
 <translation id="3803345858388753269">Qualité de la vidéo</translation>
@@ -4120,7 +4119,6 @@
 <translation id="5430931332414098647">Partage de connexion instantané</translation>
 <translation id="5431318178759467895">Couleur</translation>
 <translation id="543338862236136125">Modifier le mot de passe</translation>
-<translation id="5433791271511851494">Les options de partage sont gérées par votre organisation.</translation>
 <translation id="5434065355175441495">Chiffrement RSA PKCS #1</translation>
 <translation id="5435779377906857208">Toujours autoriser l'accès à votre position pour <ph name="HOST" /></translation>
 <translation id="5436492226391861498">En attente du tunnel proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index 42cd1a39..e5937dd 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -2649,7 +2649,6 @@
 <translation id="3797900183766075808">&amp;Buscar "<ph name="SEARCH_TERMS" />" en <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versión</translation>
 <translation id="3799128412641261490">Configuración do acceso con interruptores</translation>
-<translation id="3799903419983101749">Continúa desde onde o deixaches. Podes establecer que as aplicacións se restauren automaticamente en Configuración.</translation>
 <translation id="3800806661949714323">Mostrar todo (recomendado)</translation>
 <translation id="380329542618494757">Nome</translation>
 <translation id="3803345858388753269">Calidade do vídeo</translation>
@@ -4117,7 +4116,6 @@
 <translation id="5430931332414098647">Conexión compartida instantánea</translation>
 <translation id="5431318178759467895">Cor</translation>
 <translation id="543338862236136125">Editar contrasinal</translation>
-<translation id="5433791271511851494">A túa organización xestiona as opcións para compartir o contido.</translation>
 <translation id="5434065355175441495">Cifrado PKCS n.º 1 RSA</translation>
 <translation id="5435779377906857208">Permitir sempre que <ph name="HOST" /> acceda á túa localización</translation>
 <translation id="5436492226391861498">Agardando túnel proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 7a1ded26..23c7e96b 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -2649,7 +2649,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” માટે <ph name="SEARCH_ENGINE" /> માં &amp;શોધ કરો</translation>
 <translation id="3798449238516105146">વર્ઝન</translation>
 <translation id="3799128412641261490">સ્વિચ ઍક્સેસનાં સેટિંગ</translation>
-<translation id="3799903419983101749">તમે જ્યાંથી છોડ્યું હોય, ત્યાંથી ફરી શરૂ કરો. તમે સેટિંગમાંથી ઍપને ઑટોમૅટિક રીતે રિસ્ટોર થવા માટે સેટ કરી શકો છો.</translation>
 <translation id="3800806661949714323">તમામ બતાવો (ભલામણ કરેલ)</translation>
 <translation id="380329542618494757">નામ</translation>
 <translation id="3803345858388753269">વીડિયોની ક્વૉલિટી</translation>
@@ -3502,7 +3501,7 @@
 <translation id="4733793249294335256">સ્થાન</translation>
 <translation id="473546211690256853">આ એકાઉન્ટ <ph name="DOMAIN" /> દ્વારા મેનેજ કરાય છે</translation>
 <translation id="4735803855089279419">આ ડિવાઇસ માટે ડિવાઇસ ઓળખકર્તા નક્કી કરવામાં સિસ્ટમ નિષ્ફળ થઈ.</translation>
-<translation id="473581466100273252">તાજેતરમાં બંધ કરેલી એન્ટ્રીને ટૉગલ કરો</translation>
+<translation id="473581466100273252">તાજેતરમાં બંધ કરેલી આઇટમને ટૉગલ કરો</translation>
 <translation id="4736292055110123391">તમારા બધા ડિવાઇસ પર તમારા બુકમાર્ક, પાસવર્ડ, ઇતિહાસ અને વધુ સિંક કરો</translation>
 <translation id="473775607612524610">અપડેટ કરો</translation>
 <translation id="473936925429402449">પસંદ કરેલા, <ph name="TOTAL_ELEMENTS" />માંથી વધારાના <ph name="CURRENT_ELEMENT" /> કન્ટેન્ટ</translation>
@@ -4117,7 +4116,6 @@
 <translation id="5430931332414098647">ફટાફટ ટિથરિંગ</translation>
 <translation id="5431318178759467895">રંગ</translation>
 <translation id="543338862236136125">પાસવર્ડમાં ફેરફાર કરો</translation>
-<translation id="5433791271511851494">શેરિંગ માટેના વિકલ્પો તમારી સંસ્થા દ્વારા મેનેજ કરવામાં આવે છે.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA એન્ક્રિપ્શન</translation>
 <translation id="5435779377906857208"><ph name="HOST" />ને હંમેશાં તમારા સ્થાનને ઍક્સેસ કરવાની મંજૂરી આપો</translation>
 <translation id="5436492226391861498">પ્રૉક્સી ટનલની પ્રતીક્ષા કરી રહ્યાં છે...</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index ca0ec99..2637784 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” को खोजने के लिए <ph name="SEARCH_ENGINE" /> पर &amp;खोजें</translation>
 <translation id="3798449238516105146">वर्शन</translation>
 <translation id="3799128412641261490">ऐक्सेस करने का तरीका बदलने की सेटिंग</translation>
-<translation id="3799903419983101749">ऐप्लिकेशन वापस पाने की प्रक्रिया वहीं से शुरू करें जहां आपने छोड़ा था. आप सेटिंग में अपने-आप ऐप्लिकेशन वापस पाने की सुविधा सेट कर सकते हैं.</translation>
 <translation id="3800806661949714323">सभी दिखाएं (अनुशंंसित)</translation>
 <translation id="380329542618494757">नाम</translation>
 <translation id="3803345858388753269">वीडियो की क्वालिटी</translation>
@@ -4134,7 +4133,6 @@
 <translation id="5430931332414098647">इंस्टैंट टेदरिंग</translation>
 <translation id="5431318178759467895">रंग</translation>
 <translation id="543338862236136125">पासवर्ड में बदलाव करें</translation>
-<translation id="5433791271511851494">आपका संगठन, शेयर करने के विकल्प मैनेज करता है.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA सुरक्षित करने का तरीका</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> को, हमेशा अपनी जगह की जानकारी को ऐक्सेस करने की अनुमति दें</translation>
 <translation id="5436492226391861498">प्रॉक्सी टनेल की प्रतीक्षा कर रहा है...</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 5f5147f2..b06b79d 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -2653,7 +2653,6 @@
 <translation id="3797900183766075808">&amp;Traži pojam "<ph name="SEARCH_TERMS" />" na tražilici <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Verzija</translation>
 <translation id="3799128412641261490">Postavke prekidača za pristup</translation>
-<translation id="3799903419983101749">Nastavite tamo gdje ste stali. U postavkama možete postaviti aplikacije tako da se vrate automatski.</translation>
 <translation id="3800806661949714323">Prikaži sve (preporučeno)</translation>
 <translation id="380329542618494757">Ime</translation>
 <translation id="3803345858388753269">Kvaliteta videoreprodukcije</translation>
@@ -4121,7 +4120,6 @@
 <translation id="5430931332414098647">Automatsko modemsko povezivanje</translation>
 <translation id="5431318178759467895">Boja</translation>
 <translation id="543338862236136125">Uredite zaporku</translation>
-<translation id="5433791271511851494">Opcijama za dijeljenje upravlja vaša organizacija.</translation>
 <translation id="5434065355175441495">PKCS br. 1 RSA enkripcija</translation>
 <translation id="5435779377906857208">Uvijek dopustite hostu <ph name="HOST" /> pristup vašoj lokaciji</translation>
 <translation id="5436492226391861498">Čekanje na proxy tunel...</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index a9f2edb..854bed8a 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -446,6 +446,7 @@
 <translation id="1476088332184200792">Átmásolás az eszközére</translation>
 <translation id="1476607407192946488">&amp;Nyelvi beállítások</translation>
 <translation id="1477446329585670721">A(z) <ph name="DOMAIN" /> megköveteli, hogy ne távolítsa el az intelligens kártyát.</translation>
+<translation id="1477654881618305065">A szervezete nem engedélyezi ennek a tartalomnak a megosztását. Ha segítségre van szüksége, forduljon a rendszergazdához.</translation>
 <translation id="1478340334823509079">Részletek: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">A telepítés nincs engedélyezve</translation>
 <translation id="1480571698637441426">Személyre szabott válaszokat kaphat kérdéseire, ha engedélyezi Segédjének a képernyőn látható tartalmak képernyőképéhez való hozzáférést. Ez vonatkozhat az épp lejátszott dalokkal és videókkal kapcsolatos információkra is.</translation>
@@ -621,6 +622,7 @@
 <translation id="1643921258693943800">A Közeli megosztás használatához kapcsolja be a Bluetootht és a Wi-Fi-t</translation>
 <translation id="1644574205037202324">Előzmények</translation>
 <translation id="1645516838734033527">A Smart Lock funkció a(z) <ph name="DEVICE_TYPE" /> eszköz biztonságának megőrzése érdekében előírja képernyőzár beállítását a telefonon.</translation>
+<translation id="1646793251510634025">Beállítások áttekintése a keresés és a böngészés optimalizálása érdekében</translation>
 <translation id="1646982517418478057">Adjon meg egy jelszót a tanúsítvány titkosításához</translation>
 <translation id="1648528859488547844">Wi‑Fi és mobilhálózatok használata a tartózkodási hely megállapításához</translation>
 <translation id="164936512206786300">Bluetooth-párosítás megszüntetése</translation>
@@ -1475,6 +1477,7 @@
 <translation id="2514326558286966059">Ujjlenyomatával gyorsabban oldhatja fel a zárolást</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Még egy kapcsoló hozzárendelése</translation>
+<translation id="251722524540674480">Felhasználónév megerősítése</translation>
 <translation id="2517472476991765520">Keresés</translation>
 <translation id="2518024842978892609">Klienstanúsítványok használata</translation>
 <translation id="2519517390894391510">Tanúsítványprofil neve</translation>
@@ -2178,6 +2181,7 @@
 <translation id="3288047731229977326">A fejlesztői módban futó bővítmények kárt okozhatnak számítógépén. Ha Ön nem fejlesztő, akkor a biztonság kedvéért kapcsolja ki a fejlesztői módban futó bővítményeket.</translation>
 <translation id="3289668031376215426">Automatikus nagy kezdőbetű</translation>
 <translation id="3289856944988573801">Kérjük, frissítések kereséséhez Ethernetet vagy Wi-Fit használjon.</translation>
+<translation id="3291436823898732747">Továbbfejlesztett böngészés: Például javaslatok a cím- és keresősávban a gépelés megkezdése előtt</translation>
 <translation id="3293644607209440645">Az oldal elküldése</translation>
 <translation id="32939749466444286">A Linux-tároló elindítása nem sikerült. Próbálja újra.</translation>
 <translation id="3294437725009624529">Vendég</translation>
@@ -2664,7 +2668,6 @@
 <translation id="3797900183766075808">&amp;Keresés a(z) <ph name="SEARCH_ENGINE" /> keresőmotorral a következőre: <ph name="SEARCH_TERMS" /></translation>
 <translation id="3798449238516105146">Verzió</translation>
 <translation id="3799128412641261490">A kapcsolóalapú hozzáférés beállításai</translation>
-<translation id="3799903419983101749">Ott folytathatja, ahol abbahagyta. A beállításokban kiválaszthatja azokat az alkalmazásokat, amelyeket automatikusan vissza szeretne állítani.</translation>
 <translation id="3800806661949714323">Összes megjelenítése (ajánlott)</translation>
 <translation id="380329542618494757">Név</translation>
 <translation id="3803345858388753269">Videóminőség</translation>
@@ -3517,7 +3520,7 @@
 <translation id="4733793249294335256">Hely</translation>
 <translation id="473546211690256853">Ennek a fióknak a kezelője: <ph name="DOMAIN" />.</translation>
 <translation id="4735803855089279419">A rendszer nem tudta megállapítani az eszközazonosítókat ehhez az eszközhöz.</translation>
-<translation id="473581466100273252">Nemrég bezárt bejegyzések ki-, illetve bekapcsolása</translation>
+<translation id="473581466100273252">Nemrég bezárt elemek ki-, illetve bekapcsolása</translation>
 <translation id="4736292055110123391">Könyvjelzők, jelszavak, előzmények és más adatok szinkronizálása minden eszközén</translation>
 <translation id="473775607612524610">Frissítés</translation>
 <translation id="473936925429402449">Kiválasztva, <ph name="TOTAL_ELEMENTS" />/<ph name="CURRENT_ELEMENT" />. extra tartalom</translation>
@@ -4133,7 +4136,6 @@
 <translation id="5430931332414098647">Azonnali internetmegosztás</translation>
 <translation id="5431318178759467895">Színes</translation>
 <translation id="543338862236136125">Jelszó módosítása</translation>
-<translation id="5433791271511851494">A megosztási beállításokat a szervezete kezeli.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA titkosítás</translation>
 <translation id="5435779377906857208">A(z) <ph name="HOST" /> mindig hozzáférhet az Ön tartózkodási helyéhez</translation>
 <translation id="5436492226391861498">Várakozás a proxy alagútra...</translation>
@@ -4215,6 +4217,7 @@
 <translation id="5505307013568720083">Elfogyott a tinta</translation>
 <translation id="5505794066310932198">Commander be-/kikapcsolása</translation>
 <translation id="5507756662695126555">Letagadhatatlanság</translation>
+<translation id="5507795078844206688">A meglátogatott webhelyek URL-jei (pl. https://www.google.com)</translation>
 <translation id="5509693895992845810">Mentés &amp;másként...</translation>
 <translation id="5509914365760201064">Kiállító: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Képleírások lekérése a Google-tól</translation>
@@ -4532,6 +4535,7 @@
 <translation id="5869522115854928033">Mentett jelszavak</translation>
 <translation id="5870086504539785141">A kisegítő lehetőségek menüjének bezárása</translation>
 <translation id="5870155679953074650">Súlyos hibák</translation>
+<translation id="5875534259258494936">A képernyőmegosztás befejeződött</translation>
 <translation id="5876576639916258720">Folyamatban…</translation>
 <translation id="5876851302954717356">Új lap jobbra</translation>
 <translation id="5877064549588274448">Módosult a csatorna. Indítsa újra az eszközt a módosítások alkalmazásához.</translation>
@@ -5391,6 +5395,7 @@
 <translation id="6812349420832218321">A <ph name="PRODUCT_NAME" /> nem futtatható rootként.</translation>
 <translation id="6812841287760418429">Módosítások megtartása</translation>
 <translation id="6813907279658683733">Teljes képernyő</translation>
+<translation id="6814033694018386318">Mik lesznek megosztva a Google-lal?</translation>
 <translation id="6817174620439930047">Kérdezzen meg, amikor egy webhely exkluzív rendszerüzenetekkel szeretné elérni a MIDI-eszközöket (ajánlott)</translation>
 <translation id="6818198425579322765">Az oldal fordítani kívánt nyelve</translation>
 <translation id="6818802132960437751">Beépített vírusvédelem</translation>
@@ -5886,6 +5891,7 @@
 <translation id="7374376573160927383">USB-eszközök kezelése</translation>
 <translation id="7374461526650987610">Protokollkezelők</translation>
 <translation id="7375235221357833624">{0,plural, =1{Egy órán belül frissítse az eszközt}other{# órán belül frissítse az eszközt}}</translation>
+<translation id="7376543451826039186">Gyorsabb böngészés: Például bizonyos további tartalmak proaktív betöltése az aktuális oldal alapján</translation>
 <translation id="7376553024552204454">Az egérmutató kiemelése mozgás közben</translation>
 <translation id="737728204345822099">A biztonsági kulcs tárolhatja, hogy Ön felkereste ezt a webhelyet.</translation>
 <translation id="7377451353532943397">Érzékelő-hozzáférés tiltásának fenntartása</translation>
@@ -5943,6 +5949,7 @@
 <translation id="7427798576651127129">Hívás a következőtől: <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">Nem találhatók HID-eszközök</translation>
 <translation id="7431991332293347422">Beállíthatja, hogy a rendszer hogyan szabja személyre a Keresést és egyebeket a böngészési előzmények alapján</translation>
+<translation id="7432200167665670017">A(z) „<ph name="EXTENSION_NAME" />” bővítményt letiltotta a rendszergazda – alkalmazásazonosító: <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">Helyezze be az intelligens kártyát, hogy tovább használhassa <ph name="DEVICE_TYPE" /> eszközét</translation>
 <translation id="7433957986129316853">Megtartom</translation>
 <translation id="7434509671034404296">Fejlesztőknek</translation>
@@ -5972,6 +5979,7 @@
 <translation id="7460045493116006516">Jelenleg telepített téma</translation>
 <translation id="7461924472993315131">Rögzítés</translation>
 <translation id="746216226901520237">Legközelebb a telefonjával oldhatja fel <ph name="DEVICE_TYPE" /> eszköze lezárását. A Smart Lock funkciót a Beállításokban kapcsolhatja ki.</translation>
+<translation id="7464637891177137294">Elmentheti a Google-fiókjába (<ph name="ACCOUNT" />)</translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# megnyitott lap, nyomja meg a lapsor be-/kikapcsolásához}other{# megnyitott lap, nyomja meg a lapsor be-/kikapcsolásához}}</translation>
 <translation id="7465635034594602553">Hiba történt. Várjon néhány percet, majd próbálja meg újra futtatni a(z) <ph name="APP_NAME" /> alkalmazást.</translation>
 <translation id="7465778193084373987">Netscape tanúsítvány - visszavonási URL</translation>
@@ -6035,6 +6043,7 @@
 <translation id="7525625923260515951">A kijelölt szöveg meghallgatása</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{1 további}other{{NUM_DOWNLOADS} további}}</translation>
 <translation id="7526989658317409655">Helyőrző</translation>
+<translation id="7527758104894292229">Frissítheti a Google-fiókjában (<ph name="ACCOUNT" />)</translation>
 <translation id="7529411698175791732">Ellenőrizze az internetkapcsolatot. Ha a probléma továbbra is fennáll, próbáljon ki-, majd újra bejelentkezni.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Vendég munkamenet bezárása}other{Vendég munkamenet bezárása}}</translation>
 <translation id="7530016656428373557">Kisütési teljesítmény wattban</translation>
@@ -6421,6 +6430,7 @@
 <translation id="7898725031477653577">Mindig legyen lefordítva</translation>
 <translation id="790040513076446191">Adatvédelemmel kapcsolatos beállítások módosítása</translation>
 <translation id="7901405293566323524">Phone Hub</translation>
+<translation id="7901914889562552258">Továbbfejlesztett Chrome oldalmutatókkal</translation>
 <translation id="7903345046358933331">Az oldal nem válaszol. Megvárhatja, hogy reagáljon, vagy bezárhatja.</translation>
 <translation id="7903742244674067440">Vannak olyan tanúsítványok, amelyek azonosítják ezeket a tanúsítványkibocsátókat</translation>
 <translation id="7903859912536385558">stabil (megbízható tesztelő)</translation>
@@ -6887,6 +6897,7 @@
 <translation id="8392364544846746346">Kérdezzen rá, ha valamelyik webhely módosítani szeretné az eszközén található fájlokat vagy mappákat</translation>
 <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> beállításainak menüje</translation>
 <translation id="8393511274964623038">Beépülő modul leállítása</translation>
+<translation id="839363317075970734">Bluetooth-eszköz részletei</translation>
 <translation id="8393700583063109961">Üzenet küldése</translation>
 <translation id="8397825320644530257">Csatlakoztatott telefon leválasztása</translation>
 <translation id="8398877366907290961">Továbblépés</translation>
@@ -7137,6 +7148,7 @@
 <translation id="8681614230122836773">A Chrome kártékony szoftvert talált az Ön számítógépén</translation>
 <translation id="8682730193597992579">A(z) <ph name="PRINTER_NAME" /> csatlakoztatva van, és használatra kész</translation>
 <translation id="8683081248374354009">Csoport visszaállítása</translation>
+<translation id="8683526617475118045">Előnyök</translation>
 <translation id="8688672835843460752">Rendelkezésre áll</translation>
 <translation id="8690129572193755009">A webhelyek engedélyt kérhetnek a protokollok kezelésére</translation>
 <translation id="8695139659682234808">Szülői felügyelet hozzáadása beállítás után</translation>
@@ -7190,6 +7202,7 @@
 <translation id="8737685506611670901"><ph name="PROTOCOL" /> linkek megnyitása a(z) <ph name="REPLACED_HANDLER_TITLE" /> helyett</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Válassza ki a nyelvet, amelyre le szeretné fordítani az oldalt</translation>
+<translation id="8737916108453753541">A rendszer megosztja az URL-eket a Google-lal a böngészési viselkedés megértése érdekében</translation>
 <translation id="8740247629089392745">Átadhatja a Chromebookot <ph name="SUPERVISED_USER_NAME" /> számára. A beállítás majdnem kész, eljött a felfedezés ideje.</translation>
 <translation id="8741944563400125534">Kapcsolóalapú hozzáférés – Beállítási útmutató</translation>
 <translation id="8742998548129056176">Ez általános információ az eszközről és használatáról (például az akkumulátor töltöttségi szintjéről, a rendszer- és alkalmazástevékenységekről, valamint a hibákról). Az adatokat arra használjuk fel, hogy továbbfejlesszük az Androidot, bizonyos összesített adatok pedig a Google-alkalmazásoknak és -partnereknek, például az Android-fejlesztőknek segítenek alkalmazásaik és termékeik fejlesztésében.</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index b06d1c9..20de5b2 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -2652,7 +2652,6 @@
 <translation id="3797900183766075808">&amp;Որոնել «<ph name="SEARCH_TERMS" />»-ը <ph name="SEARCH_ENGINE" />-ում</translation>
 <translation id="3798449238516105146">Տարբերակ</translation>
 <translation id="3799128412641261490">Switch Access-ի կարգավորումներ</translation>
-<translation id="3799903419983101749">Շարունակեք աշխատանքը այն տեղից, որտեղ կանգ էիք առել։ Կարգավորումներում դուք կարող եք սահմանել հավելվածների ավտոմատ վերականգնման պարամետրեր։</translation>
 <translation id="3800806661949714323">Ցույց տալ բոլորը (հանձնարարելի)</translation>
 <translation id="380329542618494757">Անուն</translation>
 <translation id="3803345858388753269">Տեսանյութի որակը</translation>
@@ -4123,7 +4122,6 @@
 <translation id="5430931332414098647">Անկթարթային մուտքի կետ</translation>
 <translation id="5431318178759467895">Գունավոր</translation>
 <translation id="543338862236136125">Փոխել գաղտնաբառը</translation>
-<translation id="5433791271511851494">Թույլտվությունների տրամադրման կարգավորումները կառավարվում են ձեր կազմակերպության կողմից։</translation>
 <translation id="5434065355175441495">PKCS #1 RSA գաղտնագրում</translation>
 <translation id="5435779377906857208">Թույլատրել <ph name="HOST" /> կայքին օգտագործել ձեր տեղադրության մասին տվյալները</translation>
 <translation id="5436492226391861498">Պրոքսիի ուղու ստեղծման սպասում…</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 0e3a24f..d55fb0d 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;Menelusuri <ph name="SEARCH_ENGINE" /> untuk “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">Versi</translation>
 <translation id="3799128412641261490">Setelan tombol akses</translation>
-<translation id="3799903419983101749">Lanjutkan proses pemulihan sebelumnya. Anda dapat menyetel aplikasi untuk dipulihkan otomatis di Setelan.</translation>
 <translation id="3800806661949714323">Tampilkan semua (disarankan)</translation>
 <translation id="380329542618494757">Nama</translation>
 <translation id="3803345858388753269">Kualitas Video</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">Tethering Instan</translation>
 <translation id="5431318178759467895">Warna</translation>
 <translation id="543338862236136125">Edit sandi</translation>
-<translation id="5433791271511851494">Opsi untuk berbagi dikelola oleh organisasi Anda.</translation>
 <translation id="5434065355175441495">PKCS #1 MD Dengan Enkripsi RSA</translation>
 <translation id="5435779377906857208">Selalu izinkan <ph name="HOST" /> untuk mengakses lokasi Anda</translation>
 <translation id="5436492226391861498">Menunggu terowongan proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index cfa365e..bd779c4 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">Leita á <ph name="SEARCH_ENGINE" /> að „<ph name="SEARCH_TERMS" />“</translation>
 <translation id="3798449238516105146">Útgáfa</translation>
 <translation id="3799128412641261490">Stillingar rofaaðgangs</translation>
-<translation id="3799903419983101749">Haltu áfram þar sem þú hættir síðast. Þú getur valið forrit sem á að endurheimta sjálfkrafa í stillingum.</translation>
 <translation id="3800806661949714323">Sýna allt (ráðlagt)</translation>
 <translation id="380329542618494757">Nafn</translation>
 <translation id="3803345858388753269">Myndgæði</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">Skynditjóðrun</translation>
 <translation id="5431318178759467895">Í lit</translation>
 <translation id="543338862236136125">Breyta aðgangsorði</translation>
-<translation id="5433791271511851494">Fyrirtækið þitt stjórnar valkostum deilingar.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA-dulkóðun</translation>
 <translation id="5435779377906857208">Veita <ph name="HOST" /> alltaf aðgang að staðsetningunni þinni</translation>
 <translation id="5436492226391861498">Bíður eftir proxy-gögnum...</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 7c363e73..bba27d85 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -2651,7 +2651,6 @@
 <translation id="3797900183766075808">&amp;Cerca "<ph name="SEARCH_TERMS" />" su <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versione</translation>
 <translation id="3799128412641261490">Impostazioni Switch Access</translation>
-<translation id="3799903419983101749">Continua da dove avevi interrotto. Puoi impostare il ripristino automatico delle app nelle Impostazioni.</translation>
 <translation id="3800806661949714323">Mostra tutto (opzione consigliata)</translation>
 <translation id="380329542618494757">Nome</translation>
 <translation id="3803345858388753269">Qualità video</translation>
@@ -4119,7 +4118,6 @@
 <translation id="5430931332414098647">Tethering istantaneo</translation>
 <translation id="5431318178759467895">A colori</translation>
 <translation id="543338862236136125">Modifica password</translation>
-<translation id="5433791271511851494">Le opzioni per la condivisione sono gestite dalla tua organizzazione.</translation>
 <translation id="5434065355175441495">PKCS #1 con crittografia RSA</translation>
 <translation id="5435779377906857208">Consenti sempre al sito <ph name="HOST" /> di accedere alla tua posizione</translation>
 <translation id="5436492226391861498">In attesa del tunnel proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 5d1c9e5e..cfa2fc5 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;חיפוש ב-<ph name="SEARCH_ENGINE" /> אחר '<ph name="SEARCH_TERMS" />'</translation>
 <translation id="3798449238516105146">גרסה</translation>
 <translation id="3799128412641261490">הגדרות גישה באמצעות מתג</translation>
-<translation id="3799903419983101749">ממשיכים מהמקום שבו מפסיקים: מגדירים שחזור אוטומטי של אפליקציות ב'הגדרות'.</translation>
 <translation id="3800806661949714323">הצגת הכול (מומלץ)</translation>
 <translation id="380329542618494757">שם</translation>
 <translation id="3803345858388753269">איכות הווידאו</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">שיתוף אינטרנט מיידי בין ניידים</translation>
 <translation id="5431318178759467895">צבע</translation>
 <translation id="543338862236136125">עריכת סיסמה</translation>
-<translation id="5433791271511851494">האפשרויות לשיתוף מנוהלות על ידי הארגון שלך.</translation>
 <translation id="5434065355175441495">‏הצפנת RSA של PKCS #1</translation>
 <translation id="5435779377906857208">לאשר תמיד ל-<ph name="HOST" /> גישה למיקום</translation>
 <translation id="5436492226391861498">‏בהמתנה ל-Proxy Tunnel...</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index bff165e..30053c25 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -2650,7 +2650,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> で「<ph name="SEARCH_TERMS" />」を検索(&amp;S)</translation>
 <translation id="3798449238516105146">バージョン</translation>
 <translation id="3799128412641261490">スイッチ アクセスの設定</translation>
-<translation id="3799903419983101749">中断したところから続行します。[設定] で、自動的に復元されるようにアプリを設定できます。</translation>
 <translation id="3800806661949714323">すべてを表示(推奨)</translation>
 <translation id="380329542618494757">名前</translation>
 <translation id="3803345858388753269">画質</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">インスタント テザリング</translation>
 <translation id="5431318178759467895">カラー</translation>
 <translation id="543338862236136125">パスワードを編集</translation>
-<translation id="5433791271511851494">共有オプションは組織によって管理されています。</translation>
 <translation id="5434065355175441495">PKCS #1 RSA 暗号化</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> による位置情報へのアクセスを常に許可する</translation>
 <translation id="5436492226391861498">プロキシ トンネルの待機中...</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 43b095e..bd09717 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -2651,7 +2651,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" />-ში „<ph name="SEARCH_TERMS" />“-ის &amp;მოძიება</translation>
 <translation id="3798449238516105146">ვერსია</translation>
 <translation id="3799128412641261490">გადამრთველით წვდომის პარამეტრები</translation>
-<translation id="3799903419983101749">გააგრძელეთ იქიდან, სადაც შეჩერდით: პარამეტრებიდან შეგიძლიათ დააყენოთ აპების ავტომატური აღდგენა.</translation>
 <translation id="3800806661949714323">ყველას ჩვენება (რეკომენდებულია)</translation>
 <translation id="380329542618494757">სახელი</translation>
 <translation id="3803345858388753269">ვიდეოს ხარისხი</translation>
@@ -4119,7 +4118,6 @@
 <translation id="5430931332414098647">მყისიერი ტეტერინგი</translation>
 <translation id="5431318178759467895">ფერი</translation>
 <translation id="543338862236136125">პაროლის რედაქტირება</translation>
-<translation id="5433791271511851494">გაზიარების ვარიანტებს მართავს თქვენი ორგანიზაცია.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA დაშიფვრა</translation>
 <translation id="5435779377906857208"><ph name="HOST" />-ისთვის თქვენს მდებარეობაზე წვდომის ყოველთვის დაშვება</translation>
 <translation id="5436492226391861498">პროქსი გვირაბის მოლოდინი…</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index c891367..d403d8c 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -2647,7 +2647,6 @@
 <translation id="3797900183766075808">"<ph name="SEARCH_TERMS" />" сөзін <ph name="SEARCH_ENGINE" /> бойынша &amp;іздеу</translation>
 <translation id="3798449238516105146">Нұсқа</translation>
 <translation id="3799128412641261490">Switch Access параметрлері</translation>
-<translation id="3799903419983101749">Тоқтаған жерден жалғастырыңыз. "Параметрлер" бөлімінде қолданбаларды автоматты түрде қалпына келтірілетін етіп реттей аласыз.</translation>
 <translation id="3800806661949714323">Барлығын көрсету (ұсынылады)</translation>
 <translation id="380329542618494757">Аты</translation>
 <translation id="3803345858388753269">Бейне сапасы</translation>
@@ -4115,7 +4114,6 @@
 <translation id="5430931332414098647">Жылдам тетеринг</translation>
 <translation id="5431318178759467895">Түс</translation>
 <translation id="543338862236136125">Құпия сөзді өзгерту</translation>
-<translation id="5433791271511851494">Бөлісу опцияларын ұйымыңыз басқарады.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA шифрлауы</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> сайтына геодерегіңізді пайдалануға әрқашан рұқсат беру</translation>
 <translation id="5436492226391861498">Прокси туннелі күтілуде…</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 7892d05..58658314 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;ស្វែងរក <ph name="SEARCH_ENGINE" /> សម្រាប់ “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">កំណែ</translation>
 <translation id="3799128412641261490">ការកំណត់​ការប្រើប៊ូតុងចុច</translation>
-<translation id="3799903419983101749">បន្តពីកន្លែង​ដែលអ្នកបាន​ចាកចេញ។ អ្នកអាចកំណត់ឱ្យកម្មវិធី​ស្ដារ​ដោយស្វ័យប្រវត្តិ​នៅក្នុង​ការកំណត់។</translation>
 <translation id="3800806661949714323">បង្ហាញទាំងអស់ (បានណែនាំ)</translation>
 <translation id="380329542618494757">ឈ្មោះ</translation>
 <translation id="3803345858388753269">គុណភាពវីដេអូ</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">ការ​ភ្ជាប់​ភ្លាមៗ</translation>
 <translation id="5431318178759467895">ពណ៌</translation>
 <translation id="543338862236136125">កែពាក្យ​សម្ងាត់</translation>
-<translation id="5433791271511851494">ជម្រើសនៃការចែករំលែក​ស្ថិត​ក្រោម​ការ​គ្រប់គ្រង​របស់ស្ថាប័ន​អ្នក។</translation>
 <translation id="5434065355175441495">ការអ៊ីនគ្រីប PKCS #1 RSA</translation>
 <translation id="5435779377906857208">អនុញ្ញាតឱ្យ <ph name="HOST" /> ចូលប្រើទីតាំងរបស់អ្នកជានិច្ច</translation>
 <translation id="5436492226391861498">កំពុងរង់ចាំបណ្តាញផ្លូវប្រូកស៊ី...</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 82a4450..b5ec734 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -2659,7 +2659,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> ಗಾಗಿ '<ph name="SEARCH_TERMS" />' &amp;ಹುಡುಕಿ</translation>
 <translation id="3798449238516105146">ಆವೃತ್ತಿ</translation>
 <translation id="3799128412641261490">ಪ್ರವೇಶದ ವಿಧಾನವನ್ನು ಬದಲಿಸುವ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
-<translation id="3799903419983101749">ನೀವು ಎಲ್ಲಿ ನಿಲ್ಲಿಸಿರುವಿರೋ, ಅಲ್ಲಿಂದ ಮುಂದುವರಿಸಿ. ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸ್ಥಾಪಿಸಲು ನೀವು ಆ್ಯಪ್‌ಗಳನ್ನು ಹೊಂದಿಸಬಹುದು.</translation>
 <translation id="3800806661949714323">ಎಲ್ಲಾ ತೋರಿಸು (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="380329542618494757">ಹೆಸರು</translation>
 <translation id="3803345858388753269">ವೀಡಿಯೊ ಗುಣಮಟ್ಟ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 27cd2ae3..bb51b9d 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" />에서 '<ph name="SEARCH_TERMS" />' 검색(&amp;S)</translation>
 <translation id="3798449238516105146">버전</translation>
 <translation id="3799128412641261490">스위치 제어 설정</translation>
-<translation id="3799903419983101749">이전에 끝냈던 지점에서 다시 시작하세요. 설정에서 앱이 자동으로 복원되도록 설정할 수 있습니다.</translation>
 <translation id="3800806661949714323">모두 표시(권장)</translation>
 <translation id="380329542618494757">이름</translation>
 <translation id="3803345858388753269">동영상 품질</translation>
@@ -4132,7 +4131,6 @@
 <translation id="5430931332414098647">인스턴트 테더링</translation>
 <translation id="5431318178759467895">컬러</translation>
 <translation id="543338862236136125">비밀번호 수정</translation>
-<translation id="5433791271511851494">공유 옵션은 조직에서 관리합니다.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA 암호화</translation>
 <translation id="5435779377906857208"><ph name="HOST" />의 위치 액세스 항상 허용</translation>
 <translation id="5436492226391861498">프록시 터널을 기다리는 중...</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index bc0588d..366467a 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;'<ph name="SEARCH_TERMS" />' дегенди <ph name="SEARCH_ENGINE" /> дегенден издөө</translation>
 <translation id="3798449238516105146">Версия</translation>
 <translation id="3799128412641261490">Switch Access жөндөөлөрү</translation>
-<translation id="3799903419983101749">Токтогон жерден улантып иштеңиз. Жөндөөлөргө өтүп, колдонмолорду автоматтык түрдө калыбына келтире аласыз.</translation>
 <translation id="3800806661949714323">Баарын көрсөтүү (сунушталат)</translation>
 <translation id="380329542618494757">Ата-жөнү</translation>
 <translation id="3803345858388753269">Видеонун сапаты</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">Ыкчам байланыш түйүнү</translation>
 <translation id="5431318178759467895">Түс</translation>
 <translation id="543338862236136125">Сырсөздү түзөтүү</translation>
-<translation id="5433791271511851494">Бөлүшүү параметрлерин уюмуңуз башкарат.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA Шифрлөө</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> түйүнүнө жайгашкан жериңизди көрүүгө ар дайым уруксат берилсин</translation>
 <translation id="5436492226391861498">Прокси туннели күтүлүүдө…</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 8859945..e06d9cf 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -446,6 +446,7 @@
 <translation id="1476088332184200792">ສຳເນົາໄປໃສ່ອຸປະກອນຂອງທ່ານ</translation>
 <translation id="1476607407192946488">ການຕັ້ງຄ່າ&amp;ພາສາ</translation>
 <translation id="1477446329585670721"><ph name="DOMAIN" /> ກຳນົດໃຫ້ທ່ານສຽບບັດອັດສະລິຍະຄາໄວ້.</translation>
+<translation id="1477654881618305065">ອົງການຂອງທ່ານບໍ່ອະນຸຍາດໃຫ້ທ່ານແບ່ງປັນເນື້ອຫານີ້. ຫາກທ່ານຕ້ອງການຄວາມຊ່ວຍເຫຼືອ, ໃຫ້ຕິດຕໍ່ຫາຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation>
 <translation id="1478340334823509079">ລາຍ​ລະ​ອຽດ​: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">ບໍ່ໄດ້ເປີດນຳໃຊ້ການຕິດຕັ້ງ</translation>
 <translation id="1480571698637441426">ເພື່ອຮັບຄຳຕອບທີ່ປັບແຕ່ງມາແລ້ວເມື່ອທ່ານຖາມຄຳຖາມ, ກະລຸນາເປີດໃຫ້ຜູ້ຊ່ວຍຂອງທ່ານເຂົ້າເຖິງຮູບໜ້າຈໍຂອງສິ່ງທີ່ຢູ່ເທິງໜ້າຈໍຂອງທ່ານໄດ້. ນີ້ອາດຮວມຂໍ້ມູນກ່ຽວກັບເພງ ຫຼື ວິດີໂອທີ່ກຳລັງເປີດຢູ່ນຳ.</translation>
@@ -619,6 +620,7 @@
 <translation id="1643921258693943800">ເພື່ອໃຊ້ການແບ່ງປັນໃກ້ຄຽງ, ກະລຸນາເປີດ Bluetooth ແລະ Wi-Fi</translation>
 <translation id="1644574205037202324">ປະຫວັດ</translation>
 <translation id="1645516838734033527">ເພື່ອຮັກສາໃຫ້ <ph name="DEVICE_TYPE" /> ຂອງທ່ານໃຫ້ປອດໄພ, Smart Lock ຈຳເປັນຕ້ອງມີການລັອກໜ້າຈໍໃນໂທລະສັບຂອງທ່ານ.</translation>
+<translation id="1646793251510634025">ກວດສອບການຕັ້ງຄ່າສຳລັບການປັບປຸງປະສິດທິພາບການຊອກຫາ ແລະ ການທ່ອງເວັບ</translation>
 <translation id="1646982517418478057">ກະລຸນາປ້ອນລະຫັດຜ່ານ ເພື່ອເຂົ້າລະຫັດໃບຢັ້ງຢືນນີ້</translation>
 <translation id="1648528859488547844">ໃຊ້ Wi‑Fi, Bluetooth ຫຼື ເຄືອຂ່າຍມືຖືເພື່ອກຳນົດສະຖານທີ່</translation>
 <translation id="164936512206786300">ຍົກເລີກການຈັບຄູ່ອຸປະກອນ Bluetooth</translation>
@@ -1473,6 +1475,7 @@
 <translation id="2514326558286966059">ປົດລັອກໄດ້ໄວຂຶ້ນດ້ວຍລາຍນິ້ວມືຂອງທ່ານ</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">ມອບໝາຍປຸ່ມກົດເພີ່ມອີກໜຶ່ງປຸ່ມ</translation>
+<translation id="251722524540674480">ຢືນຢັນຊື່ຜູ້ໃຊ້ຂອງທ່ານ</translation>
 <translation id="2517472476991765520">ສະແກນ</translation>
 <translation id="2518024842978892609">ໃຊ້​ໃບ​ຢັ້ງ​ຢືນ​ລູກ​ຂ່າຍ​ຂອງ​ທ່ານ</translation>
 <translation id="2519517390894391510">ຊື່ໂປຣໄຟລ໌ໃບຮັບຮອງ</translation>
@@ -2177,6 +2180,7 @@
 <translation id="3288047731229977326">ສ່ວນຂະຫຍາຍທີ່ແລ່ນຢູ່ໃນໂໝດຜູ້ພັດທະນາສາມາດເຮັດໃຫ້ຄອມພິວເຕີຂອງທ່ານເສຍຫາຍໄດ້. ຖ້າທ່ານບໍ່ແມ່ນຜູ້ພັດທະນາ, ທ່ານຄວນຈະປິດໃຊ້ງານສ່ວນຂະຫຍາຍເຫຼົ່ານີ້ທີ່ແລ່ນຢູ່ໃນໂໝດຜູ້ພັດທະນາ ເືພ່ອໃຫ້ປອດໄພ.</translation>
 <translation id="3289668031376215426">ເຮັດຕົວພິມໃຫຍ່ອັດຕະໂນມັດ</translation>
 <translation id="3289856944988573801">ເພື່ອກວດເບິ່ງການອັບເດດ, ກະລຸນາໃຊ້ອີເທີເນັດ ຫຼື Wi-Fi.</translation>
+<translation id="3291436823898732747">ການທ່ອງເວັບທີ່ປັບປຸງແລ້ວ: ຕົວງຢ່າງ, ການແນະນຳໃນ Omnibox ກ່ອນທີ່ທ່ານຈະເລີ່ມພິມ</translation>
 <translation id="3293644607209440645">ສົ່ງໜ້ານີ້</translation>
 <translation id="32939749466444286">ກ່ອງບັນຈຸ Linux ບໍ່ເລີ່ມຕົ້ນ. ກະລຸນາລອງໃໝ່ອີກຄັ້ງ.</translation>
 <translation id="3294437725009624529">ແຂກ</translation>
@@ -2663,7 +2667,6 @@
 <translation id="3797900183766075808">&amp;ຊອກ <ph name="SEARCH_ENGINE" /> ຫາ “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">ລຸ້ນ</translation>
 <translation id="3799128412641261490">ການຕັ້ງຄ່າການເຂົ້າເຖິງດ້ວຍປຸ່ມກົດ</translation>
-<translation id="3799903419983101749">ສືບຕໍ່ຈາກບ່ອນທີ່ທ່ານຄ້າງໄວ້. ທ່ານສາມາດຕັ້ງໃຫ້ແອັບກູ້ຄືນອັດຕະໂນມັດໄດ້ໃນການຕັ້ງຄ່າ.</translation>
 <translation id="3800806661949714323">ສະແດງທັງໝົດ (ແນະນໍາ)</translation>
 <translation id="380329542618494757">ຊື່</translation>
 <translation id="3803345858388753269">ຄຸນ​ນະ​ພາບວິ​ດີ​ໂອ​</translation>
@@ -4132,7 +4135,6 @@
 <translation id="5430931332414098647">ການປ່ອຍສັນຍານທັນທີ</translation>
 <translation id="5431318178759467895">ສີ</translation>
 <translation id="543338862236136125">ແກ້ໄຂລະຫັດຜ່ານ</translation>
-<translation id="5433791271511851494">ຕົວເລືອກສຳລັບການແບ່ງປັນແມ່ນຈັດການໂດຍອົງການຂອງທ່ານ.</translation>
 <translation id="5434065355175441495">ການໃສ່ລະຫັດ PKCS #1 RSA</translation>
 <translation id="5435779377906857208">ອະນຸຍາດໃຫ້ <ph name="HOST" /> ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານທຸກເທື່ອ</translation>
 <translation id="5436492226391861498">ກໍາລັງລໍຖ້າຊ່ອງພຣັອກຊີ...</translation>
@@ -4214,6 +4216,7 @@
 <translation id="5505307013568720083">ໝຶກໝົດ</translation>
 <translation id="5505794066310932198">ສະຫຼັບຄຳສັ່ງ</translation>
 <translation id="5507756662695126555">ການບໍ່ປະຕິເສດ</translation>
+<translation id="5507795078844206688">URL ຂອງໜ້າທີ່ທ່ານເຂົ້າ, ຕົວຢ່າງ: https://www.google.com</translation>
 <translation id="5509693895992845810">ບັນທຶກເປັນ...</translation>
 <translation id="5509914365760201064">ຜູ້ອອກໃຫ້: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">ຮັບລາຍລະອຽດຮູບພາບຈາກ Google</translation>
@@ -4530,6 +4533,7 @@
 <translation id="5869522115854928033">ລະ​ຫັດ​ຜ່ານ​ທີ່ບັນທຶກໄວ້</translation>
 <translation id="5870086504539785141">ປິດເມນູການເຂົ້າ​ຫາ</translation>
 <translation id="5870155679953074650">ການຂັດຂ້ອງຮ້າຍແຮງ</translation>
+<translation id="5875534259258494936">ການແບ່ງປັນໜ້າຈໍສິ້ນສຸດລົງແລ້ວ</translation>
 <translation id="5876576639916258720">ກຳລັງເອີ້ນໃຊ້...</translation>
 <translation id="5876851302954717356">ແຖບໃໝ່ຢູ່ເບື້ອງຂວາ</translation>
 <translation id="5877064549588274448">ປ່ຽນຊ່ອງແລ້ວ. ປິດເປີດເຄື່ອງຂອງທ່ານໃໝ່ ເພື່ອນໍາໃຊ້ການປ່ຽນແປງ.</translation>
@@ -5389,6 +5393,7 @@
 <translation id="6812349420832218321"><ph name="PRODUCT_NAME" /> ບໍ່​ສາມາດ​ຖືກ​ແລ່ນເປັນຮາກຖານໄດ້.</translation>
 <translation id="6812841287760418429">ສືບຕໍ່ປ່ຽນແປງ</translation>
 <translation id="6813907279658683733">ທັງໜ້າຈໍ</translation>
+<translation id="6814033694018386318">ສິ່ງທີ່ທ່ານແບ່ງປັນກັບ Google</translation>
 <translation id="6817174620439930047">ຖາມເມື່ອເວັບໄຊຕ້ອງການໃຊ້ຂໍ້ຄວາມສະເພາະລະບົບເພື່ອເຂົ້າຫາອຸປະກອນ MIDI (ແນະນໍາ)</translation>
 <translation id="6818198425579322765">ພາສາຂອງໜ້າເວັບທີ່ຈະແປ</translation>
 <translation id="6818802132960437751">ລະບົບປ້ອງກັນໄວຣັສໃນຕົວ</translation>
@@ -5884,6 +5889,7 @@
 <translation id="7374376573160927383">ຈັດການອຸປະກອນ USB</translation>
 <translation id="7374461526650987610">ເຄື່ອງຈັດການໂປຣໂຕໂຄລ</translation>
 <translation id="7375235221357833624">{0,plural, =1{ອັບເດດອຸປະກອນພາຍໃນໜຶ່ງຊົ່ວໂມງ}other{ອັບເດດອຸປະກອນພາຍໃນ # ຊົ່ວໂມງ}}</translation>
+<translation id="7376543451826039186">ການທ່ອງເວັບທີ່ໄວຂຶ້ນ: ຕົວຢ່າງ, ການໂຫຼດເນື້ອຫາເພີ່ມເຕີມສະເພາະເອງໂດຍອ້າງອີງໃສ່ໜ້າປັດຈຸບັນ</translation>
 <translation id="7376553024552204454">ໝາຍເຄີເຊີເມົ້າໃນເວລາທີ່ມັນເຄື່ອນເໜັງ</translation>
 <translation id="737728204345822099">ບັນທຶກການເຂົ້າເບິ່ງເວັບໄຊນີ້ຂອງທ່ານອາດຈະຖືກຮັກສາໄວ້ໃນກະແຈຄວາມປອດໄພຂອງທ່ານ.</translation>
 <translation id="7377451353532943397">ສືບຕໍ່ບລັອກການເຂົ້າເຖິງເຊັນເຊີ</translation>
@@ -5941,6 +5947,7 @@
 <translation id="7427798576651127129">ການໂທຈາກ <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">ບໍ່ພົບອຸປະກອນ HID ໃດ</translation>
 <translation id="7431991332293347422">ຄວບຄຸມວ່າຈະໃຫ້ໃຊ້ປະຫວັດການທ່ອງເວັບຂອງທ່ານແນວໃດເພື່ອປັບແຕ່ງການຊອກຫາ ແລະ ອື່ນໆອີກໃຫ້ເປັນແບບສ່ວນຕົວ</translation>
+<translation id="7432200167665670017">ຜູ້ເບິ່ງແຍງຂອງທ່ານບລັອກ "<ph name="EXTENSION_NAME" />" ໄວ້ແລ້ວ - App ID <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">ສຽບບັດອັດສະລິຍະເພື່ອສືບຕໍ່ໃຊ້ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ</translation>
 <translation id="7433957986129316853">ເກັບໄວ້</translation>
 <translation id="7434509671034404296">ຜູ້ພັດ​ທະ​ນາ</translation>
@@ -5970,6 +5977,7 @@
 <translation id="7460045493116006516">ຮູບແບບສີສັນປັດຈຸບັນທີ່ທ່ານໄດ້ຕິດຕັ້ງ</translation>
 <translation id="7461924472993315131">ປັກໝຸດ</translation>
 <translation id="746216226901520237">ຄັ້ງຕໍ່ໄປ, ໂທລະສັບຂອງທ່ານຈະປົດລັອກ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ. ທ່ານສາມາດປິດ Smart Lock ໄດ້ໃນການຕັ້ງຄ່າ.</translation>
+<translation id="7464637891177137294">ບັນທຶກມັນໄວ້ໃນບັນຊີ Google ຂອງທ່ານ, <ph name="ACCOUNT" /></translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{ມີແຖບເປີດຢູ່ # ແຖບ, ກະລຸນາກົດເພື່ອສະຫຼັບແນວແຖບ}other{ມີແຖບເປີດຢູ່ # ແຖບ, ກະລຸນາກົດເພື່ອສະຫຼັບແນວແຖບ}}</translation>
 <translation id="7465635034594602553">ມີບາງຢ່າງຜິດພາດ. ກະລຸນາລໍຖ້າສອງສາມນາທີ ແລ້ວເປີດໃຊ້ <ph name="APP_NAME" /> ອີກຄັ້ງ.</translation>
 <translation id="7465778193084373987">URL ການຖອນໃບຢັ້ງຢືນ Netscape</translation>
@@ -6033,6 +6041,7 @@
 <translation id="7525625923260515951">ຟັງຂໍ້ຄວາມທີ່ເລືອກ</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{ອີກ 1 ລາຍການ}other{ອີກ {NUM_DOWNLOADS} ລາຍການ}}</translation>
 <translation id="7526989658317409655">ຕົວຍຶດບ່ອນ</translation>
+<translation id="7527758104894292229">ກະລຸນາອັບເດດມັນໃນບັນຊີ Google ຂອງທ່ານ, <ph name="ACCOUNT" /></translation>
 <translation id="7529411698175791732">ກວດເບິ່ງການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງທ່ານ. ຖ້າບັນຫາຍັງສືບຕໍ່, ກະລຸນາລອງອອກຈາກລະບົບແລ້ວເຂົ້າສູ່ລະບົບຄືນໃໝ່.</translation>
 <translation id="7529876053219658589">{0,plural, =1{ປິດໜ້າຈໍຜູ້ຢ້ຽມຢາມ}other{ປິດໜ້າຈໍຜູ້ຢ້ຽມຢາມ}}</translation>
 <translation id="7530016656428373557">ອັດຕາປ່ອຍອອກມາເປັນວັດຕ໌</translation>
@@ -6419,6 +6428,7 @@
 <translation id="7898725031477653577">ແປຢູ່ສະເໝີ</translation>
 <translation id="790040513076446191">ຈັດການເລື່ອງການຕັ້ງຄ່າກ່ຽວຂ້ອງກັບຄວາມເປັນສ່ວນຕົວຢູ່</translation>
 <translation id="7901405293566323524">Phone Hub</translation>
+<translation id="7901914889562552258">Chrome ທີ່ປັບປຸງໂດຍໃຊ້ການວັດແທກໜ້າ</translation>
 <translation id="7903345046358933331">ໜ້າບໍ່ຕອບສະໜອງ. ທ່ານສາມາດລໍຖ້າມັນໃຫ້ຕອບສະໜອງ ຫຼື ປິດ​ມັນ​ໄດ້.</translation>
 <translation id="7903742244674067440">ທ່ານມີໃບຢັ້ງຢືນຢູ່ໃນໄຟລ໌ທີ່ລະບຸໜ່ວຍ​ງານ​ອອກໃບຢັ້ງຢືນເຫຼົ່ານີ້</translation>
 <translation id="7903859912536385558">ສະຖຽນ (ຜູ້ທົດສອບທີ່ເຊື່ອຖືໄດ້)</translation>
@@ -6884,6 +6894,7 @@
 <translation id="8392364544846746346">ຖາມເມື່ອເວັບໄຊຕ້ອງການແກ້ໄຂໄຟລ໌ ຫຼື ໂຟນເດີໃນອຸປະກອນຂອງທ່ານ</translation>
 <translation id="8392451568018454956">ເມ​ນູ​ທາງ​ເລືອກ​ສໍາ​ລັບ <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8393511274964623038">ຢຸດປລັກອິນ</translation>
+<translation id="839363317075970734">ລາຍລະອຽດອຸປະກອນ Bluetooth</translation>
 <translation id="8393700583063109961">ສົ່ງຂໍ້ຄວາມ</translation>
 <translation id="8397825320644530257">ຕັດການເຊື່ອມຕໍ່ໂທລະສັບທີ່ເຊື່ອມຕໍ່ແລ້ວ</translation>
 <translation id="8398877366907290961">ແນວໃດກໍ່ດໍາເນີນການຕໍ່</translation>
@@ -7134,6 +7145,7 @@
 <translation id="8681614230122836773">Chrome ໄດ້ພົບຊອບແວອັນຕະລາຍໃນຄອມພິວເຕີຂອງທ່ານ</translation>
 <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> ເຊື່ອມຕໍ່ ແລະ ພ້ອມແລ້ວ</translation>
 <translation id="8683081248374354009">ຣີເຊັດກຸ່ມ</translation>
+<translation id="8683526617475118045">ສິ່ງທີ່ທ່ານໄດ້ຮັບ</translation>
 <translation id="8688672835843460752">ຍັງເຫຼືອ</translation>
 <translation id="8690129572193755009">ເວັບໄຊສາມາດຂໍຈັດການໂປຣໂຕຄໍໄດ້</translation>
 <translation id="8695139659682234808">ເພີ່ມການຄວບຄຸມຂອງພໍ່ແມ່ຫຼັງຈາກການຕັ້ງຄ່າ</translation>
@@ -7187,6 +7199,7 @@
 <translation id="8737685506611670901">ເປີດ <ph name="PROTOCOL" /> ລິ້ງ​ແທນ <ph name="REPLACED_HANDLER_TITLE" /></translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">ເລືອກພາສາທີ່ຈະແປໜ້າເປັນ</translation>
+<translation id="8737916108453753541">URL ແມ່ນແບ່ງປັນກັບ Google ເພື່ອເຂົ້າໃຈພຶດຕິກຳການທ່ອງເວັບ</translation>
 <translation id="8740247629089392745">ທ່ານສາມາດມອບ Chromebook ນີ້ໃຫ້ <ph name="SUPERVISED_USER_NAME" /> ໄດ້. ການຕັ້ງຄ່າເກືອບສຳເລັດແລ້ວ, ຈາກນັ້ນມັນກໍເຖິງເວລາສຳຫຼວດແລ້ວ.</translation>
 <translation id="8741944563400125534">ການແນະນຳການຕັ້ງຄ່າການເຂົ້າເຖິງດ້ວຍປຸ່ມກົດ</translation>
 <translation id="8742998548129056176">ນີ້ແມ່ນຂໍ້ມູນທົ່ວໄປກ່ຽວກັບອຸປະກອນຂອງທ່ານ ແລະ ທ່ານໃຊ້ມັນແນວໃດ (ເຊັ່ນ: ລະດັບແບັດເຕີຣີ, ການເຄື່ອນໄຫວລະບົບ ແລະ ແອັບ, ຂໍ້ຜິດພາດຕ່າງໆ). ຂໍ້ມູນດັ່ງກ່າວຈະຖືກໃຊ້ເພື່ອປັບປຸງ Android ແລະ ບາງຂໍ້ມູນແບບຮວມກັນຈະຊ່ວຍໃຫ້ແອັບ ແລະ ຮຸ້ນສ່ວນຂອງ Google ເຊັ່ນ: ນັກພັດທະນາແອັບ Android ປັບປຸງແອັບ ແລະ ຜະລິດຕະພັນຂອງເຂົາເຈົ້າໃຫ້ດີຂຶ້ນໄດ້ນຳ.</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 729fcba..9740789 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -449,6 +449,7 @@
 <translation id="1476088332184200792">Kopijuoti į įrenginį</translation>
 <translation id="1476607407192946488">&amp;Kalbos nustatymai</translation>
 <translation id="1477446329585670721"><ph name="DOMAIN" /> reikia, kad paliktumėte įdėtą išmaniąją kortelę.</translation>
+<translation id="1477654881618305065">Organizacijoje neleidžiama bendrinti šio turinio. Jei reikia pagalbos, susisiekite su administratoriumi.</translation>
 <translation id="1478340334823509079">Išsami informacija: „<ph name="FILE_NAME" />“</translation>
 <translation id="1478607704480248626">Diegimas neįgalintas</translation>
 <translation id="1480571698637441426">Kad gautumėte pritaikytus atsakymus į užduotus klausimus, leiskite Padėjėjui pasiekti jūsų ekrano kopiją. Tai taip pat gali apimti informaciją apie leidžiamas dainas ar vaizdo įrašus.</translation>
@@ -624,6 +625,7 @@
 <translation id="1643921258693943800">Jei norite naudoti Bendrinimą netoliese, įjunkite „Bluetooth“ ir „Wi-Fi“</translation>
 <translation id="1644574205037202324">Istorija</translation>
 <translation id="1645516838734033527">Kad būtų galima apsaugoti „<ph name="DEVICE_TYPE" />“, „Smart Lock“ reikia užrakinti telefono ekraną.</translation>
+<translation id="1646793251510634025">Peržiūrėkite paieškos ir naršymo optimizavimo nustatymus</translation>
 <translation id="1646982517418478057">Kad užšifruotumėte šį sertifikatą, įveskite slaptažodį</translation>
 <translation id="1648528859488547844">Naudoti „Wi‑Fi“ arba mobiliojo ryšio tinklus vietovei nustatyti</translation>
 <translation id="164936512206786300">„Bluetooth“ įrenginio atsiejimas</translation>
@@ -1479,6 +1481,7 @@
 <translation id="2514326558286966059">Atrakinkite greičiau kontroliniu kodu</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Priskirti dar vieną jungiklį</translation>
+<translation id="251722524540674480">Naudotojo vardo patvirtinimas</translation>
 <translation id="2517472476991765520">Nuskaityti</translation>
 <translation id="2518024842978892609">Naudoti klientų sertifikatus</translation>
 <translation id="2519517390894391510">Sertifikuojamo profilio pavadinimas</translation>
@@ -2183,6 +2186,7 @@
 <translation id="3288047731229977326">Kūrėjo režimu veikiantys plėtiniai gali padaryti žalos kompiuteryje. Jei nesate kūrėjai, turėtumėte išjungti šių plėtinių veikimą kūrėjo režimu, kad išliktumėte saugūs.</translation>
 <translation id="3289668031376215426">Automatinis didžiųjų raidžių rašymas</translation>
 <translation id="3289856944988573801">Jei norite tikrinti, ar nėra naujinių, naudokite eternetą arba „Wi-Fi“.</translation>
+<translation id="3291436823898732747">Patobulintas naršymas: pvz., pasiūlymai „Omnibox“ prieš pradedant vesti tekstą</translation>
 <translation id="3293644607209440645">Siųsti šį puslapį</translation>
 <translation id="32939749466444286">Nepavyko paleisti „Linux“ sudėtinio rodinio. Bandykite dar kartą.</translation>
 <translation id="3294437725009624529">Svečias</translation>
@@ -2669,7 +2673,6 @@
 <translation id="3797900183766075808">&amp;Ieškoti pagal užklausą „<ph name="SEARCH_TERMS" />“ naudojant „<ph name="SEARCH_ENGINE" />“</translation>
 <translation id="3798449238516105146">Versija</translation>
 <translation id="3799128412641261490">Prieigos jungikliu nustatymai</translation>
-<translation id="3799903419983101749">Tęskite nuo ten, kur baigėte. Galite nustatyti, kad programos būtų atkurtos automatiškai, skiltyje „Nustatymai“.</translation>
 <translation id="3800806661949714323">Rodyti viską (rekomenduojama)</translation>
 <translation id="380329542618494757">Vardas ir pavardė</translation>
 <translation id="3803345858388753269">Vaizdo įrašo kokybė</translation>
@@ -4138,7 +4141,6 @@
 <translation id="5430931332414098647">Momentinis įrenginio kaip modemo naudojimas</translation>
 <translation id="5431318178759467895">Spalva</translation>
 <translation id="543338862236136125">Redaguoti slaptažodį</translation>
-<translation id="5433791271511851494">Bendrinimo parinktis valdo jūsų organizacija.</translation>
 <translation id="5434065355175441495">PKCS Nr. 1 RSA šifruotė</translation>
 <translation id="5435779377906857208">Visada leisti <ph name="HOST" /> pasiekti jūsų vietovės informaciją</translation>
 <translation id="5436492226391861498">Laukiama, kol bus nustatytas tarpinio serverio tunelis...</translation>
@@ -4220,6 +4222,7 @@
 <translation id="5505307013568720083">Baigėsi rašalas</translation>
 <translation id="5505794066310932198">„Commander“ perjungimas</translation>
 <translation id="5507756662695126555">Ne atsisakymas</translation>
+<translation id="5507795078844206688">Puslapių, kuriuose lankotės, URL, pvz., https://www.google.com</translation>
 <translation id="5509693895992845810">Išsaugoti &amp;kaip...</translation>
 <translation id="5509914365760201064">Išdavėjas: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Gauti vaizdų aprašų iš „Google“</translation>
@@ -4537,6 +4540,7 @@
 <translation id="5869522115854928033">Išsaugoti slaptažodžiai</translation>
 <translation id="5870086504539785141">Uždaryti pasiekiamumo meniu</translation>
 <translation id="5870155679953074650">Sunkūs gedimai</translation>
+<translation id="5875534259258494936">Ekrano bendrinimas baigtas</translation>
 <translation id="5876576639916258720">Vykdoma...</translation>
 <translation id="5876851302954717356">Naujas skirtukas dešinėje</translation>
 <translation id="5877064549588274448">Kanalas pakeistas. Kad pritaikytumėte pakeitimus, iš naujo paleiskite įrenginį.</translation>
@@ -5396,6 +5400,7 @@
 <translation id="6812349420832218321">„<ph name="PRODUCT_NAME" />“ negalima paleisti pagrindinio naudotojo vardu.</translation>
 <translation id="6812841287760418429">Palikti pakeitimus</translation>
 <translation id="6813907279658683733">Visas ekranas</translation>
+<translation id="6814033694018386318">Ką bendrinate su „Google“</translation>
 <translation id="6817174620439930047">Paklausti, kai svetainė nori naudoti sistemos išskirtinius pranešimus MIDI įrenginiams pasiekti (rekomenduojama)</translation>
 <translation id="6818198425579322765">Verčiama puslapio kalba</translation>
 <translation id="6818802132960437751">Integruota apsauga nuo virusų</translation>
@@ -5891,6 +5896,7 @@
 <translation id="7374376573160927383">Tvarkyti USB įrenginius</translation>
 <translation id="7374461526650987610">Protokolų doroklės</translation>
 <translation id="7375235221357833624">{0,plural, =1{Įrenginio atnaujinimas po valandos}one{Įrenginio atnaujinimas po # valandos}few{Įrenginio atnaujinimas po # valandų}many{Įrenginio atnaujinimas po # valandos}other{Įrenginio atnaujinimas po # valandų}}</translation>
+<translation id="7376543451826039186">Spartesnis naršymas: pvz., iš anksto įkeliamas konkretus tolimesnis turinys, atsižvelgiant į dabartinį puslapį</translation>
 <translation id="7376553024552204454">Paryškinti pelės žymeklį, kai jis juda</translation>
 <translation id="737728204345822099">Saugos rakte gali būti saugomas įrašas apie apsilankymą šioje svetainėje.</translation>
 <translation id="7377451353532943397">Toliau blokuoti prieigą prie jutiklio</translation>
@@ -5948,6 +5954,7 @@
 <translation id="7427798576651127129">Skambina <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">Nerasta jokių HID įrenginių</translation>
 <translation id="7431991332293347422">Naršymo istorijos naudojimo paieškai ir kitoms funkcijoms suasmeninti valdymas</translation>
+<translation id="7432200167665670017">Jūsų administratorius užblokavo „<ph name="EXTENSION_NAME" />“ – programos ID <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">Įdėkite išmaniąją kortelę, kad galėtumėte toliau naudoti „<ph name="DEVICE_TYPE" />“ įrenginį</translation>
 <translation id="7433957986129316853">Palikti</translation>
 <translation id="7434509671034404296">Vykdymo programa</translation>
@@ -5977,6 +5984,7 @@
 <translation id="7460045493116006516">Dabartinė jūsų įdiegta tema</translation>
 <translation id="7461924472993315131">Prisegti</translation>
 <translation id="746216226901520237">Kitą kartą telefonu galėsite atrakinti „<ph name="DEVICE_TYPE" />“. Funkciją „Smart Lock“ galite išjungti „Nustatymų“ skiltyje.</translation>
+<translation id="7464637891177137294">Išsaugokite „Google“ paskyroje, <ph name="ACCOUNT" /></translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# atidarytas skirtukas, paspauskite perjungdami skirtuko juostelę}one{# atidarytas skirtukas, paspauskite perjungdami skirtuko juostelę}few{# atidaryti skirtukai, paspauskite perjungdami skirtuko juostelę}many{# atidaryto skirtuko, paspauskite perjungdami skirtuko juostelę}other{# atidarytų skirtukų, paspauskite perjungdami skirtuko juostelę}}</translation>
 <translation id="7465635034594602553">Kažkas nepavyko. Palaukite kelias minutes ir paleiskite programą „<ph name="APP_NAME" />“ dar kartą.</translation>
 <translation id="7465778193084373987">„Netscape“ sertifikato panaikinimo URL</translation>
@@ -6040,6 +6048,7 @@
 <translation id="7525625923260515951">Išgirskite pasirinktą tekstą</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{Dar 1}one{Dar {NUM_DOWNLOADS}}few{Dar {NUM_DOWNLOADS}}many{Dar {NUM_DOWNLOADS}}other{Dar {NUM_DOWNLOADS}}}</translation>
 <translation id="7526989658317409655">Rezervuota vieta</translation>
+<translation id="7527758104894292229">Atnaujinkite jį „Google“ paskyroje, <ph name="ACCOUNT" /></translation>
 <translation id="7529411698175791732">Patikrinkite interneto ryšį. Jei problema kartosis, pabandykite atsijungti ir vėl prisijungti.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Uždaryti svečio langus}one{Uždaryti svečio langus}few{Uždaryti svečio langus}many{Uždaryti svečio langus}other{Uždaryti svečio langus}}</translation>
 <translation id="7530016656428373557">Iškrovos koeficientas vatais</translation>
@@ -6427,6 +6436,7 @@
 <translation id="7898725031477653577">Visada versti</translation>
 <translation id="790040513076446191">Keisti privatumo nustatymus</translation>
 <translation id="7901405293566323524">Phone Hub</translation>
+<translation id="7901914889562552258">Patobulinta „Chrome“ naudojamų puslapių metrika</translation>
 <translation id="7903345046358933331">Puslapis neatsako. Galite palaukti, kol atsakys, arba uždaryti.</translation>
 <translation id="7903742244674067440">Turite pateiktų sertifikatų, identifikuojančių šias sertifikatą išdavusias institucijas</translation>
 <translation id="7903859912536385558">stabilus (patikimi bandytojai)</translation>
@@ -6893,6 +6903,7 @@
 <translation id="8392364544846746346">Klausti, kai svetainė nori redaguoti įrenginyje esančius failus ar aplankus</translation>
 <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> skirtų parinkčių meniu</translation>
 <translation id="8393511274964623038">Stabdyti papildinį</translation>
+<translation id="839363317075970734">Išsami „Bluetooth“ įrenginio informacija</translation>
 <translation id="8393700583063109961">Siųsti pranešimą</translation>
 <translation id="8397825320644530257">Atsieti susietą telefoną</translation>
 <translation id="8398877366907290961">Vis tiek tęsti</translation>
@@ -7143,6 +7154,7 @@
 <translation id="8681614230122836773">„Chrome“ kompiuteryje rado žalingos programinės įrangos</translation>
 <translation id="8682730193597992579">„<ph name="PRINTER_NAME" />“ prijungtas ir parengtas naudoti</translation>
 <translation id="8683081248374354009">Iš naujo nustatyti grupę</translation>
+<translation id="8683526617475118045">Ką gaunate</translation>
 <translation id="8688672835843460752">Galima</translation>
 <translation id="8690129572193755009">Svetainės gali prašyti apdoroti protokolus</translation>
 <translation id="8695139659682234808">Pridėkite tėvų kontrolę baigę sąranką</translation>
@@ -7196,6 +7208,7 @@
 <translation id="8737685506611670901">Atidaryti „<ph name="PROTOCOL" />“ nuorodas vietoje „<ph name="REPLACED_HANDLER_TITLE" />“</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Pasirinkite kalbą, į kurią norite versti puslapį</translation>
+<translation id="8737916108453753541">URL bendrinami su „Google“ siekiant suprasti naršymo elgseną</translation>
 <translation id="8740247629089392745">Galite grąžinti šį „Chromebook“ <ph name="SUPERVISED_USER_NAME" />. Nustatymo procesas beveik baigtas, tada galėsite naršyti.</translation>
 <translation id="8741944563400125534">Prieigos jungikliu nustatymo vadovas</translation>
 <translation id="8742998548129056176">Tai yra bendroji informacija apie įrenginį ir jo naudojimą (pvz., akumuliatoriaus įkrovos lygis, sistemos ir programų veikla ir klaidos). Duomenys bus naudojami „Android“ sistemai tobulinti. Be to, tam tikra sukaupta informacija bus naudinga „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams, tobulinant programas ir produktus.</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 82938c0..3df8947 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -2653,7 +2653,6 @@
 <translation id="3797900183766075808">&amp;Meklēt “<ph name="SEARCH_TERMS" />” meklētājprogrammā <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versija</translation>
 <translation id="3799128412641261490">Slēdžu piekļuves iestatījumi</translation>
-<translation id="3799903419983101749">Turpiniet darbu vietā, kur to pārtraucāt. Iestatījumos varat noteikt, lai lietotnes tiktu automātiski atjaunotas.</translation>
 <translation id="3800806661949714323">Rādīt visu (ieteicams)</translation>
 <translation id="380329542618494757">Vārds, uzvārds</translation>
 <translation id="3803345858388753269">Video kvalitāte</translation>
@@ -4121,7 +4120,6 @@
 <translation id="5430931332414098647">Tūlītēja piesaiste</translation>
 <translation id="5431318178759467895">Krāsās</translation>
 <translation id="543338862236136125">Rediģēt paroli</translation>
-<translation id="5433791271511851494">Kopīgošanas opcijas pārvalda jūsu organizācija.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA šifrējums</translation>
 <translation id="5435779377906857208">Vienmēr atļaut vietnei <ph name="HOST" /> piekļūt jūsu atrašanās vietas datiem</translation>
 <translation id="5436492226391861498">Gaida starpniekservera tuneli...</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index e6f1bc2..a93000859 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -2667,7 +2667,6 @@
 <translation id="3797900183766075808">&amp;Пребарај „<ph name="SEARCH_TERMS" />“ на <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Верзија</translation>
 <translation id="3799128412641261490">Поставки за „Пристап со прекинувачи“</translation>
-<translation id="3799903419983101749">Продолжете таму каде што застанавте. Може да поставите апликациите да се враќаат автоматски во „Поставки“.</translation>
 <translation id="3800806661949714323">Прикажи ги сите (се препорачува)</translation>
 <translation id="380329542618494757">Име</translation>
 <translation id="3803345858388753269">Квалитет на видеото</translation>
@@ -4136,7 +4135,6 @@
 <translation id="5430931332414098647">Инстант врзување</translation>
 <translation id="5431318178759467895">Боја</translation>
 <translation id="543338862236136125">Измени ја лозинката</translation>
-<translation id="5433791271511851494">Вашата организација управува со опциите за споделување.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA шифрирање</translation>
 <translation id="5435779377906857208">Секогаш дозволувај <ph name="HOST" /> да пристапува до локацијата</translation>
 <translation id="5436492226391861498">Се чека прокси тунел…</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 5d796a5..d4d6766 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -2650,7 +2650,6 @@
 <translation id="3797900183766075808">&amp;'<ph name="SEARCH_TERMS" />' എന്നതിനായി <ph name="SEARCH_ENGINE" />-ൽ തിരയുക</translation>
 <translation id="3798449238516105146">പതിപ്പ്</translation>
 <translation id="3799128412641261490">ആക്‌സസ് മാറുക ക്രമീകരണം</translation>
-<translation id="3799903419983101749">നിങ്ങൾ നിർത്തിയിടത്ത് നിന്ന് തുടരുക. നിങ്ങൾക്ക് ക്രമീകരണത്തിൽ ആപ്പുകൾ സ്വയമേവ പുനഃസ്ഥാപിക്കാൻ സജ്ജീകരിക്കാം.</translation>
 <translation id="3800806661949714323">എല്ലാം കാണിക്കുക (ശുപാർശ ചെയ്‌തിരിക്കുന്നു)</translation>
 <translation id="380329542618494757">പേര്</translation>
 <translation id="3803345858388753269">വീഡിയോ നിലവാരം</translation>
@@ -4117,7 +4116,6 @@
 <translation id="5430931332414098647">തൽക്ഷണ ടെതറിംഗ്</translation>
 <translation id="5431318178759467895">വര്‍ണ്ണം</translation>
 <translation id="543338862236136125">പാസ്‌വേഡ് എഡിറ്റ് ചെയ്യുക</translation>
-<translation id="5433791271511851494">പങ്കിടുന്നതിനുള്ള ഓപ്ഷനുകൾ മാനേജ് ചെയ്യുന്നത് നിങ്ങളുടെ സ്ഥാപനമാണ്.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA എന്‍‌ക്രിപ്‌ഷന്‍‌</translation>
 <translation id="5435779377906857208">നിങ്ങളുടെ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാൻ <ph name="HOST" /> -നെ എല്ലായ്‌പ്പോഴും അനുവദിക്കുക</translation>
 <translation id="5436492226391861498">പ്രോക്സി ടണലിനായി കാത്തിരിക്കുന്നു...</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index b3180bc9..29e8993 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -446,6 +446,7 @@
 <translation id="1476088332184200792">Төхөөрөмж рүүгээ хуулах</translation>
 <translation id="1476607407192946488">&amp;Хэлний Тохиргоо</translation>
 <translation id="1477446329585670721"><ph name="DOMAIN" /> таныг ухаалаг картаа оруулсан хэвээр байхыг шаардана.</translation>
+<translation id="1477654881618305065">Танай байгууллага энэ контентыг хуваалцахыг зөвшөөрдөггүй. Хэрэв танд тусламж хэрэгтэй бол администратортайгаа холбогдоно уу.</translation>
 <translation id="1478340334823509079">Дэлгэрэнгүй мэдээлэл: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">Суулгалтыг идэвхжүүлээгүй байна</translation>
 <translation id="1480571698637441426">Та асуулт асуух үедээ тохирсон хариу авахын тулд Туслахдаа таны дэлгэц дээрх зүйлийн дэлгэцийн агшинд хандахыг зөвшөөрнө үү. Үүнд мөн тоглуулж буй дуу эсвэл видеоны талаарх мэдээлэл багтаж магадгүй.</translation>
@@ -617,6 +618,7 @@
 <translation id="1643921258693943800">Ойролцоо хуваалцах онцлогийг ашиглахын тулд Bluetooth болон Wi-Fi-г асаана уу</translation>
 <translation id="1644574205037202324">Түүх</translation>
 <translation id="1645516838734033527"><ph name="DEVICE_TYPE" />-г аюулгүй байлгахын тулд Smart Lock таны утсанд дэлгэцийн түгжээг шаардаж байна.</translation>
+<translation id="1646793251510634025">Хайлт болон үзэлтийн оновчлолын тохиргоог шалгана уу</translation>
 <translation id="1646982517418478057">Энэ сертификатыг шифрлэхийн тулд нууц үг оруулна уу</translation>
 <translation id="1648528859488547844">Байршлыг тогтоохын тулд Wi-Fi эсвэл мобайл сүлжээ ашиглах</translation>
 <translation id="164936512206786300">Bluetooth төхөөрөмжийг үл хослуулах</translation>
@@ -1472,6 +1474,7 @@
 <translation id="2514326558286966059">Хурууны хээгээрээ түгжээг илүү хурдан тайлаарай</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Өөр нэг сэлгүүр оноох</translation>
+<translation id="251722524540674480">Хэрэглэгчийн нэрээ баталгаажуулна уу</translation>
 <translation id="2517472476991765520">Шалгах</translation>
 <translation id="2518024842978892609">Өөрийн хэрэглэгчийн гэрчилгээг ашиглах</translation>
 <translation id="2519517390894391510">Гэрчилгээний профайлын нэр</translation>
@@ -2176,6 +2179,7 @@
 <translation id="3288047731229977326">Хөгжүүлэгч горим дээр ачаалж буй өргөтгөл нь таны компьютерийг гэмтээж болзошгүй байна. Хэрэв та хөгжүүлэгч биш бол аюулгүй байдлаа хангах үүднээс хөгжүүлэгч горим дээр ачаалж буй өргөтгөлийг идэвхгүй болгоно уу.</translation>
 <translation id="3289668031376215426">Автоматаар томруулах</translation>
 <translation id="3289856944988573801">Шинэчлэлтийг шалгахын тулд Ethernet эсвэл Wi-Fi-аа ашиглана уу.</translation>
+<translation id="3291436823898732747">Сайжруулсан үзэлт: Жишээлбэл, таныг бичиж эхлэхээс өмнө Omnibox-д зөвлөмж харуулна</translation>
 <translation id="3293644607209440645">Энэ хуудсыг илгээх</translation>
 <translation id="32939749466444286">Linux контейнер эхэлсэнгүй. Дахин оролдоно уу.</translation>
 <translation id="3294437725009624529">Зочин</translation>
@@ -2662,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;“<ph name="SEARCH_TERMS" />”-д зориулсан <ph name="SEARCH_ENGINE" />-ыг хайх</translation>
 <translation id="3798449238516105146">Хувилбар</translation>
 <translation id="3799128412641261490">Сэлгүүрийн тохиргоо</translation>
-<translation id="3799903419983101749">Орхисон газраасаа үргэлжлүүлнэ үү. Та Тохиргоо хэсэгт аппуудыг автоматаар сэргээхээр тохируулах боломжтой.</translation>
 <translation id="3800806661949714323">Бүгдийг харуулах (санал болгосон)</translation>
 <translation id="380329542618494757">Нэр</translation>
 <translation id="3803345858388753269">Видеоны чанар</translation>
@@ -4130,7 +4133,6 @@
 <translation id="5430931332414098647">Шуурхай модем болгох</translation>
 <translation id="5431318178759467895">Өнгө</translation>
 <translation id="543338862236136125">Нууц үг засах</translation>
-<translation id="5433791271511851494">Хуваалцах сонголтыг танай байгууллагаас удирддаг.</translation>
 <translation id="5434065355175441495">PKCS # 1 RSA шифрлэлт</translation>
 <translation id="5435779377906857208">Байршилд тань хандахыг <ph name="HOST" />-д үргэлж зөвшөөрөх</translation>
 <translation id="5436492226391861498">Прокси туннелыг хүлээж байна...</translation>
@@ -4212,6 +4214,7 @@
 <translation id="5505307013568720083">Бэх дууссан</translation>
 <translation id="5505794066310932198">Тушаагчийг асаах/унтраах</translation>
 <translation id="5507756662695126555">Үл цуцлах</translation>
+<translation id="5507795078844206688">Таны зочилсон хуудаснуудын URL. Ж.нь https://www.google.com</translation>
 <translation id="5509693895992845810">... байдлаар хадгалах</translation>
 <translation id="5509914365760201064">Гаргагч: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Google-с зургийн тайлбар авах</translation>
@@ -4529,6 +4532,7 @@
 <translation id="5869522115854928033">Хадгалагдсан нууц үг</translation>
 <translation id="5870086504539785141">Нэвтрэх боломжтой цэсийг хаах</translation>
 <translation id="5870155679953074650">Hard Faults</translation>
+<translation id="5875534259258494936">Дэлгэц хуваалцахыг зогсоосон</translation>
 <translation id="5876576639916258720">Ажиллуулж байна...</translation>
 <translation id="5876851302954717356">Шинэ табыг баруун тийш нь</translation>
 <translation id="5877064549588274448">Суваг өөрчлөгдсөн. Өөрчлөлтийг хадгалахын тулд төхөөрөмжийг дахин унтрааж асаана уу.</translation>
@@ -5387,6 +5391,7 @@
 <translation id="6812349420832218321"><ph name="PRODUCT_NAME" /> нь үндэс хэлбэрээр ажиллаж чадахгүй.</translation>
 <translation id="6812841287760418429">Өөрчлөлтийг хадгал</translation>
 <translation id="6813907279658683733">Бүтэн дэлгэц</translation>
+<translation id="6814033694018386318">Таны Google-тэй хуваалцдаг зүйл</translation>
 <translation id="6817174620439930047">Сайт MIDI төхөөрөмжид хандахын тулд системийн тусгай мессежийг ашиглахыг хүссэн тохиолдолд асуух (санал болгосон)</translation>
 <translation id="6818198425579322765">Хуудсыг орчуулах хэл</translation>
 <translation id="6818802132960437751">Суурилуулсан вирусний хамгаалалт</translation>
@@ -5882,6 +5887,7 @@
 <translation id="7374376573160927383">USB төхөөрөмжүүдийг удирдах</translation>
 <translation id="7374461526650987610">Протокол удирдагч</translation>
 <translation id="7375235221357833624">{0,plural, =1{Төхөөрөмжийг нэг цагийн дотор шинэчилнэ үү}other{Төхөөрөмжийг # цагийн дотор шинэчилнэ үү}}</translation>
+<translation id="7376543451826039186">Илүү хурдан үзэлт: Жишээлбэл, одоогийн хуудсанд тулгуурлан тодорхой контентыг дэлгэрүүлэн идэвхтэй ачаална</translation>
 <translation id="7376553024552204454">Хулганы курсорыг хөдлөх явцад нь тодруулна уу</translation>
 <translation id="737728204345822099">Таны энэ сайтад зочилсон тухай бүртгэлийг таны аюулгүй байдлын түлхүүрт хадгалж болзошгүй.</translation>
 <translation id="7377451353532943397">Мэдрэгчийн хандалтыг үргэлжлүүлэн хориглох</translation>
@@ -5939,6 +5945,7 @@
 <translation id="7427798576651127129"><ph name="DEVICE_NAME" />-c дуудлага хийх</translation>
 <translation id="7431719494109538750">Ямар ч HID төхөөрөмж олдсонгүй</translation>
 <translation id="7431991332293347422">Таны хайлтын түүх Хайлт болон бусад зүйлийг хувийн болгоход хэрхэн ашигладгийг хянах</translation>
+<translation id="7432200167665670017">Танай админ "<ph name="EXTENSION_NAME" />"-г блоклосон - Аппын ID <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">Өөрийн <ph name="DEVICE_TYPE" />-г үргэлжлүүлэн ашиглахын тулд ухаалаг карт оруулна уу</translation>
 <translation id="7433957986129316853">Үүнийг хадгалах</translation>
 <translation id="7434509671034404296">Хөгжүүлэгч</translation>
@@ -5968,6 +5975,7 @@
 <translation id="7460045493116006516">Таны суулгасан одоогийн загвар</translation>
 <translation id="7461924472993315131">Pin</translation>
 <translation id="746216226901520237">Дараагийн удаа таны утас таны <ph name="DEVICE_TYPE" />-н түгжээг тайлна. Та Smart Lock-г Тохиргоонд унтрааж болно.</translation>
+<translation id="7464637891177137294">Үүнийг <ph name="ACCOUNT" /> Google Бүртгэлдээ хадгална уу</translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{нээлттэй # таб, tab мессежийг асаах/унтраахын тулд дарна уу}other{нээлттэй # таб, tab мессежийг асаах/унтраахын тулд дарна уу}}</translation>
 <translation id="7465635034594602553">Алдаа гарлаа. Хэдэн минут хүлээгээд <ph name="APP_NAME" />-г дахин ажиллуулна уу.</translation>
 <translation id="7465778193084373987">Нэтскейп-ийн Гэрчилгээг Хүчингүй болгох холбоос</translation>
@@ -6031,6 +6039,7 @@
 <translation id="7525625923260515951">Сонгосон текстийг сонсох</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{Өөр 1}other{Бусад {NUM_DOWNLOADS}}}</translation>
 <translation id="7526989658317409655">Oрлуулагч</translation>
+<translation id="7527758104894292229">Үүнийг <ph name="ACCOUNT" /> Google Бүртгэлдээ шинэчилнэ үү</translation>
 <translation id="7529411698175791732">Интернет холболтоо шалгана уу. Асуудал үргэлжилсээр байвал гараад, дахин нэвтэрнэ үү.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Зочны цонхыг хаах}other{Зочны цонхыг хаах}}</translation>
 <translation id="7530016656428373557">Ватт хэмжигдэхүүнээр цэнэггүй болгох</translation>
@@ -6417,6 +6426,7 @@
 <translation id="7898725031477653577">Үргэлж хөрвүүлэх</translation>
 <translation id="790040513076446191">Нууцлалтай холбоотой тохиргоог нарийн тодорхойлох</translation>
 <translation id="7901405293566323524">Утасны Hub</translation>
+<translation id="7901914889562552258">Хуудасны хэмжигдэхүүнийг ашиглан сайжруулсан Chrome</translation>
 <translation id="7903345046358933331">Энэ хуудас хариу мэдэгдэхгүй байна. Та энэ хуудсыг хариу мэдэгдтэл хүлээх, эсвэл хаах боломжтой.</translation>
 <translation id="7903742244674067440">Танд эдгээр сертификатын эрхийг тодорхойлох файлын сертификат байна</translation>
 <translation id="7903859912536385558">тогтвортой (итгэлтэй туршигч)</translation>
@@ -6881,6 +6891,7 @@
 <translation id="8392364544846746346">Сайт таны төхөөрөмжийн файл эсвэл фолдерыг засах хүсэлтэй үед асуух</translation>
 <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" />-ын сонголтын цэс</translation>
 <translation id="8393511274964623038">Нэмэлт өргөтгөлийг зогсоох</translation>
+<translation id="839363317075970734">Bluetooth төхөөрөмжийн дэлгэрэнгүй</translation>
 <translation id="8393700583063109961">Мессеж илгээх</translation>
 <translation id="8397825320644530257">Холбогдсон утсыг салгах</translation>
 <translation id="8398877366907290961">Ямарч байсан үргэлжлүүлье</translation>
@@ -7131,6 +7142,7 @@
 <translation id="8681614230122836773">Chrome таны компьютер дээрээс аюултай программ хангамж оллоо</translation>
 <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> хэдийн холбогдсон, бэлэн байна</translation>
 <translation id="8683081248374354009">Бүлгийг шинэчлэх</translation>
+<translation id="8683526617475118045">Таны эдлэх үр өгөөж</translation>
 <translation id="8688672835843460752">Боломжтой</translation>
 <translation id="8690129572193755009">Сайтууд протокол зохицуулахыг хүсэх боломжтой</translation>
 <translation id="8695139659682234808">Тохируулгын дараа эцэг эхийн хяналтыг нэмэх</translation>
@@ -7184,6 +7196,7 @@
 <translation id="8737685506611670901"><ph name="PROTOCOL" /> холбоосуудыг <ph name="REPLACED_HANDLER_TITLE" />-ний оронд нээх</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Хуудсыг орчуулах хэлээ сонгоно уу</translation>
+<translation id="8737916108453753541">URL-уудыг үзэлтийн зан байдлыг ойлгохын тулд Google-тэй хуваалцдаг</translation>
 <translation id="8740247629089392745">Та энэ Chromebook-г <ph name="SUPERVISED_USER_NAME" />-д өгч болно. Тохируулга бараг дуусаж, одоо судлах цаг боллоо.</translation>
 <translation id="8741944563400125534">Сэлгүүрийн тохируулгын хөтөч</translation>
 <translation id="8742998548129056176">Энэ нь таны төхөөрөмжийн болон та түүнийг хэрхэн ашигладаг тухай (батарейн түвшин, систем болон аппын үйл ажиллагаа, алдаа зэрэг) ерөнхий мэдээлэл юм. Энэ өгөгдлийг Android-г сайжруулах зорилгоор ашиглах бөгөөд хуримтлуулсан зарим мэдээлэл нь Google-н аппууд болон Android хөгжүүлэгч зэрэг түншүүдэд апп болон бүтээгдэхүүнээ сайжруулахад нь мөн тусална.</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index c30a4e6..16a226d 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -2665,7 +2665,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” साठी <ph name="SEARCH_ENGINE" /> &amp;शोधा</translation>
 <translation id="3798449238516105146">आवृत्ती</translation>
 <translation id="3799128412641261490">स्विच अ‍ॅक्सेस सेटिंग्ज</translation>
-<translation id="3799903419983101749">तुम्ही जेथे सोडले होते तेथून पुढे सुरू ठेवा. तुम्ही सेटिंग्ज मध्ये अ‍ॅप्स आपोआप रिस्टोअर करणे सेट करू शकता.</translation>
 <translation id="3800806661949714323">सर्व दर्शवा (शिफारस केलेले)</translation>
 <translation id="380329542618494757">नाव</translation>
 <translation id="3803345858388753269">व्हिडिओची गुणवत्ता</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 2bbe031d..67dd5249 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;Cari “<ph name="SEARCH_TERMS" />” di <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versi</translation>
 <translation id="3799128412641261490">Tetapan akses suis</translation>
-<translation id="3799903419983101749">Sambung semula dari tempat anda berhenti. Anda boleh menetapkan agar apl dipulihkan secara automatik dalam Tetapan.</translation>
 <translation id="3800806661949714323">Tunjukkan semua (disyorkan)</translation>
 <translation id="380329542618494757">Nama</translation>
 <translation id="3803345858388753269">Kualiti Video</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">Penambatan Segera</translation>
 <translation id="5431318178759467895">Warna</translation>
 <translation id="543338862236136125">Edit kata laluan</translation>
-<translation id="5433791271511851494">Pilihan perkongsian diurus oleh organisasi anda.</translation>
 <translation id="5434065355175441495">PKCS #1 Penyulitan RSA</translation>
 <translation id="5435779377906857208">Sentiasa membenarkan <ph name="HOST" /> untuk mengakses lokasi anda</translation>
 <translation id="5436492226391861498">Menunggu terowong proksi...</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 17971de..59d5278 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -2668,7 +2668,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />”အတွက် <ph name="SEARCH_ENGINE" /> ကို ရှာဖွေပါ</translation>
 <translation id="3798449238516105146">ဗားရှင်း</translation>
 <translation id="3799128412641261490">ခလုတ်သုံးခြင်း ဆက်တင်များ</translation>
-<translation id="3799903419983101749">ထားခဲ့သောနေရာမှ ရှေ့ဆက်နိုင်သည်။ ဆက်တင်များတွင် အလိုအလျောက်ပြန်ယူရန် အက်ပ်များကို သတ်မှတ်နိုင်သည်။</translation>
 <translation id="3800806661949714323">အားလုံးပြရန် (အကြံပြုထားသည်)</translation>
 <translation id="380329542618494757">အမည်</translation>
 <translation id="3803345858388753269">ဗီဒီယို အရည်အသွေး</translation>
@@ -4136,7 +4135,6 @@
 <translation id="5430931332414098647">အမြန်ချိတ်ဆက်မျှဝေခြင်း</translation>
 <translation id="5431318178759467895">အရောင်</translation>
 <translation id="543338862236136125">စကားဝှက်ကို တည်းဖြတ်ခြင်း</translation>
-<translation id="5433791271511851494">မျှဝေရန်နည်းလမ်းများကို သင်၏အဖွဲ့အစည်းက စီမံခန့်ခွဲထားသည်။</translation>
 <translation id="5434065355175441495">PKCS #1 RSA လျှို့ဝှက်ကုဒ်သွင်းမှု</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> ကို သင့်တည်နေရာ အမြဲသုံးခွင့်ပြုရန်</translation>
 <translation id="5436492226391861498">မရောက်စီလိုင်း အားစောင့်နေ...</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 182f919..3c263eb 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -2649,7 +2649,6 @@
 <translation id="3797900183766075808">'<ph name="SEARCH_TERMS" />' का लागि <ph name="SEARCH_ENGINE" /> खोज्नुहोस्</translation>
 <translation id="3798449238516105146">संस्करण</translation>
 <translation id="3799128412641261490">स्विचमार्फत पहुँच राख्ने सुविधासम्बन्धी सेटिङ</translation>
-<translation id="3799903419983101749">आफूले छाडेकै ठाउँबाट जारी राख्नुहोस्। तपाईं सेटिङमा गएर एपहरू स्वतः रिस्टोर हुने बनाउन सक्नुहुन्छ।</translation>
 <translation id="3800806661949714323">सबै देखाउनुहोस् (सिफारिस गरिएको)</translation>
 <translation id="380329542618494757">नाम</translation>
 <translation id="3803345858388753269">भिडियोको गुणस्तर</translation>
@@ -4116,7 +4115,6 @@
 <translation id="5430931332414098647">तात्कालिक टेदरिङ</translation>
 <translation id="5431318178759467895">रङ्ग</translation>
 <translation id="543338862236136125">पासवर्ड सम्पादन गर्नुहोस्</translation>
-<translation id="5433791271511851494">तपाईंको सङ्गठनले सेयर गर्ने विकल्पहरू व्यवस्थापन गर्छ।</translation>
 <translation id="5434065355175441495">PKCS #1 RSA गुप्तलेखन</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> लाई सधैँ आफ्नो स्थानसम्बन्धी जानकारी प्रयोग गर्न दिनुहोस्</translation>
 <translation id="5436492226391861498">प्रोक्सी टनलको लागि प्रतिक्षा गर्दै...</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 30ab66d4..ab6685ca 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -443,6 +443,7 @@
 <translation id="1476088332184200792">Kopiëren naar je apparaat</translation>
 <translation id="1476607407192946488">&amp;Taalinstellingen</translation>
 <translation id="1477446329585670721"><ph name="DOMAIN" /> vereist dat je smartcard geplaatst blijft.</translation>
+<translation id="1477654881618305065">Je organisatie staat niet toe dat je deze content deelt. Als je hulp nodig hebt, neem je contact op met de beheerder.</translation>
 <translation id="1478340334823509079">Details: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">Installatie is niet mogelijk</translation>
 <translation id="1480571698637441426">Laat de Assistent een screenshot van je scherm zien om afgestemde reacties te krijgen als je vragen stelt. Hieronder kan ook informatie vallen over muzieknummers of video's die worden afgespeeld.</translation>
@@ -618,6 +619,7 @@
 <translation id="1643921258693943800">Als je Dichtbij delen wilt gebruiken, zet je bluetooth en wifi aan</translation>
 <translation id="1644574205037202324">Geschiedenis</translation>
 <translation id="1645516838734033527">Smart Lock vereist een schermvergrendeling op je telefoon om je <ph name="DEVICE_TYPE" /> te beveiligen.</translation>
+<translation id="1646793251510634025">Bekijk de instellingen om zoeken en browsen te optimaliseren</translation>
 <translation id="1646982517418478057">Geef een wachtwoord op om dit certificaat te versleutelen</translation>
 <translation id="1648528859488547844">Wifi of mobiele netwerken gebruiken om de locatie te bepalen</translation>
 <translation id="164936512206786300">Bluetooth-apparaat ontkoppelen</translation>
@@ -1461,6 +1463,7 @@
 <translation id="2514326558286966059">Sneller ontgrendelen met je vingerafdruk</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Nog een schakelaar toewijzen</translation>
+<translation id="251722524540674480">Bevestig je gebruikersnaam</translation>
 <translation id="2517472476991765520">Scannen</translation>
 <translation id="2518024842978892609">Je clientcertificaten gebruiken</translation>
 <translation id="2519517390894391510">Naam van certificaatprofiel</translation>
@@ -2164,6 +2167,7 @@
 <translation id="3288047731229977326">Extensies die worden uitgevoerd in de ontwikkelaarsmodus kunnen je computer beschadigen. Als je geen ontwikkelaar bent, doe je er goed aan deze extensies uit te zetten zodat je beveiligd blijft.</translation>
 <translation id="3289668031376215426">Automatisch hoofdlettergebruik</translation>
 <translation id="3289856944988573801">Gebruik ethernet of wifi om op updates te controleren.</translation>
+<translation id="3291436823898732747">Browsen is verbeterd: je krijgt bijvoorbeeld suggesties in de omnibox voordat je begint met typen</translation>
 <translation id="3293644607209440645">Deze pagina verzenden</translation>
 <translation id="32939749466444286">De Linux-container is niet gestart. Probeer het opnieuw.</translation>
 <translation id="3294437725009624529">Gast</translation>
@@ -2650,7 +2654,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> door&amp;zoeken op '<ph name="SEARCH_TERMS" />'</translation>
 <translation id="3798449238516105146">Versie</translation>
 <translation id="3799128412641261490">Instellingen voor 'Toegang via schakelaar'</translation>
-<translation id="3799903419983101749">Ga door waar je gebleven was. Je kunt in Instellingen instellen dat apps automatisch worden hersteld.</translation>
 <translation id="3800806661949714323">Alles tonen (aanbevolen)</translation>
 <translation id="380329542618494757">Naam</translation>
 <translation id="3803345858388753269">Videokwaliteit</translation>
@@ -4116,7 +4119,6 @@
 <translation id="5430931332414098647">Instant-tethering</translation>
 <translation id="5431318178759467895">Kleur</translation>
 <translation id="543338862236136125">Wachtwoord bewerken</translation>
-<translation id="5433791271511851494">Opties voor delen worden beheerd door je organisatie.</translation>
 <translation id="5434065355175441495">PKCS nr. 1 met RSA-encryptie</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> altijd toegang tot je locatie geven</translation>
 <translation id="5436492226391861498">Wachten op proxytunnel...</translation>
@@ -4198,6 +4200,7 @@
 <translation id="5505307013568720083">Inkt is op</translation>
 <translation id="5505794066310932198">Commander aan-/uitzetten</translation>
 <translation id="5507756662695126555">Onweerlegbaarheid</translation>
+<translation id="5507795078844206688">URL van de pagina's die je bezoekt, bijv. https://www.google.com</translation>
 <translation id="5509693895992845810">Opslaan &amp;als...</translation>
 <translation id="5509914365760201064">Uitgever: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Afbeeldingsbeschrijvingen ophalen van Google</translation>
@@ -4514,6 +4517,7 @@
 <translation id="5869522115854928033">Opgeslagen wachtwoorden</translation>
 <translation id="5870086504539785141">Toegankelijkheidsmenu sluiten</translation>
 <translation id="5870155679953074650">Harde fouten</translation>
+<translation id="5875534259258494936">Scherm delen is beëindigd</translation>
 <translation id="5876576639916258720">Uitvoeren…</translation>
 <translation id="5876851302954717356">Nieuw tabblad aan de rechterkant</translation>
 <translation id="5877064549588274448">Kanaal gewijzigd. Start het apparaat opnieuw op om de wijzigingen door te voeren.</translation>
@@ -5373,6 +5377,7 @@
 <translation id="6812349420832218321"><ph name="PRODUCT_NAME" /> kan niet worden uitgevoerd als root.</translation>
 <translation id="6812841287760418429">Wijzigingen behouden</translation>
 <translation id="6813907279658683733">Volledig scherm</translation>
+<translation id="6814033694018386318">Wat je deelt met Google</translation>
 <translation id="6817174620439930047">Vragen als een site berichten exclusief voor het systeem wil gebruiken om toegang te krijgen tot MIDI-apparaten (aanbevolen)</translation>
 <translation id="6818198425579322765">Paginataal om te vertalen</translation>
 <translation id="6818802132960437751">Ingebouwde virusbeveiliging</translation>
@@ -5868,6 +5873,7 @@
 <translation id="7374376573160927383">USB-apparaten beheren</translation>
 <translation id="7374461526650987610">Protocolhandlers</translation>
 <translation id="7375235221357833624">{0,plural, =1{Apparaat binnen een uur updaten}other{Apparaat binnen # uur updaten}}</translation>
+<translation id="7376543451826039186">Browsen kan sneller: je kunt bijvoorbeeld proactief specifieke nieuwe content laden op basis van de huidige pagina</translation>
 <translation id="7376553024552204454">De muisaanwijzer markeren terwijl deze beweegt</translation>
 <translation id="737728204345822099">Er kan een record van je bezoek aan deze site worden geregistreerd in je beveiligingssleutel.</translation>
 <translation id="7377451353532943397">Toegang tot sensoren blijven blokkeren</translation>
@@ -5925,6 +5931,7 @@
 <translation id="7427798576651127129">Gesprek van <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">Geen HID-apparaten gevonden</translation>
 <translation id="7431991332293347422">Beheren hoe je browsegeschiedenis wordt gebruikt om Google Zoeken en meer te personaliseren</translation>
+<translation id="7432200167665670017">Je beheerder heeft <ph name="EXTENSION_NAME" /> geblokkeerd (app-ID <ph name="EXTENSION_ID" />)</translation>
 <translation id="7433708794692032816">Plaats een smartcard om je <ph name="DEVICE_TYPE" /> te blijven gebruiken</translation>
 <translation id="7433957986129316853">Behouden</translation>
 <translation id="7434509671034404296">Ontwikkelaar</translation>
@@ -5954,6 +5961,7 @@
 <translation id="7460045493116006516">Huidig thema dat je hebt geïnstalleerd</translation>
 <translation id="7461924472993315131">Vastzetten</translation>
 <translation id="746216226901520237">De volgende keer wordt <ph name="DEVICE_TYPE" /> ontgrendeld met je telefoon. Je kunt Smart Lock uitzetten in Instellingen.</translation>
+<translation id="7464637891177137294">Sla het op in je Google-account, <ph name="ACCOUNT" /></translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# geopend tabblad, druk om de tabbladstrook aan of uit te zetten}other{# geopende tabbladen, druk om de tabbladstrook aan of uit te zetten}}</translation>
 <translation id="7465635034594602553">Er is iets misgegaan. Wacht enkele minuten en voer <ph name="APP_NAME" /> opnieuw uit.</translation>
 <translation id="7465778193084373987">URL voor intrekken van Netscape-certificaat</translation>
@@ -6017,6 +6025,7 @@
 <translation id="7525625923260515951">Lees geselecteerde tekst voor</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{Nog 1}other{Nog {NUM_DOWNLOADS}}}</translation>
 <translation id="7526989658317409655">Tijdelijke aanduiding</translation>
+<translation id="7527758104894292229">Update dit in je Google-account, <ph name="ACCOUNT" /></translation>
 <translation id="7529411698175791732">Controleer de internetverbinding. Als het probleem blijft optreden, log je uit en weer in.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Gastvenster sluiten}other{Gastvenster sluiten}}</translation>
 <translation id="7530016656428373557">Ontlading in Watt</translation>
@@ -6402,6 +6411,7 @@
 <translation id="7898725031477653577">Altijd vertalen</translation>
 <translation id="790040513076446191">Privacygerelateerde instellingen manipuleren</translation>
 <translation id="7901405293566323524">Phone Hub</translation>
+<translation id="7901914889562552258">Chrome is verbeterd met paginastatistieken</translation>
 <translation id="7903345046358933331">De pagina reageert niet meer. Je kunt wachten tot de pagina reageert of de pagina sluiten.</translation>
 <translation id="7903742244674067440">Je hebt certificaten waarmee deze certificeringsinstanties worden geïdentificeerd</translation>
 <translation id="7903859912536385558">stabiel (betrouwbare tester)</translation>
@@ -6868,6 +6878,7 @@
 <translation id="8392364544846746346">Vragen wanneer een site bestanden of mappen op je apparaat wil bewerken</translation>
 <translation id="8392451568018454956">Optiemenu voor <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8393511274964623038">Plug-in stoppen</translation>
+<translation id="839363317075970734">Details bluetooth-apparaat</translation>
 <translation id="8393700583063109961">Bericht verzenden</translation>
 <translation id="8397825320644530257">Verbonden telefoon loskoppelen</translation>
 <translation id="8398877366907290961">Toch doorgaan</translation>
@@ -7118,6 +7129,7 @@
 <translation id="8681614230122836773">Chrome heeft schadelijke software gevonden op je computer</translation>
 <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> is verbonden en klaar</translation>
 <translation id="8683081248374354009">Groep resetten</translation>
+<translation id="8683526617475118045">Wat je krijgt</translation>
 <translation id="8688672835843460752">Beschikbaar</translation>
 <translation id="8690129572193755009">Sites kunnen vragen of ze protocollen mogen verwerken</translation>
 <translation id="8695139659682234808">Ouderlijk toezicht toevoegen na het instellen</translation>
@@ -7171,6 +7183,7 @@
 <translation id="8737685506611670901">Links voor <ph name="PROTOCOL" /> openen in plaats van <ph name="REPLACED_HANDLER_TITLE" /></translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Kies de taal waarnaar je de pagina wilt vertalen</translation>
+<translation id="8737916108453753541">De URL's worden gedeeld met Google om inzicht te krijgen in je browsegedrag</translation>
 <translation id="8740247629089392745">Je kunt deze Chromebook aan <ph name="SUPERVISED_USER_NAME" /> geven. Het instellen is bijna afgerond. Daarna is het tijd om te verkennen.</translation>
 <translation id="8741944563400125534">Instelgids voor Toegang via schakelaar</translation>
 <translation id="8742998548129056176">Dit is algemene informatie over je apparaat en hoe je het gebruikt (zoals batterijniveau, systeem- en app-activiteit en fouten). De gegevens worden gebruikt om Android te verbeteren voor iedereen. Daarnaast helpen bepaalde verzamelde gegevens Google-apps en -partners, zoals Android-ontwikkelaars, bij de verbetering van hun apps en producten.</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index a346aa6..b4cf558 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -2660,7 +2660,6 @@
 <translation id="3797900183766075808">&amp;Søk etter «<ph name="SEARCH_TERMS" />» på <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versjon</translation>
 <translation id="3799128412641261490">Innstillinger for brytertilgang</translation>
-<translation id="3799903419983101749">Fortsett der du slapp. Du kan velge at apper skal gjenopprettes automatisk, i Innstillinger.</translation>
 <translation id="3800806661949714323">Vis alle (anbefales)</translation>
 <translation id="380329542618494757">Navn</translation>
 <translation id="3803345858388753269">Videokvalitet</translation>
@@ -4126,7 +4125,6 @@
 <translation id="5430931332414098647">Umiddelbar internettdeling</translation>
 <translation id="5431318178759467895">Farge</translation>
 <translation id="543338862236136125">Endre passordet</translation>
-<translation id="5433791271511851494">Alternativer for deling administreres av organisasjonen din.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA-kryptering</translation>
 <translation id="5435779377906857208">La alltid <ph name="HOST" /> ha tilgang til posisjonen din</translation>
 <translation id="5436492226391861498">Venter på mellomtjenertunnel</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 0ec46a2..a19c1f0a 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -2649,7 +2649,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” ପାଇଁ <ph name="SEARCH_ENGINE" /> &amp;ଖୋଜନ୍ତୁ</translation>
 <translation id="3798449238516105146">ସଂସ୍କରଣ</translation>
 <translation id="3799128412641261490">ସ୍ୱିଚ୍ ଆକ୍ସେସ୍ ସେଟିଂସ୍</translation>
-<translation id="3799903419983101749">ଆପଣ ଯେଉଁଠାରେ ଛାଡ଼ିଥିଲେ ସେଠାରୁ ଜାରି ରଖନ୍ତୁ। ଆପଣ ସେଟିଂସରେ ଆପଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ରିଷ୍ଟୋର୍ କରିବା ପାଇଁ ସେଟ୍ କରିପାରିବେ।</translation>
 <translation id="3800806661949714323">ସବୁ ଦେଖାନ୍ତୁ (ସୁପାରିଶ୍ କରାଯାଇଛି)</translation>
 <translation id="380329542618494757">ନାମ</translation>
 <translation id="3803345858388753269">ଭିଡିଓ ଗୁଣବତ୍ତା</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 0d188a10..dd5b424 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;“<ph name="SEARCH_TERMS" />” ਲਈ <ph name="SEARCH_ENGINE" /> ਖੋਜੋ</translation>
 <translation id="3798449238516105146">ਵਰਜਨ:</translation>
 <translation id="3799128412641261490">ਸਵਿੱਚ ਪਹੁੰਚ ਸੈਟਿੰਗਾਂ</translation>
-<translation id="3799903419983101749">ਉੱਥੋਂ ਜਾਰੀ ਰੱਖੋ ਜਿੱਥੇ ਤੁਸੀਂ ਛੱਡਿਆ ਸੀ। ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਐਪਾਂ ਨੂੰ 'ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਮੁੜ-ਬਹਾਲ ਕਰੋ' 'ਤੇ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="3800806661949714323">ਸਭ ਦਿਖਾਓ (ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਗਈ)</translation>
 <translation id="380329542618494757">ਨਾਮ</translation>
 <translation id="3803345858388753269">ਵੀਡੀਓ ਕੁਆਲਿਟੀ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 33dcf51..4972e570 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -445,6 +445,7 @@
 <translation id="1476088332184200792">Skopiuj na swoje urządzenie</translation>
 <translation id="1476607407192946488">&amp;Ustawienia języka</translation>
 <translation id="1477446329585670721">Domena <ph name="DOMAIN" /> wymaga, by karta inteligentna pozostała w gnieździe.</translation>
+<translation id="1477654881618305065">Twoja organizacja nie pozwala udostępniać tej zawartości. Jeśli potrzebujesz pomocy, skontaktuj się z administratorem.</translation>
 <translation id="1478340334823509079">Szczegóły: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">Instalacja nie została włączona</translation>
 <translation id="1480571698637441426">Aby otrzymywać dostosowane odpowiedzi na swoje pytania, zezwól Asystentowi na dostęp do zrzutu bieżącej zawartości ekranu. Mogą tam znajdować się też informacje o odtwarzanych piosenkach i filmach.</translation>
@@ -620,6 +621,7 @@
 <translation id="1643921258693943800">Aby używać Udostępniania w pobliżu, włącz Bluetooth i Wi-Fi</translation>
 <translation id="1644574205037202324">Historia</translation>
 <translation id="1645516838734033527">Aby można było chronić urządzenie <ph name="DEVICE_TYPE" /> przy użyciu funkcji Smart Lock, telefon musi mieć ustawioną blokadę ekranu.</translation>
+<translation id="1646793251510634025">Sprawdź ustawienia pozwalające zoptymalizować wyszukiwanie i przeglądanie</translation>
 <translation id="1646982517418478057">Wpisz hasło, by zaszyfrować ten certyfikat</translation>
 <translation id="1648528859488547844">Do określania lokalizacji używaj Wi-Fi i sieci komórkowych</translation>
 <translation id="164936512206786300">Rozparowywanie urządzenia Bluetooth</translation>
@@ -1459,6 +1461,7 @@
 <translation id="2514326558286966059">Szybsze odblokowywanie odciskiem palca</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Przypisz jeszcze 1 przełącznik</translation>
+<translation id="251722524540674480">Potwierdź swoją nazwę użytkownika</translation>
 <translation id="2517472476991765520">Skanuj</translation>
 <translation id="2518024842978892609">Używanie certyfikatów klienta</translation>
 <translation id="2519517390894391510">Nazwa certyfikowanego profilu</translation>
@@ -2162,6 +2165,7 @@
 <translation id="3288047731229977326">Rozszerzenia działające w trybie dewelopera mogą uszkodzić Twój komputer. Jeśli nie jesteś deweloperem, wyłącz je dla bezpieczeństwa.</translation>
 <translation id="3289668031376215426">Automatyczne wstawianie wielkich liter</translation>
 <translation id="3289856944988573801">Jeśli chcesz sprawdzić aktualizacje, użyj Ethernetu lub Wi-Fi.</translation>
+<translation id="3291436823898732747">Ulepszone przeglądanie: na przykład w omniboksie będą się pojawiać sugestie, zanim zaczniesz pisać</translation>
 <translation id="3293644607209440645">Wyślij tę stronę</translation>
 <translation id="32939749466444286">Kontener Linuksa nie uruchomił się. Spróbuj ponownie.</translation>
 <translation id="3294437725009624529">Gość</translation>
@@ -2648,7 +2652,6 @@
 <translation id="3797900183766075808">Wy&amp;szukaj „<ph name="SEARCH_TERMS" />” w <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Wersja</translation>
 <translation id="3799128412641261490">Ustawienia funkcji Switch Access</translation>
-<translation id="3799903419983101749">Przywracaj ostatnio otwarte. W Ustawieniach możesz wybrać aplikacje, które mają być przywracane automatycznie.</translation>
 <translation id="3800806661949714323">Pokaż wszystkie (zalecane)</translation>
 <translation id="380329542618494757">Imię i nazwisko</translation>
 <translation id="3803345858388753269">Jakość obrazu</translation>
@@ -4116,7 +4119,6 @@
 <translation id="5430931332414098647">Instant Tethering</translation>
 <translation id="5431318178759467895">Kolor</translation>
 <translation id="543338862236136125">Edytuj hasło</translation>
-<translation id="5433791271511851494">Opcjami udostępniania zarządza Twoja organizacja.</translation>
 <translation id="5434065355175441495">PKCS #1, szyfrowanie RSA</translation>
 <translation id="5435779377906857208">Zawsze zezwalaj stronie <ph name="HOST" /> na dostęp do lokalizacji</translation>
 <translation id="5436492226391861498">Czekam na tunel serwera proxy...</translation>
@@ -4198,6 +4200,7 @@
 <translation id="5505307013568720083">Brak tuszu</translation>
 <translation id="5505794066310932198">Zarządzanie przełączaniem</translation>
 <translation id="5507756662695126555">Niezaprzeczalność</translation>
+<translation id="5507795078844206688">Adresy URL odwiedzanych stron, np. https://www.google.com</translation>
 <translation id="5509693895992845810">Zapisz &amp;jako...</translation>
 <translation id="5509914365760201064">Wystawca: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Pobieraj opisy obrazów z Google</translation>
@@ -4514,6 +4517,7 @@
 <translation id="5869522115854928033">Zapisane hasła</translation>
 <translation id="5870086504539785141">Zamknij menu ułatwień dostępu</translation>
 <translation id="5870155679953074650">Poważne błędy</translation>
+<translation id="5875534259258494936">Udostępnianie ekranu zostało zakończone</translation>
 <translation id="5876576639916258720">Wykonuję…</translation>
 <translation id="5876851302954717356">Nowa karta po prawej</translation>
 <translation id="5877064549588274448">Kanał został zmieniony. Aby zastosować zmiany, uruchom ponownie urządzenie.</translation>
@@ -5373,6 +5377,7 @@
 <translation id="6812349420832218321">Przeglądarki <ph name="PRODUCT_NAME" /> nie możesz uruchamiać jako użytkownik root.</translation>
 <translation id="6812841287760418429">Zachowaj zmiany</translation>
 <translation id="6813907279658683733">Cały ekran</translation>
+<translation id="6814033694018386318">Co udostępniasz Google</translation>
 <translation id="6817174620439930047">Pytaj, gdy strona chce użyć komunikatów systemowych, by uzyskać dostęp do urządzeń MIDI (zalecane)</translation>
 <translation id="6818198425579322765">Język strony do przetłumaczenia</translation>
 <translation id="6818802132960437751">Wbudowana ochrona antywirusowa</translation>
@@ -5868,6 +5873,7 @@
 <translation id="7374376573160927383">Zarządzanie urządzeniami USB</translation>
 <translation id="7374461526650987610">Obsługa protokołów</translation>
 <translation id="7375235221357833624">{0,plural, =1{Aktualizacja urządzenia nastąpi w ciągu godziny}few{Aktualizacja urządzenia nastąpi w ciągu # godzin}many{Aktualizacja urządzenia nastąpi w ciągu # godzin}other{Aktualizacja urządzenia nastąpi w ciągu # godziny}}</translation>
+<translation id="7376543451826039186">Szybsze przeglądanie: na przykład wcześniejsze ładowanie pewnych treści, które możesz wyświetlić w następnej kolejności, na podstawie bieżącej strony</translation>
 <translation id="7376553024552204454">Podświetlaj wskaźnik myszy, gdy się porusza</translation>
 <translation id="737728204345822099">Wizyta na tej stronie może zostać zarejestrowana na Twoim kluczu bezpieczeństwa.</translation>
 <translation id="7377451353532943397">Nadal blokuj dostęp do czujników</translation>
@@ -5925,6 +5931,7 @@
 <translation id="7427798576651127129">Zadzwoń z urządzenia <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">Nie znaleziono urządzeń HID</translation>
 <translation id="7431991332293347422">Zarządzaj personalizacją wyszukiwarki i innych funkcji na podstawie historii przeglądania</translation>
+<translation id="7432200167665670017">Administrator zablokował rozszerzenie „<ph name="EXTENSION_NAME" />” – identyfikator aplikacji <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">Aby nadal używać swojego urządzenia <ph name="DEVICE_TYPE" />, włóż kartę inteligentną</translation>
 <translation id="7433957986129316853">Zachowaj</translation>
 <translation id="7434509671034404296">Deweloper</translation>
@@ -5954,6 +5961,7 @@
 <translation id="7460045493116006516">Zainstalowany motyw</translation>
 <translation id="7461924472993315131">Przypnij</translation>
 <translation id="746216226901520237">Następnym razem Twój telefon odblokuje urządzenie <ph name="DEVICE_TYPE" />. Smart Lock możesz wyłączyć w Ustawieniach.</translation>
+<translation id="7464637891177137294">Zapisz je na swoim koncie Google <ph name="ACCOUNT" /></translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# otwarta karta – naciśnij, by przełączyć pasek kart}few{# otwarte karty – naciśnij, by przełączyć pasek kart}many{# otwartych kart – naciśnij, by przełączyć pasek kart}other{# otwartej karty – naciśnij, by przełączyć pasek kart}}</translation>
 <translation id="7465635034594602553">Coś poszło nie tak. Zaczekaj kilka minut, a potem uruchom <ph name="APP_NAME" /> ponownie.</translation>
 <translation id="7465778193084373987">Adres URL odwołania certyfikatu firmy Netscape</translation>
@@ -6017,6 +6025,7 @@
 <translation id="7525625923260515951">Odczytaj zaznaczony tekst</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{1 więcej}few{{NUM_DOWNLOADS} więcej}many{{NUM_DOWNLOADS} więcej}other{{NUM_DOWNLOADS} więcej}}</translation>
 <translation id="7526989658317409655">Zmienna</translation>
+<translation id="7527758104894292229">Zaktualizuj je na swoim koncie Google <ph name="ACCOUNT" /></translation>
 <translation id="7529411698175791732">Sprawdź połączenie z internetem. Jeśli problem nie ustąpi, wyloguj się i zaloguj ponownie.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Zamknij okno gościa}few{Zamknij okna gościa}many{Zamknij okna gościa}other{Zamknij okna gościa}}</translation>
 <translation id="7530016656428373557">Szybkość rozładowywania w watach</translation>
@@ -6404,6 +6413,7 @@
 <translation id="7898725031477653577">Zawsze tłumacz</translation>
 <translation id="790040513076446191">Manipulować ustawieniami ochrony prywatności</translation>
 <translation id="7901405293566323524">Phone Hub</translation>
+<translation id="7901914889562552258">Lepsze działanie Chrome dzięki danym stron</translation>
 <translation id="7903345046358933331">Ta strona nie odpowiada. Możesz zaczekać, aż zacznie odpowiadać, lub ją zamknąć.</translation>
 <translation id="7903742244674067440">Masz zapisane certyfikaty, które umożliwiają identyfikację tych urzędów certyfikacji</translation>
 <translation id="7903859912536385558">stabilna (zaufany tester)</translation>
@@ -6870,6 +6880,7 @@
 <translation id="8392364544846746346">Pytaj, gdy witryna chce edytować pliki lub foldery na urządzeniu</translation>
 <translation id="8392451568018454956">Menu opcji dla <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8393511274964623038">Zatrzymaj wtyczkę</translation>
+<translation id="839363317075970734">Szczegóły urządzenia Bluetooth</translation>
 <translation id="8393700583063109961">Wyślij wiadomość</translation>
 <translation id="8397825320644530257">Odłącz połączony telefon</translation>
 <translation id="8398877366907290961">Kontynuuj mimo wszystko</translation>
@@ -7120,6 +7131,7 @@
 <translation id="8681614230122836773">Przeglądarka Chrome znalazła na Twoim komputerze szkodliwe oprogramowanie</translation>
 <translation id="8682730193597992579">Drukarka <ph name="PRINTER_NAME" /> jest podłączona i gotowa do pracy</translation>
 <translation id="8683081248374354009">Resetuj grupę</translation>
+<translation id="8683526617475118045">Co zyskujesz</translation>
 <translation id="8688672835843460752">Dostępne</translation>
 <translation id="8690129572193755009">Witryny mogą prosić o zgodę na obsługę protokołów</translation>
 <translation id="8695139659682234808">Dodaj kontrolę rodzicielską po konfiguracji</translation>
@@ -7173,6 +7185,7 @@
 <translation id="8737685506611670901">Otwieranie linków protokołu <ph name="PROTOCOL" /> zamiast modułu <ph name="REPLACED_HANDLER_TITLE" /></translation>
 <translation id="8737709691285775803">Menedżer połączeń</translation>
 <translation id="8737914367566358838">Wybierz język, na który chcesz przetłumaczyć stronę</translation>
+<translation id="8737916108453753541">Na podstawie informacji o adresach URL badamy, jakie treści przeglądają użytkownicy</translation>
 <translation id="8740247629089392745">Możesz przekazać tego Chromebooka użytkownikowi <ph name="SUPERVISED_USER_NAME" />. Prawie wszystko zostało skonfigurowane i można korzystać z urządzenia.</translation>
 <translation id="8741944563400125534">Przewodnik po konfiguracji Switch Access</translation>
 <translation id="8742998548129056176">Są to ogólne informacje o tym urządzeniu i o jego używaniu (takie jak poziom naładowania baterii, aktywność w systemie i aplikacjach oraz błędy). Wykorzystamy je do ulepszania Androida. Niektóre informacje zbiorcze pomogą nam też udoskonalić aplikacje Google lub zostaną wykorzystane przez naszych partnerów, na przykład deweloperów aplikacji na Androida, do tworzenia lepszych aplikacji i produktów.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 1cc80bd..4e0097f5 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -2668,7 +2668,6 @@
 <translation id="3797900183766075808">&amp;Pesquisar “<ph name="SEARCH_TERMS" />” no <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versão</translation>
 <translation id="3799128412641261490">Configurações do acesso com interruptor</translation>
-<translation id="3799903419983101749">Continue exatamente de onde você parou. Nas configurações, é possível definir a restauração automática dos apps.</translation>
 <translation id="3800806661949714323">Mostrar tudo (recomendado)</translation>
 <translation id="380329542618494757">Nome</translation>
 <translation id="3803345858388753269">Qualidade do vídeo</translation>
@@ -4137,7 +4136,6 @@
 <translation id="5430931332414098647">Tethering instantâneo</translation>
 <translation id="5431318178759467895">Colorido</translation>
 <translation id="543338862236136125">Editar senha</translation>
-<translation id="5433791271511851494">As opções de compartilhamento são gerenciadas pela sua organização.</translation>
 <translation id="5434065355175441495">PKCS #1 Criptografia RSA</translation>
 <translation id="5435779377906857208">Sempre permitir que <ph name="HOST" /> acesse sua localização</translation>
 <translation id="5436492226391861498">Esperando pelo túnel de proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index ee98088..f3b4b3f 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -2652,7 +2652,6 @@
 <translation id="3797900183766075808">Pe&amp;squisar no <ph name="SEARCH_ENGINE" /> por "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798449238516105146">Versão</translation>
 <translation id="3799128412641261490">Definições do acesso por comutador</translation>
-<translation id="3799903419983101749">Continue a partir de onde parou. Pode configurar o restauro automático das apps nas Definições.</translation>
 <translation id="3800806661949714323">Mostrar tudo (recomendado)</translation>
 <translation id="380329542618494757">Nome</translation>
 <translation id="3803345858388753269">Qualidade de vídeo</translation>
@@ -4120,7 +4119,6 @@
 <translation id="5430931332414098647">Ligação via telemóvel instantânea</translation>
 <translation id="5431318178759467895">Cor</translation>
 <translation id="543338862236136125">Editar palavra-passe</translation>
-<translation id="5433791271511851494">As opções para partilhar são geridas pela sua entidade.</translation>
 <translation id="5434065355175441495">PKCS #1 Encriptação RSA</translation>
 <translation id="5435779377906857208">Permitir sempre que <ph name="HOST" /> aceda à sua localização</translation>
 <translation id="5436492226391861498">A aguardar pelo túnel do proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 968e7c0..0215a14 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -444,6 +444,7 @@
 <translation id="1476088332184200792">Copiază pe dispozitiv</translation>
 <translation id="1476607407192946488">&amp;Setări de limbă</translation>
 <translation id="1477446329585670721"><ph name="DOMAIN" /> solicită să nu scoți cardul inteligent din dispozitiv.</translation>
+<translation id="1477654881618305065">Organizația ta nu îți permite să trimiți acest conținut. Dacă ai nevoie de ajutor, contactează administratorul.</translation>
 <translation id="1478340334823509079">Detalii: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">Instalarea nu este activată</translation>
 <translation id="1480571698637441426">Pentru a primi răspunsuri personalizate când pui întrebări, permite accesul Asistentului la o captură de ecran cu conținutul afișat pe ecranul tău. Aici pot fi incluse informații despre melodiile sau videoclipurile redate.</translation>
@@ -619,6 +620,7 @@
 <translation id="1643921258693943800">Pentru a folosi Trimiterea în apropiere, activează Bluetooth și Wi-Fi</translation>
 <translation id="1644574205037202324">Istoric</translation>
 <translation id="1645516838734033527">Pentru a proteja dispozitivul <ph name="DEVICE_TYPE" />, Smart Lock necesită o blocare a ecranului pe telefon.</translation>
+<translation id="1646793251510634025">Examinează setările pentru optimizarea căutării și a navigării</translation>
 <translation id="1646982517418478057">Introdu o parolă pentru a cripta acest certificat</translation>
 <translation id="1648528859488547844">Folosește Wi-Fi sau rețelele mobile pentru detectarea locației</translation>
 <translation id="164936512206786300">Anulează asocierea dispozitivului Bluetooth</translation>
@@ -1462,6 +1464,7 @@
 <translation id="2514326558286966059">Deblochează mai rapid folosind amprenta</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Atribuie încă un comutator</translation>
+<translation id="251722524540674480">Confirmă numele de utilizator</translation>
 <translation id="2517472476991765520">Scanează</translation>
 <translation id="2518024842978892609">Folosește certificatele tale de client</translation>
 <translation id="2519517390894391510">Numele profilului cu certificat</translation>
@@ -2166,6 +2169,7 @@
 <translation id="3288047731229977326">Extensiile care rulează în modul pentru dezvoltatori pot afecta computerul. Dacă nu sunteți dezvoltator, se recomandă să dezactivați aceste extensii, pentru siguranță.</translation>
 <translation id="3289668031376215426">Scriere automată cu majuscule</translation>
 <translation id="3289856944988573801">Pentru a verifica dacă există actualizări, utilizați Ethernet sau Wi-Fi.</translation>
+<translation id="3291436823898732747">Navigare îmbunătățită: de exemplu, sugestii în caseta polivalentă înainte să începi să introduci text</translation>
 <translation id="3293644607209440645">Trimite pagina</translation>
 <translation id="32939749466444286">Containerul Linux nu a pornit. Încearcă din nou.</translation>
 <translation id="3294437725009624529">Invitat</translation>
@@ -2652,7 +2656,6 @@
 <translation id="3797900183766075808">&amp;Caută „<ph name="SEARCH_TERMS" />” pe <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Versiune</translation>
 <translation id="3799128412641261490">Setările pentru accesul prin comutare</translation>
-<translation id="3799903419983101749">Continuă de unde ai rămas. Poți seta aplicațiile să se restabilească automat din Setări.</translation>
 <translation id="3800806661949714323">Afișează-le pe toate (recomandat)</translation>
 <translation id="380329542618494757">Nume</translation>
 <translation id="3803345858388753269">Calitatea video</translation>
@@ -4120,7 +4123,6 @@
 <translation id="5430931332414098647">Tethering instantaneu</translation>
 <translation id="5431318178759467895">Color</translation>
 <translation id="543338862236136125">Editează parola</translation>
-<translation id="5433791271511851494">Opțiunile de distribuire sunt gestionate de organizația ta.</translation>
 <translation id="5434065355175441495">Criptare RSA PKCS #1</translation>
 <translation id="5435779377906857208">Permite întotdeauna accesul <ph name="HOST" /> la locație</translation>
 <translation id="5436492226391861498">Se așteaptă tunelul proxy...</translation>
@@ -4202,6 +4204,7 @@
 <translation id="5505307013568720083">Lipsă cerneală</translation>
 <translation id="5505794066310932198">Activează/dezactivează Commander</translation>
 <translation id="5507756662695126555">Non-repudiere</translation>
+<translation id="5507795078844206688">Adresele URL ale paginilor pe care le accesezi, de ex., https://www.google.com</translation>
 <translation id="5509693895992845810">Salvează c&amp;a...</translation>
 <translation id="5509914365760201064">Emitent: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Descarcă descrierile imaginii de la Google</translation>
@@ -4518,6 +4521,7 @@
 <translation id="5869522115854928033">Parole salvate</translation>
 <translation id="5870086504539785141">Închideți meniul de accesibilitate</translation>
 <translation id="5870155679953074650">Erori de hardware</translation>
+<translation id="5875534259258494936">S-a oprit accesul la ecran</translation>
 <translation id="5876576639916258720">Rulează...</translation>
 <translation id="5876851302954717356">Filă nouă la dreapta</translation>
 <translation id="5877064549588274448">Canalul a fost schimbat. Reporniți dispozitivul pentru a aplica modificările.</translation>
@@ -5377,6 +5381,7 @@
 <translation id="6812349420832218321"><ph name="PRODUCT_NAME" /> nu poate fi rulat în modul root.</translation>
 <translation id="6812841287760418429">Păstrați modificările</translation>
 <translation id="6813907279658683733">Tot ecranul</translation>
+<translation id="6814033694018386318">Ce trimiți la Google</translation>
 <translation id="6817174620439930047">Întreabă-mă când un site dorește să utilizeze mesajele rezervate sistemului ca să acceseze dispozitivele MIDI (recomandat)</translation>
 <translation id="6818198425579322765">Limba paginii de tradus</translation>
 <translation id="6818802132960437751">Protecție antivirus încorporată</translation>
@@ -5872,6 +5877,7 @@
 <translation id="7374376573160927383">Gestionează dispozitivele USB</translation>
 <translation id="7374461526650987610">Handlere pentru protocoale</translation>
 <translation id="7375235221357833624">{0,plural, =1{Actualizează dispozitivul într-o oră}few{Actualizează dispozitivul în # ore}other{Actualizează dispozitivul în # de ore}}</translation>
+<translation id="7376543451826039186">Navigare mai rapidă: de exemplu, încarci proactiv un anumit conținut suplimentar în funcție de pagina actuală</translation>
 <translation id="7376553024552204454">Evidențiază cursorul mouse-ului când se mișcă</translation>
 <translation id="737728204345822099">O înregistrare a vizitei pe site poate fi păstrată pe cheia ta de securitate.</translation>
 <translation id="7377451353532943397">Blochează în continuare accesul la senzori</translation>
@@ -5929,6 +5935,7 @@
 <translation id="7427798576651127129">Apel de la <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">Nu a fost găsit niciun dispozitiv HID</translation>
 <translation id="7431991332293347422">Controlează modul în care istoricul de navigare este folosit pentru a personaliza Căutarea și alte servicii</translation>
+<translation id="7432200167665670017">Administratorul a blocat extensia <ph name="EXTENSION_NAME" /> – Codul aplicației <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">Introdu cardul inteligent pentru a folosi în continuare dispozitivul <ph name="DEVICE_TYPE" /></translation>
 <translation id="7433957986129316853">Păstreaz-o</translation>
 <translation id="7434509671034404296">Dezvoltator</translation>
@@ -5958,6 +5965,7 @@
 <translation id="7460045493116006516">Tema actuală pe care ai instalat-o</translation>
 <translation id="7461924472993315131">Fixează</translation>
 <translation id="746216226901520237">Data viitoare, telefonul va debloca dispozitivul <ph name="DEVICE_TYPE" />. Poți debloca Smart Lock în Setări.</translation>
+<translation id="7464637891177137294">Salveaz-o în Contul Google <ph name="ACCOUNT" /></translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# filă deschisă; atinge pentru a comuta bara de file}few{# file deschise; atinge pentru a comuta bara de file}other{# de file deschise; atinge pentru a comuta bara de file}}</translation>
 <translation id="7465635034594602553">A apărut o eroare. Așteaptă câteva minute și rulează din nou <ph name="APP_NAME" />.</translation>
 <translation id="7465778193084373987">Adresă URL de revocare a certificatului Netscape</translation>
@@ -6021,6 +6029,7 @@
 <translation id="7525625923260515951">Ascultă textul selectat</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{Încă unul}few{Încă {NUM_DOWNLOADS}}other{Încă {NUM_DOWNLOADS}}}</translation>
 <translation id="7526989658317409655">Substituent</translation>
+<translation id="7527758104894292229">Actualizeaz-o în Contul Google <ph name="ACCOUNT" /></translation>
 <translation id="7529411698175791732">Verifică conexiunea la internet. Dacă problema persistă, deconectează-te și conectează-te din nou.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Închide ferestrele pentru invitați}few{Închide ferestrele pentru invitați}other{Închide ferestrele pentru invitați}}</translation>
 <translation id="7530016656428373557">Rata de descărcare în wați</translation>
@@ -6407,6 +6416,7 @@
 <translation id="7898725031477653577">Tradu întotdeauna</translation>
 <translation id="790040513076446191">Manipulează setările privind confidențialitatea</translation>
 <translation id="7901405293566323524">Phone Hub</translation>
+<translation id="7901914889562552258">Un browser Chrome îmbunătățit care folosește valori privind paginile</translation>
 <translation id="7903345046358933331">Pagina a devenit inactivă. Poți aștepta să devină activă sau o poți închide.</translation>
 <translation id="7903742244674067440">Ai certificate stocate care identifică aceste autorități de certificare</translation>
 <translation id="7903859912536385558">stabil (tester de încredere)</translation>
@@ -6873,6 +6883,7 @@
 <translation id="8392364544846746346">Întreabă când un site vrea să modifice fișiere sau dosare de pe dispozitiv</translation>
 <translation id="8392451568018454956">Meniu cu opțiuni pentru <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8393511274964623038">Oprește pluginul</translation>
+<translation id="839363317075970734">Detalii despre dispozitivul Bluetooth</translation>
 <translation id="8393700583063109961">Trimite un mesaj</translation>
 <translation id="8397825320644530257">Deconectează telefonul conectat</translation>
 <translation id="8398877366907290961">Continuă oricum</translation>
@@ -7123,6 +7134,7 @@
 <translation id="8681614230122836773">Chrome a găsit software dăunător pe computer</translation>
 <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> este conectată și pregătită</translation>
 <translation id="8683081248374354009">Resetează grupul</translation>
+<translation id="8683526617475118045">Beneficii</translation>
 <translation id="8688672835843460752">Disponibilă</translation>
 <translation id="8690129572193755009">Site-urile pot solicita permisiunea de a gestiona protocoale</translation>
 <translation id="8695139659682234808">Adaugă opțiuni de control parental după configurare</translation>
@@ -7176,6 +7188,7 @@
 <translation id="8737685506611670901">Deschide linkurile <ph name="PROTOCOL" /> și nu <ph name="REPLACED_HANDLER_TITLE" /></translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Alege limba în care vrei să traduci pagina</translation>
+<translation id="8737916108453753541">Adresele URL sunt trimise la Google pentru a înțelege comportamentul de navigare</translation>
 <translation id="8740247629089392745">Poți să îi dai Chromebookul utilizatorului <ph name="SUPERVISED_USER_NAME" />. Configurarea este aproape gata, apoi conținutul va putea fi explorat.</translation>
 <translation id="8741944563400125534">Ghid de configurare pentru acces prin comutare</translation>
 <translation id="8742998548129056176">Acestea sunt informații generale despre dispozitiv și despre modul în care îl folosești (de exemplu, nivelul bateriei, activitatea pe sistem și în aplicații și erorile). Datele vor fi folosite pentru îmbunătățirea Android și unele informații cumulate vor ajuta aplicațiile și partenerii Google, cum ar fi dezvoltatorii Android, să își îmbunătățească aplicațiile și produsele.</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index bafd240..8a49ec3 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -2652,7 +2652,6 @@
 <translation id="3797900183766075808">&amp;Найти "<ph name="SEARCH_TERMS" />" в <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Версия</translation>
 <translation id="3799128412641261490">Настройки функции Switch Access</translation>
-<translation id="3799903419983101749">Продолжайте работу с того места, на котором закончили. Вы можете задать параметры автоматического восстановления приложений в настройках.</translation>
 <translation id="3800806661949714323">Показать все (рекомендуется)</translation>
 <translation id="380329542618494757">Имя</translation>
 <translation id="3803345858388753269">Качество видео</translation>
@@ -4120,7 +4119,6 @@
 <translation id="5430931332414098647">Мгновенная точка доступа</translation>
 <translation id="5431318178759467895">Цветная печать</translation>
 <translation id="543338862236136125">Изменить пароль</translation>
-<translation id="5433791271511851494">Настройками предоставления доступа управляет ваша организация.</translation>
 <translation id="5434065355175441495">PKCS #1 шифрование RSA</translation>
 <translation id="5435779377906857208">Сообщать сайту <ph name="HOST" />, где я нахожусь</translation>
 <translation id="5436492226391861498">Ожидание создания туннеля прокси...</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index fdd01459..21de601 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -2658,7 +2658,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” සඳහා <ph name="SEARCH_ENGINE" /> සොයන්න</translation>
 <translation id="3798449238516105146">අනුවාදය:</translation>
 <translation id="3799128412641261490">ප්‍රවේශය මාරු කිරීමේ සැකසීම්</translation>
-<translation id="3799903419983101749">ඔබ නතර කළ තැන සිට ඉදිරියට යයි. ඔබට සැකසීම් තුළ ස්වයංක්‍රියව ප්‍රතිසාධනය කිරීමට යෙදුම් සැකසිය හැකිය.</translation>
 <translation id="3800806661949714323">සියල්ල පෙන්වන්න (නිර්දේශිතයි)</translation>
 <translation id="380329542618494757">නම</translation>
 <translation id="3803345858388753269">වීඩියෝවේ ගුණත්වය</translation>
@@ -4127,7 +4126,6 @@
 <translation id="5430931332414098647">ක්ෂණික ටෙදරින්</translation>
 <translation id="5431318178759467895">වර්ණය</translation>
 <translation id="543338862236136125">මුරපදය සංස්කරණ කරන්න</translation>
-<translation id="5433791271511851494">බෙදා ගැනීම සඳහා වූ විකල්ප ඔබගේ සංවිධානය විසින් කළමනාකරණය කරනු ලැබේ.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA ගුප්තකේතනය</translation>
 <translation id="5435779377906857208">ඔබගේ ස්ථානයට පිවිසීමට <ph name="HOST" /> හට සැම විට ඉඩ දෙන්න</translation>
 <translation id="5436492226391861498">ප්‍රොක්සි උමඟ සඳහා රැඳෙමින්...</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 82442f8..18179312 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -2653,7 +2653,6 @@
 <translation id="3797900183766075808">Pomocou &amp;služby <ph name="SEARCH_ENGINE" /> vyhľadať text „<ph name="SEARCH_TERMS" />“</translation>
 <translation id="3798449238516105146">Verzia</translation>
 <translation id="3799128412641261490">Nastavenia ovládania prepínačmi</translation>
-<translation id="3799903419983101749">Pokračujte tam, kde ste prestali. V Nastaveniach môžete nastaviť, aby sa aplikácie automaticky obnovovali.</translation>
 <translation id="3800806661949714323">Zobraziť všetko (odporúčané)</translation>
 <translation id="380329542618494757">Meno</translation>
 <translation id="3803345858388753269">Kvalita videa</translation>
@@ -4121,7 +4120,6 @@
 <translation id="5430931332414098647">Dynamický tethering</translation>
 <translation id="5431318178759467895">Farebne</translation>
 <translation id="543338862236136125">Upraviť heslo</translation>
-<translation id="5433791271511851494">Možnosti zdieľania spravuje vaša organizácia.</translation>
 <translation id="5434065355175441495">Štandard PKCS #1 so šifrovaním RSA</translation>
 <translation id="5435779377906857208">Vždy povoliť webu <ph name="HOST" /> prístup k polohe</translation>
 <translation id="5436492226391861498">Čaká sa na tunelové prepojenie servera proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 1ecc34a..3e07baa 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -449,6 +449,7 @@
 <translation id="1476088332184200792">Kopiranje v vašo napravo</translation>
 <translation id="1476607407192946488">&amp;Jezikovne nastavitve</translation>
 <translation id="1477446329585670721">Domena <ph name="DOMAIN" /> zahteva, da je pametna kartica vstavljena.</translation>
+<translation id="1477654881618305065">Vaša organizacija vam ne dovoli deljenja te vsebine. Če potrebujete pomoč, se obrnite na skrbnika.</translation>
 <translation id="1478340334823509079">Podatki: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">Namestitev ni omogočena</translation>
 <translation id="1480571698637441426">Če želite pri postavljanju vprašanj prejemati prilagojene odgovore, Pomočniku omogočite dostop do posnetka zaslona. Morda bo uporabil tudi podatke o skladbah ali videoposnetkih, ki se predvajajo.</translation>
@@ -624,6 +625,7 @@
 <translation id="1643921258693943800">Če želite uporabljati deljenje v bližini, vklopite Bluetooth in Wi-Fi</translation>
 <translation id="1644574205037202324">Zgodovina</translation>
 <translation id="1645516838734033527">Zaradi varnosti naprave <ph name="DEVICE_TYPE" /> zahteva funkcija Smart Lock v telefonu zaklepanje zaslona.</translation>
+<translation id="1646793251510634025">Preglejte nastavitve glede optimizacije iskanja in brskanja</translation>
 <translation id="1646982517418478057">Vnesite geslo za šifriranje tega potrdila</translation>
 <translation id="1648528859488547844">Uporaba Wi-Fi-ja, Bluetootha in mobilnih omrežij za določanje lokacije</translation>
 <translation id="164936512206786300">Preklic seznanitve z napravo Bluetooth</translation>
@@ -1479,6 +1481,7 @@
 <translation id="2514326558286966059">Odklenite hitreje s prstnim odtisom</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">Dodeli še eno stikalo</translation>
+<translation id="251722524540674480">Potrditev uporabniškega imena</translation>
 <translation id="2517472476991765520">Išči</translation>
 <translation id="2518024842978892609">Uporaba potrdil odjemalca</translation>
 <translation id="2519517390894391510">Ime profila potrdila</translation>
@@ -2183,6 +2186,7 @@
 <translation id="3288047731229977326">Razširitve, ki se izvajajo v razvijalskem načinu, lahko škodijo vašemu računalniku. Če niste razvijalec, zaradi varnosti onemogočite razširitve, ki se izvajajo v razvijalskem načinu.</translation>
 <translation id="3289668031376215426">Samodejna uporaba velikih začetnic</translation>
 <translation id="3289856944988573801">Če želite preveriti, ali so na voljo posodobitve, uporabite ethernet ali Wi-Fi.</translation>
+<translation id="3291436823898732747">Izboljšano brskanje: Na primer predlogi v naslovni vrstici, preden začnete tipkati</translation>
 <translation id="3293644607209440645">Pošlji to stran</translation>
 <translation id="32939749466444286">Vsebnik za Linux se ni zagnal. Poskusite znova.</translation>
 <translation id="3294437725009624529">Gost</translation>
@@ -2669,7 +2673,6 @@
 <translation id="3797900183766075808">&amp;V iskalniku <ph name="SEARCH_ENGINE" /> poišči »<ph name="SEARCH_TERMS" />«</translation>
 <translation id="3798449238516105146">Različica</translation>
 <translation id="3799128412641261490">Nastavitve stikalnega dostopa</translation>
-<translation id="3799903419983101749">Nadaljujte, kjer ste končali. V nastavitvah lahko nastavite, da se aplikacije samodejno obnovijo.</translation>
 <translation id="3800806661949714323">Pokaži vse (priporočeno)</translation>
 <translation id="380329542618494757">Ime</translation>
 <translation id="3803345858388753269">Kakovost videoposnetka</translation>
@@ -4138,7 +4141,6 @@
 <translation id="5430931332414098647">Takojšnji internet prek mobilnega telefona</translation>
 <translation id="5431318178759467895">Barvno</translation>
 <translation id="543338862236136125">Uredi geslo</translation>
-<translation id="5433791271511851494">Možnosti za deljenje z drugimi upravlja vaša organizacija.</translation>
 <translation id="5434065355175441495">PKCS #1 s šifriranjem RSA</translation>
 <translation id="5435779377906857208">Vedno dovoli gostitelju <ph name="HOST" /> dostop do lokacije</translation>
 <translation id="5436492226391861498">Čakanje na tunel namestniškega strežnika ...</translation>
@@ -4220,6 +4222,7 @@
 <translation id="5505307013568720083">Ni več črnila</translation>
 <translation id="5505794066310932198">Preklop funkcije Commander</translation>
 <translation id="5507756662695126555">Brez zavračanja</translation>
+<translation id="5507795078844206688">URL strani, ki jih obiščete, npr. https://www.google.com</translation>
 <translation id="5509693895992845810">Shrani &amp;kot ...</translation>
 <translation id="5509914365760201064">Izdajatelj: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">Pridobivanje opisov slik iz Googla</translation>
@@ -4538,6 +4541,7 @@
 <translation id="5869522115854928033">Shranjena gesla</translation>
 <translation id="5870086504539785141">Zapiranje menija s funkcijami za ljudi s posebnimi potrebami</translation>
 <translation id="5870155679953074650">Težke napake</translation>
+<translation id="5875534259258494936">Deljenje zaslona je končano</translation>
 <translation id="5876576639916258720">Poteka …</translation>
 <translation id="5876851302954717356">Novi zavihek na desni</translation>
 <translation id="5877064549588274448">Kanal spremenjen. Znova zaženite napravo, da uveljavite spremembe.</translation>
@@ -5397,6 +5401,7 @@
 <translation id="6812349420832218321">Programa <ph name="PRODUCT_NAME" /> ni mogoče zagnati kot korenski uporabnik.</translation>
 <translation id="6812841287760418429">Ohrani spremembe</translation>
 <translation id="6813907279658683733">Celoten zaslon</translation>
+<translation id="6814033694018386318">Kaj delite z Googlom</translation>
 <translation id="6817174620439930047">Vprašaj, ko želi spletno mesto uporabiti sporočila sysex za dostop do naprav MIDI (priporočeno)</translation>
 <translation id="6818198425579322765">Jezik strani za prevajanje</translation>
 <translation id="6818802132960437751">Vgrajena protivirusna zaščita</translation>
@@ -5892,6 +5897,7 @@
 <translation id="7374376573160927383">Upravljanje naprav USB</translation>
 <translation id="7374461526650987610">Rutine za obravnavanje protokolov</translation>
 <translation id="7375235221357833624">{0,plural, =1{Posodobite napravo v eni uri}one{Posodobite napravo v # uri}two{Posodobite napravo v # urah}few{Posodobite napravo v # urah}other{Posodobite napravo v # urah}}</translation>
+<translation id="7376543451826039186">Hitrejše brskanje: Na primer proaktivno nalaganje določene nadaljnje vsebine glede na trenutno stran</translation>
 <translation id="7376553024552204454">Označitev miškinega kazalca med premikanjem</translation>
 <translation id="737728204345822099">Na varnostnem ključu se bo morda zabeležil obisk tega spletnega mesta.</translation>
 <translation id="7377451353532943397">Še naprej preprečuj dostop do tipal</translation>
@@ -5949,6 +5955,7 @@
 <translation id="7427798576651127129">Klic osebe <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">Ni naprav HID</translation>
 <translation id="7431991332293347422">Nadziranje, kako se zgodovina brskanja uporabi za prilagajanje Iskanja Google in drugega</translation>
+<translation id="7432200167665670017">Skrbnik je blokiral »<ph name="EXTENSION_NAME" />« – ID aplikacije <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">Vstavite pametno kartico, če želite še naprej uporabljati napravo <ph name="DEVICE_TYPE" /></translation>
 <translation id="7433957986129316853">Ohrani</translation>
 <translation id="7434509671034404296">Razvijalec</translation>
@@ -5978,6 +5985,7 @@
 <translation id="7460045493116006516">Trenutna tema, ki ste jo namestili</translation>
 <translation id="7461924472993315131">Pripni</translation>
 <translation id="746216226901520237">Naslednjič bo telefon odklenil napravo <ph name="DEVICE_TYPE" />. Funkcijo Smart Lock lahko izklopite v nastavitvah.</translation>
+<translation id="7464637891177137294">Shranite ga v računu Google, <ph name="ACCOUNT" />.</translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# odprt zavihek, pritisnite za preklop traka z zavihki}one{# odprt zavihek, pritisnite za preklop traka z zavihki}two{# odprta zavihka, pritisnite za preklop traka z zavihki}few{# odprti zavihki, pritisnite za preklop traka z zavihki}other{# odprtih zavihkov, pritisnite za preklop traka z zavihki}}</translation>
 <translation id="7465635034594602553">Prišlo je do napake. Počakajte nekaj minut, nato znova zaženite aplikacijo <ph name="APP_NAME" />.</translation>
 <translation id="7465778193084373987">Spletni naslov ukinjenega Netscapeovega potrdila</translation>
@@ -6041,6 +6049,7 @@
 <translation id="7525625923260515951">Poslušanje izbranega besedila</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{še 1}one{še {NUM_DOWNLOADS}}two{še {NUM_DOWNLOADS}}few{še {NUM_DOWNLOADS}}other{še {NUM_DOWNLOADS}}}</translation>
 <translation id="7526989658317409655">Nadomestni znak</translation>
+<translation id="7527758104894292229">Posodobite ga v računu Google, <ph name="ACCOUNT" />.</translation>
 <translation id="7529411698175791732">Preverite internetno povezavo. Če težave ne odpravite, se poskusite odjaviti in znova prijaviti.</translation>
 <translation id="7529876053219658589">{0,plural, =1{Zapri okna načina za goste}one{Zapri okna načina za goste}two{Zapri okna načina za goste}few{Zapri okna načina za goste}other{Zapri okna načina za goste}}</translation>
 <translation id="7530016656428373557">Hitrost praznjenja v vatih</translation>
@@ -6428,6 +6437,7 @@
 <translation id="7898725031477653577">Vedno prevedi</translation>
 <translation id="790040513076446191">Upravljajte nastavitve zasebnosti</translation>
 <translation id="7901405293566323524">Središče za telefone</translation>
+<translation id="7901914889562552258">Izboljšani Chrome na podlagi meritev strani</translation>
 <translation id="7903345046358933331">Stran se je nehala odzivati. Lahko počakate, da se začne odzivati, ali pa jo zaprete.</translation>
 <translation id="7903742244674067440">V datoteki so potrdila, ki identificirajo te overitelje potrdil</translation>
 <translation id="7903859912536385558">stabilno (zaupanja vreden preizkuševalec)</translation>
@@ -6894,6 +6904,7 @@
 <translation id="8392364544846746346">Vprašaj, ko želi spletno mesto urediti datoteke ali mape v vaši napravi</translation>
 <translation id="8392451568018454956">Meni z možnostmi za <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8393511274964623038">Ustavi vtičnik</translation>
+<translation id="839363317075970734">Podrobnosti o napravi Bluetooth</translation>
 <translation id="8393700583063109961">Pošlji sporočilo</translation>
 <translation id="8397825320644530257">Prekinitev povezave s telefonom</translation>
 <translation id="8398877366907290961">Vseeno nadaljuj</translation>
@@ -7144,6 +7155,7 @@
 <translation id="8681614230122836773">Chrome je v računalniku odkril škodljivo programsko opremo</translation>
 <translation id="8682730193597992579">Tiskalnik <ph name="PRINTER_NAME" /> je povezan in pripravljen</translation>
 <translation id="8683081248374354009">Ponastavi skupino</translation>
+<translation id="8683526617475118045">Kaj ponuja</translation>
 <translation id="8688672835843460752">Na voljo</translation>
 <translation id="8690129572193755009">Spletna mesta lahko zahtevajo obravnavo protokolov.</translation>
 <translation id="8695139659682234808">Dodajanje starševskega nadzora po nastavitvi</translation>
@@ -7197,6 +7209,7 @@
 <translation id="8737685506611670901">Odpiranje povezav za <ph name="PROTOCOL" /> namesto <ph name="REPLACED_HANDLER_TITLE" /></translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Izberite jezik, v katerega želite prevesti stran.</translation>
+<translation id="8737916108453753541">URL-ji se delijo z Googlom zaradi razumevanja navad brskanja</translation>
 <translation id="8740247629089392745">Ta Chromebook lahko predate osebi <ph name="SUPERVISED_USER_NAME" />. Nastavitev je skoraj dokončana, čas je za raziskovanje.</translation>
 <translation id="8741944563400125534">Vodnik za nastavitev stikalnega dostopa</translation>
 <translation id="8742998548129056176">Gre za splošne podatke o napravi in njeni uporabi, kot so raven napolnjenosti baterije, dejavnost sistema in aplikacij ter napake. Ti podatki bodo uporabljeni za izboljšanje sistema Android. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android, izboljšati aplikacije in izdelke.</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index 0466962..3dedeae 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -2648,7 +2648,6 @@
 <translation id="3797900183766075808">&amp;Kërko në <ph name="SEARCH_ENGINE" /> për "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798449238516105146">Versioni</translation>
 <translation id="3799128412641261490">Cilësimet e qasjes me çelës</translation>
-<translation id="3799903419983101749">Vazhdo nga ku e le. Mund të caktosh aplikacione për t'i rivendosur automatikisht te "Cilësimet".</translation>
 <translation id="3800806661949714323">Shfaq të gjitha (e rekomanduar)</translation>
 <translation id="380329542618494757">Emri</translation>
 <translation id="3803345858388753269">Cilësia e videos</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index a723afc..4b528959 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -2650,7 +2650,6 @@
 <translation id="3797900183766075808">&amp;Pretraži „<ph name="SEARCH_TERMS" />“ na pretraživaču <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Verzija</translation>
 <translation id="3799128412641261490">Podešavanja pristupa pomoću prekidača</translation>
-<translation id="3799903419983101749">Nastavite tamo gde ste stali. Možete da podesite aplikacije tako da se automatski vraćaju u Podešavanjima.</translation>
 <translation id="3800806661949714323">Prikaži sve (preporučeno)</translation>
 <translation id="380329542618494757">Ime</translation>
 <translation id="3803345858388753269">Kvalitet video snimka</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">Trenutno privezivanje</translation>
 <translation id="5431318178759467895">U boji</translation>
 <translation id="543338862236136125">Izmenite lozinku</translation>
-<translation id="5433791271511851494">Opcijama za deljenje upravlja organizacija.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA šifrovanje</translation>
 <translation id="5435779377906857208">Uvek dozvoli da <ph name="HOST" /> pristupa mikrofonu</translation>
 <translation id="5436492226391861498">Čekanje na proksi tunel...</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index be97f8c..3306a1c 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -2650,7 +2650,6 @@
 <translation id="3797900183766075808">&amp;Претражи „<ph name="SEARCH_TERMS" />“ на претраживачу <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">Верзија</translation>
 <translation id="3799128412641261490">Подешавања приступа помоћу прекидача</translation>
-<translation id="3799903419983101749">Наставите тамо где сте стали. Можете да подесите апликације тако да се аутоматски враћају у Подешавањима.</translation>
 <translation id="3800806661949714323">Прикажи све (препоручено)</translation>
 <translation id="380329542618494757">Име</translation>
 <translation id="3803345858388753269">Квалитет видео снимка</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">Тренутно привезивање</translation>
 <translation id="5431318178759467895">У боји</translation>
 <translation id="543338862236136125">Измените лозинку</translation>
-<translation id="5433791271511851494">Опцијама за дељење управља организација.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA шифровање</translation>
 <translation id="5435779377906857208">Увек дозволи да <ph name="HOST" /> приступа микрофону</translation>
 <translation id="5436492226391861498">Чекање на прокси тунел...</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 588f3e07..0bf46d7 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;Sök på <ph name="SEARCH_ENGINE" /> efter ”<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">Version</translation>
 <translation id="3799128412641261490">Inställningar för brytarstyrning</translation>
-<translation id="3799903419983101749">Fortsätt där du slutade. Du kan ställa in att appar ska återställas automatiskt i inställningarna.</translation>
 <translation id="3800806661949714323">Visa alla (rekommenderas)</translation>
 <translation id="380329542618494757">Namn</translation>
 <translation id="3803345858388753269">Bildkvalitet</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">Direktinternetdelning</translation>
 <translation id="5431318178759467895">Färg</translation>
 <translation id="543338862236136125">Redigera lösenord</translation>
-<translation id="5433791271511851494">Delningsalternativ hanteras av organisationen.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA-kryptering</translation>
 <translation id="5435779377906857208">Tillåt alltid att <ph name="HOST" /> har åtkomst till din plats</translation>
 <translation id="5436492226391861498">Väntar på proxytunnel...</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 43705e56..303e5b2 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -2662,7 +2662,6 @@
 <translation id="3797900183766075808">&amp;Tafuta <ph name="SEARCH_ENGINE" /> upate “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">Toleo</translation>
 <translation id="3799128412641261490">Mipangilio ya kufikia kupitia swichi</translation>
-<translation id="3799903419983101749">Endelea kutoka mahali ulikoachia. Unaweza kuchagua programu zirejeshwe kiotomatiki katika Mipangilio.</translation>
 <translation id="3800806661949714323">Onyeza zote (inapendekezwa)</translation>
 <translation id="380329542618494757">Jina</translation>
 <translation id="3803345858388753269">Ubora wa Video</translation>
@@ -4129,7 +4128,6 @@
 <translation id="5430931332414098647">Mtandao wa Kusambazwa Papo Hapo</translation>
 <translation id="5431318178759467895">Rangi</translation>
 <translation id="543338862236136125">Badilisha nenosiri</translation>
-<translation id="5433791271511851494">Chaguo za kushiriki zinadhibitiwa na shirika lako.</translation>
 <translation id="5434065355175441495">PKCS #1 Usimbaji wa RSA</translation>
 <translation id="5435779377906857208">Ruhusu <ph name="HOST" /> kila wakati ifikie maelezo ya mahali ulipo</translation>
 <translation id="5436492226391861498">Inasubiri handaki la proksi...</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 0f2d9a11..466b356 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> இல் “<ph name="SEARCH_TERMS" />” எனத் &amp;தேடு</translation>
 <translation id="3798449238516105146">பதிப்பு</translation>
 <translation id="3799128412641261490">ஸ்விட்ச் அணுகலுக்கான அமைப்புகள்</translation>
-<translation id="3799903419983101749">விட்ட இடத்திலிருந்து தொடங்கலாம். தானாகவே ஆப்ஸை மீட்டெடுக்கும் வகையில் அமைப்புகளில் மாற்றம் செய்யலாம்.</translation>
 <translation id="3800806661949714323">எல்லாம் காட்டு (பரிந்துரைக்கப்படுவது)</translation>
 <translation id="380329542618494757">பெயர்</translation>
 <translation id="3803345858388753269">வீடியோவின் தரம்</translation>
@@ -2781,6 +2780,7 @@
 <translation id="3905761538810670789">ஆப்ஸை பழுதுநீக்கு</translation>
 <translation id="3908393983276948098"><ph name="PLUGIN_NAME" /> காலாவதியாகிவிட்டது</translation>
 <translation id="3908501907586732282">நீட்டிப்பை இயக்கு</translation>
+<translation id="3909701002594999354">அனைத்துக் &amp;கண்ட்ரோல்களையும் காட்டு</translation>
 <translation id="3909791450649380159">வெட்&amp;டு</translation>
 <translation id="39103738135459590">செயல்படுத்தல் குறியீடு</translation>
 <translation id="3911824782900911339">புதிய தாவல் பக்கம்</translation>
@@ -3104,7 +3104,7 @@
 <translation id="4282196459431406533">Smart Lock இயக்கப்பட்டது</translation>
 <translation id="4285418559658561636">கடவுச்சொல்லைப் புதுப்பி</translation>
 <translation id="4285498937028063278">பிரித்தெடு</translation>
-<translation id="428565720843367874">இந்தக் கோப்பை ஸ்கேன் செய்யும்போது எதிர்பாராதவிதமாக வைரஸ் தடுப்பு மென்பொருள் தோல்வியடைந்தது.</translation>
+<translation id="428565720843367874">இந்த ஃபைலை ஸ்கேன் செய்யும்போது எதிர்பாராதவிதமாக வைரஸ் தடுப்பு மென்பொருள் தோல்வியடைந்தது.</translation>
 <translation id="4287099557599763816">ஸ்க்ரீன் ரீடர்</translation>
 <translation id="428715201724021596">நெட்வொர்க் சுயவிவரத்துடன் இணைக்கிறது. இதற்குச் சில நிமிடங்கள் ஆகலாம்.</translation>
 <translation id="4287157641315808225">ஆம், ChromeVoxஸை இயக்கு</translation>
@@ -3519,6 +3519,7 @@
 <translation id="4733793249294335256">இருப்பிடம்</translation>
 <translation id="473546211690256853">இந்தக் கணக்கு <ph name="DOMAIN" /> ஆல் நிர்வகிக்கப்படுகிறது</translation>
 <translation id="4735803855089279419">இந்தச் சாதனத்திற்கான சாதன அடையாளங்காட்டிகளை சிஸ்டத்தால் தீர்மானிக்க முடியவில்லை.</translation>
+<translation id="473581466100273252">சமீபத்தில் மூடியவற்றைக் காட்டு</translation>
 <translation id="4736292055110123391">உங்கள் எல்லாச் சாதனங்களிலும் உங்கள் புக்மார்க்குகள், கடவுச்சொற்கள், வரலாறு, மேலும் பலவற்றை ஒத்திசைக்கலாம்</translation>
 <translation id="473775607612524610">புதுப்பி</translation>
 <translation id="473936925429402449">தேர்ந்தெடுக்கப்பட்டது, கூடுதல் உள்ளடக்கம் (<ph name="CURRENT_ELEMENT" />/<ph name="TOTAL_ELEMENTS" />)</translation>
@@ -5172,6 +5173,7 @@
 <translation id="657402800789773160">&amp;இந்த பக்கத்தை மீண்டும் ஏற்றுக</translation>
 <translation id="6577284282025554716">பதிவிறக்கம் ரத்துசெய்யப்பட்டது: <ph name="FILE_NAME" /></translation>
 <translation id="657866106756413002">நெட்வொர்க் ஹெல்த் ஸ்னாப்ஷாட்</translation>
+<translation id="6579369886355986318">அனைத்துக் &amp;கண்ட்ரோல்களையும் காட்டு</translation>
 <translation id="6579705087617859690"><ph name="WINDOW_TITLE" /> - டெஸ்க்டாப் உள்ளடக்கம் பகிரப்படுகிறது</translation>
 <translation id="6580203076670148210">ஸ்கேனிங் வேகம்</translation>
 <translation id="6582080224869403177">உங்கள் <ph name="DEVICE_TYPE" /> இன் பாதுகாப்பை மேம்படுத்த, அதை மீட்டமைக்கவும்.</translation>
@@ -5611,6 +5613,7 @@
 <translation id="7044124535091449260">தள அணுகலைப் பற்றி மேலும் அறிக</translation>
 <translation id="7044606776288350625">தரவை ஒத்திசைத்தல்</translation>
 <translation id="7047059339731138197">பின்புலத்தைத் தேர்வுசெய்யுங்கள்</translation>
+<translation id="7048457618657122233"><ph name="SHARE_TARGET" /> இல் இணைப்பைப் பகிர்</translation>
 <translation id="7049293980323620022">கோப்பை வைத்திருக்கவா?</translation>
 <translation id="7052237160939977163">செயல்திறன் தடமறிதல் தரவை அனுப்பு</translation>
 <translation id="7053983685419859001">தடு</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index d721668..f560e11 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -40,7 +40,7 @@
 <translation id="1039337018183941703">ఫైల్ చెల్లదు లేదా పాడైంది</translation>
 <translation id="1041175011127912238">ఈ పేజీ ప్రతిస్పందించడం లేదు</translation>
 <translation id="1041263367839475438">అందుబాటులో ఉన్న పరికరాలు</translation>
-<translation id="1042174272890264476">మీ కంప్యూటర్‌‍లో కూడా <ph name="SHORT_PRODUCT_NAME" /> యొక్క అంతర్గత RLZ లైబ్రరీ ఉంటుంది. RLZ శోధనలను మరియు నిర్దిష్ట ప్రమోషనల్ ప్రచారం ద్వారా ఉపయోగించబడిన <ph name="SHORT_PRODUCT_NAME" /> వినియోగాన్ని లెక్కించడానికి, ప్రత్యేకం కానటువంటి, వ్యక్తిగతంగా గుర్తించలేని ట్యాగ్‌ను సమర్పిస్తుంది. ఈ లేబుల్‌లు కొన్నిసార్లు <ph name="PRODUCT_NAME" />లోని Google శోధన ప్రశ్నలలో కనిపిస్తాయి.</translation>
+<translation id="1042174272890264476">మీ కంప్యూటర్‌‍లో కూడా <ph name="SHORT_PRODUCT_NAME" /> యొక్క అంతర్గత RLZ లైబ్రరీ ఉంటుంది. RLZ శోధనలను మరియు నిర్దిష్ట ప్రమోషనల్ ప్రచారం ద్వారా ఉపయోగించబడిన <ph name="SHORT_PRODUCT_NAME" /> వినియోగాన్ని లెక్కించడానికి, ప్రత్యేకం కానటువంటి, వ్యక్తిగతంగా గుర్తించలేని ట్యాగ్‌ను సమర్పిస్తుంది. ఈ లేబుళ్లు కొన్నిసార్లు <ph name="PRODUCT_NAME" />లోని Google శోధన ప్రశ్నలలో కనిపిస్తాయి.</translation>
 <translation id="1043818413152647937">అలాగే, ఈ యాప్‌ల నుండి డేటాను క్లియర్ చేయాలా?</translation>
 <translation id="104710386808485638">Linuxను రీస్టార్ట్ చేయాలా?</translation>
 <translation id="1047431265488717055">లింక్ వచ&amp;నం కాపీ చేయి</translation>
@@ -2665,7 +2665,6 @@
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” కోసం <ph name="SEARCH_ENGINE" />లో &amp;శోధించండి</translation>
 <translation id="3798449238516105146">వెర్షన్</translation>
 <translation id="3799128412641261490">స్విచ్ యాక్సెస్ సెట్టింగ్‌లు</translation>
-<translation id="3799903419983101749">మీరు ఆపిన చోటు నుండే కొనసాగించండి. సెట్టింగ్‌లలో యాప్‌లు ఆటోమేటిక్‌గా రీస్టోర్ అవ్వడానికి మీరు వాటిని సెట్ చేయవచ్చు.</translation>
 <translation id="3800806661949714323">అన్నీ చూపు (సిఫార్సు చేయబడింది)</translation>
 <translation id="380329542618494757">పేరు</translation>
 <translation id="3803345858388753269">వీడియో క్వాలిటీ</translation>
@@ -2780,6 +2779,7 @@
 <translation id="3905761538810670789">యాప్‌ను సరి చేయి</translation>
 <translation id="3908393983276948098"><ph name="PLUGIN_NAME" /> కాలం చెల్లినది</translation>
 <translation id="3908501907586732282">ఎక్స్‌టెన్ష‌న్‌ను ప్రారంభించు</translation>
+<translation id="3909701002594999354">అన్ని కంట్రోల్‌లను చూడండి</translation>
 <translation id="3909791450649380159">క&amp;త్తిరించు</translation>
 <translation id="39103738135459590">యాక్టివేషన్ కోడ్</translation>
 <translation id="3911824782900911339">కొత్త‌ ట్యాబ్ పేజీ</translation>
@@ -3518,6 +3518,7 @@
 <translation id="4733793249294335256">లొకేషన్</translation>
 <translation id="473546211690256853">ఈ ఖాతాను <ph name="DOMAIN" /> మేనేజ్ చేస్తోంది</translation>
 <translation id="4735803855089279419">ఈ పరికర ఐడెంటిఫైయర్‌లను గుర్తించడంలో సిస్టమ్ విఫలమైంది.</translation>
+<translation id="473581466100273252">ఇటీవల మూసివేసిన ఎంట్రీలను టోగుల్ చేయండి</translation>
 <translation id="4736292055110123391">మీ బుక్‌మార్క్‌లు, పాస్‌వర్డ్‌‌లు, చరిత్ర మరియు మరిన్నింటిని మీ అన్ని పరికరాల్లోనూ సింక్ చేయండి</translation>
 <translation id="473775607612524610">అప్‌డేట్‌</translation>
 <translation id="473936925429402449"><ph name="TOTAL_ELEMENTS" />లో <ph name="CURRENT_ELEMENT" />వ అదనపు కంటెంట్ ఎంచుకోబడింది</translation>
@@ -3827,7 +3828,7 @@
 <translation id="508059534790499809">Kerberos టిక్కెట్‌ను రిఫ్రెష్ చేయండి</translation>
 <translation id="5084230410268011727">చలనం మరియు కాంతి సర్దుబాటు సెన్సార్‌లను ఉపయోగించడానికి సైట్‌లను అనుమతించు</translation>
 <translation id="5084328598860513926">కేటాయింపు విధానానికి అంతరాయం ఏర్పడింది. దయచేసి మళ్లీ ట్రై చేయండి లేదా మీ పరికర ఓనర్‌ను లేదా అడ్మినిస్ట్రేట‌ర్‌ను సంప్రదించండి. ఎర్రర్ కోడ్: <ph name="ERROR_CODE" />.</translation>
-<translation id="5085162214018721575">నవీకరణల కోసం తనిఖీ చేయడం</translation>
+<translation id="5085162214018721575">అప్‌డేట్‌ల కోసం తనిఖీ చేయడం</translation>
 <translation id="5085561329775168253">Google Play స్టోర్‌లో క్రియేటివ్‌గా ఉండే, పని సామర్థ్యాన్ని పెంచే, అలాగే వినోదాన్ని అందించే యాప్‌లను పొందండి</translation>
 <translation id="5086082738160935172">HID</translation>
 <translation id="5086874064903147617">డిఫాల్ట్ హోమ్ పేజీని పునరుద్ధరించాలా?</translation>
@@ -5170,6 +5171,7 @@
 <translation id="657402800789773160">ఈ పేజీని &amp;రీలోడ్ చేయి</translation>
 <translation id="6577284282025554716">డౌన్‌లోడ్ రద్దు చేయబడింది: <ph name="FILE_NAME" /></translation>
 <translation id="657866106756413002">నెట్‌వర్క్ హెల్త్ స్నాప్‌షాట్</translation>
+<translation id="6579369886355986318">అన్ని కంట్రోల్‌లను చూడండి</translation>
 <translation id="6579705087617859690"><ph name="WINDOW_TITLE" /> - డెస్క్‌టాప్‌ కంటెంట్‌ షేర్ చేయబడింది</translation>
 <translation id="6580203076670148210">స్కానింగ్ వేగం</translation>
 <translation id="6582080224869403177">మీ భద్రతను అప్‌గ్రేడ్ చేయడానికి మీ <ph name="DEVICE_TYPE" />ని రీసెట్ చేయండి</translation>
@@ -5609,6 +5611,7 @@
 <translation id="7044124535091449260">సైట్ యాక్సెస్ గురించి మరింత తెలుసుకోండి</translation>
 <translation id="7044606776288350625">డేటా సింక్</translation>
 <translation id="7047059339731138197">నేపథ్యాన్ని ఎంచుకోండి</translation>
+<translation id="7048457618657122233"><ph name="SHARE_TARGET" />కు లింక్‌ను షేర్ చేయండి</translation>
 <translation id="7049293980323620022">ఫైల్ అలాగే ఉంచాలా?</translation>
 <translation id="7052237160939977163">పనితీరు గుర్తింపు డేటాను పంపు</translation>
 <translation id="7053983685419859001">నిరోధించు</translation>
@@ -5653,7 +5656,7 @@
 <translation id="7098389117866926363">USB-C పరికరం (వెనుక భాగంలో ఎడమ పోర్ట్)</translation>
 <translation id="7098447629416471489">సేవ్ చేసిన ఇతర శోధన ఇంజిన్‌లు ఇక్కడ కనిపిస్తాయి</translation>
 <translation id="7099337801055912064">పెద్ద PPDని లోడ్ చేయడం సాధ్యం కాదు. గరిష్ట పరిమాణం 250 kB.</translation>
-<translation id="7102687220333134671">స్వయంచాలక నవీకరణలు ఆన్ చేయబడ్డాయి</translation>
+<translation id="7102687220333134671">స్వయంచాలక అప్‌డేట్‌లు ఆన్ చేయబడ్డాయి</translation>
 <translation id="7102832101143475489">అభ్యర్థన సమయం ముగిసింది</translation>
 <translation id="710640343305609397">నెట్‌వర్క్ సెట్టింగ్‌లను తెరవండి</translation>
 <translation id="7108338896283013870">దాచిపెట్టు</translation>
@@ -6128,7 +6131,7 @@
 <translation id="7631014249255418691">Linux యాప్‌లు, ఫైళ్లు విజయవంతంగా బ్యాకప్ చేయబడ్డాయి</translation>
 <translation id="7631205654593498032">మీరు మీ పరికరాలను కనెక్ట్ చేసినప్పుడు, మీ <ph name="DEVICE_TYPE" /> ఈ కింది వాటిని చేయవచ్చని అంగీకరిస్తున్నారు:</translation>
 <translation id="7631887513477658702">&amp;ఎల్లప్పుడూ ఈ రకం ఫైళ్ళను తెరువు</translation>
-<translation id="7632948528260659758">క్రింది కియోస్క్ యాప్‌ల నవీకరణ విఫలమైంది:</translation>
+<translation id="7632948528260659758">క్రింది కియోస్క్ యాప్‌ల అప్‌డేట్‌ విఫలమైంది:</translation>
 <translation id="7633724038415831385">ఈ ఒక్క సమయంలో మాత్రమే మీరు అప్‌డేట్ కోసం వేచి ఉండాల్సి వస్తుంది. Chromebookలో, సాఫ్ట్‌వేర్ అప్‌డేట్‌లు బ్యాక్‌గ్రౌండ్‌లోనే జరుగుతాయి.</translation>
 <translation id="7634566076839829401">ఏదో తప్పు జరిగింది. దయచేసి మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="7635048370253485243">మీ అడ్మినిస్ట్రేటర్ పిన్ చేశారు</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 17a8630..76efbcd 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -443,6 +443,7 @@
 <translation id="1476088332184200792">คัดลอกไปยังอุปกรณ์ของคุณ</translation>
 <translation id="1476607407192946488">&amp;การตั้งค่าภาษา</translation>
 <translation id="1477446329585670721">คุณต้องเสียบสมาร์ทการ์ดไว้ตลอดเพื่อให้ใช้งาน <ph name="DOMAIN" /> ได้</translation>
+<translation id="1477654881618305065">องค์กรของคุณไม่อนุญาตให้แชร์เนื้อหานี้ หากต้องการความช่วยเหลือ โปรดติดต่อผู้ดูแลระบบ</translation>
 <translation id="1478340334823509079">รายละเอียด: <ph name="FILE_NAME" /></translation>
 <translation id="1478607704480248626">ไม่ได้เปิดใช้การติดตั้ง</translation>
 <translation id="1480571698637441426">หากต้องการคำตอบที่ปรับเปลี่ยนให้เหมาะกับคุณเมื่อถามคำถาม โปรดอนุญาตให้ Assistant เข้าถึงภาพสิ่งที่อยู่บนหน้าจอ ซึ่งอาจรวมถึงข้อมูลเกี่ยวกับเพลงหรือวิดีโอที่กำลังเล่นอยู่ด้วย</translation>
@@ -618,6 +619,7 @@
 <translation id="1643921258693943800">หากต้องการใช้การแชร์ใกล้เคียง ให้เปิดบลูทูธและ Wi-Fi</translation>
 <translation id="1644574205037202324">ประวัติการเข้าชม</translation>
 <translation id="1645516838734033527">Smart Lock จำเป็นต้องใช้การล็อกหน้าจอในโทรศัพท์เพื่อรักษา <ph name="DEVICE_TYPE" /> ของคุณให้ปลอดภัย</translation>
+<translation id="1646793251510634025">ตรวจสอบการตั้งค่าสำหรับการเพิ่มประสิทธิภาพการค้นหาและการท่องเว็บ</translation>
 <translation id="1646982517418478057">โปรดป้อนรหัสผ่านเพื่อเข้ารหัสใบรับรองนี้</translation>
 <translation id="1648528859488547844">ใช้ Wi‑Fi หรือเครือข่ายมือถือเพื่อระบุตำแหน่ง</translation>
 <translation id="164936512206786300">เลิกจับคู่อุปกรณ์บลูทูธ</translation>
@@ -1460,6 +1462,7 @@
 <translation id="2514326558286966059">ปลดล็อกได้เร็วขึ้นด้วยลายนิ้วมือ</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2515807442171220586">กำหนดสวิตช์เพิ่มอีก 1 อัน</translation>
+<translation id="251722524540674480">ยืนยันชื่อผู้ใช้ของคุณ</translation>
 <translation id="2517472476991765520">สแกน</translation>
 <translation id="2518024842978892609">ใช้ใบรับรองไคลเอ็นต์</translation>
 <translation id="2519517390894391510">ชื่อโปรไฟล์ใบรับรอง</translation>
@@ -2164,6 +2167,7 @@
 <translation id="3288047731229977326">ส่วนขยายที่ทำงานอยู่ในโหมดนักพัฒนาซอฟต์แวร์อาจเป็นอันตรายต่อคอมพิวเตอร์ของคุณ หากคุณไม่ใช่นักพัฒนาซอฟต์แวร์ คุณควรปิดส่วนขยายที่ทำงานอยู่ในโหมดนักพัฒนาซอฟต์แวร์เพื่อรักษาความปลอดภัย</translation>
 <translation id="3289668031376215426">ปรับเป็นตัวพิมพ์ใหญ่อัตโนมัติ</translation>
 <translation id="3289856944988573801">ในการตรวจหาการอัปเดต โปรดใช้อีเทอร์เน็ตหรือ WiFi</translation>
+<translation id="3291436823898732747">การท่องเว็บที่ได้รับการปรับปรุง เช่น คำแนะนำในแถบอเนกประสงค์ก่อนเริ่มพิมพ์</translation>
 <translation id="3293644607209440645">ส่งหน้านี้</translation>
 <translation id="32939749466444286">คอนเทนเนอร์ Linux ไม่เริ่มทำงาน โปรดลองอีกครั้ง</translation>
 <translation id="3294437725009624529">ผู้มาเยือน</translation>
@@ -2650,7 +2654,6 @@
 <translation id="3797900183766075808">&amp;ค้นหา “<ph name="SEARCH_TERMS" />” ด้วย <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798449238516105146">รุ่น</translation>
 <translation id="3799128412641261490">การตั้งค่าการเข้าถึงด้วยสวิตช์</translation>
-<translation id="3799903419983101749">ดำเนินการต่อจากที่ค้างอยู่ คุณสามารถตั้งให้ระบบคืนค่าแอปโดยอัตโนมัติได้ใน "การตั้งค่า"</translation>
 <translation id="3800806661949714323">แสดงทั้งหมด (แนะนำ)</translation>
 <translation id="380329542618494757">ชื่อ</translation>
 <translation id="3803345858388753269">คุณภาพวิดีโอ</translation>
@@ -3503,7 +3506,7 @@
 <translation id="4733793249294335256">ตำแหน่ง</translation>
 <translation id="473546211690256853">บัญชีนี้จัดการโดย <ph name="DOMAIN" /></translation>
 <translation id="4735803855089279419">ระบบระบุตัวบ่งชี้อุปกรณ์ของอุปกรณ์นี้ไม่สำเร็จ</translation>
-<translation id="473581466100273252">สลับรายการที่เพิ่งปิดไป</translation>
+<translation id="473581466100273252">สลับการแสดง/ซ่อนรายการที่เพิ่งปิดไป</translation>
 <translation id="4736292055110123391">ซิงค์บุ๊กมาร์ก รหัสผ่าน ประวัติการเข้าชม และอื่นๆ ในอุปกรณ์ทุกเครื่อง</translation>
 <translation id="473775607612524610">อัปเดต</translation>
 <translation id="473936925429402449">เลือกเนื้อหาเพิ่มเติม <ph name="CURRENT_ELEMENT" /> จาก <ph name="TOTAL_ELEMENTS" /> รายการ</translation>
@@ -4118,7 +4121,6 @@
 <translation id="5430931332414098647">การเชื่อมต่อ Wi-Fi ฮอตสปอตจากมือถือโดยอัตโนมัติ</translation>
 <translation id="5431318178759467895">สี</translation>
 <translation id="543338862236136125">แก้ไขรหัสผ่าน</translation>
-<translation id="5433791271511851494">องค์กรของคุณเป็นผู้จัดการตัวเลือกการแชร์</translation>
 <translation id="5434065355175441495">PKCS #1 การเข้ารหัส RSA</translation>
 <translation id="5435779377906857208">อนุญาตให้ <ph name="HOST" /> เข้าถึงตำแหน่งของคุณเสมอ</translation>
 <translation id="5436492226391861498">กำลังรอช่องทางการเชื่อมต่อพร็อกซี...</translation>
@@ -4200,6 +4202,7 @@
 <translation id="5505307013568720083">หมึกหมด</translation>
 <translation id="5505794066310932198">สลับตัวออกคำสั่ง</translation>
 <translation id="5507756662695126555">การป้องกันการปฏิเสธความรับผิดชอบต่อข้อมูล</translation>
+<translation id="5507795078844206688">URL ของหน้าที่คุณเข้าชม เช่น https://www.google.com</translation>
 <translation id="5509693895992845810">บันทึกเ&amp;ป็น...</translation>
 <translation id="5509914365760201064">ผู้ออก: <ph name="CERTIFICATE_AUTHORITY" /></translation>
 <translation id="5510775624736435856">รับคำอธิบายรูปภาพจาก Google</translation>
@@ -4516,6 +4519,7 @@
 <translation id="5869522115854928033">รหัสผ่านที่บันทึกไว้</translation>
 <translation id="5870086504539785141">ปิดเมนูการเข้าถึง</translation>
 <translation id="5870155679953074650">ฮาร์ดฟอลต์</translation>
+<translation id="5875534259258494936">การแชร์หน้าจอสิ้นสุดแล้ว</translation>
 <translation id="5876576639916258720">กำลังทำงาน...</translation>
 <translation id="5876851302954717356">แท็บใหม่อยู่ด้านขวา</translation>
 <translation id="5877064549588274448">เปลี่ยนช่องแล้ว รีสตาร์ทอุปกรณ์เพื่อใช้การเปลี่ยนแปลง</translation>
@@ -5375,6 +5379,7 @@
 <translation id="6812349420832218321">ไม่สามารถเรียกใช้ <ph name="PRODUCT_NAME" /> ในฐานะผู้ใช้ระดับราก</translation>
 <translation id="6812841287760418429">เก็บการเปลี่ยนแปลงไว้</translation>
 <translation id="6813907279658683733">ทั้งหน้าจอ</translation>
+<translation id="6814033694018386318">สิ่งที่คุณแชร์กับ Google</translation>
 <translation id="6817174620439930047">ถามเมื่อเว็บไซต์ต้องการใช้ข้อความเฉพาะของระบบในการเข้าถึงอุปกรณ์ MIDI (แนะนำ)</translation>
 <translation id="6818198425579322765">ภาษาปลายทางของหน้า</translation>
 <translation id="6818802132960437751">ระบบป้องกันไวรัสในตัว</translation>
@@ -5870,6 +5875,7 @@
 <translation id="7374376573160927383">จัดการอุปกรณ์ USB</translation>
 <translation id="7374461526650987610">เครื่องจัดการโปรโตคอล</translation>
 <translation id="7375235221357833624">{0,plural, =1{อัปเดตอุปกรณ์ภายใน 1 ชั่วโมง}other{อัปเดตอุปกรณ์ภายใน # ชั่วโมง}}</translation>
+<translation id="7376543451826039186">การท่องเว็บที่เร็วขึ้น เช่น โหลดเนื้อหาเฉพาะเจาะจงตามหน้าปัจจุบันโดยไม่ต้องขอ</translation>
 <translation id="7376553024552204454">ไฮไลต์เคอร์เซอร์เมาส์เมื่อขยับ</translation>
 <translation id="737728204345822099">ระบบอาจเก็บบันทึกการเข้าชมเว็บไซต์นี้ไว้ในคีย์ความปลอดภัย</translation>
 <translation id="7377451353532943397">บล็อกการเข้าถึงเซ็นเซอร์ต่อไป</translation>
@@ -5927,6 +5933,7 @@
 <translation id="7427798576651127129">โทรจาก <ph name="DEVICE_NAME" /></translation>
 <translation id="7431719494109538750">ไม่พบอุปกรณ์ HID</translation>
 <translation id="7431991332293347422">ควบคุมการใช้ประวัติการท่องเว็บเพื่อปรับเปลี่ยน Search และบริการอื่นๆ ในแบบของคุณ</translation>
+<translation id="7432200167665670017">ผู้ดูแลระบบของคุณบล็อก "<ph name="EXTENSION_NAME" />" ไว้ - รหัสแอป <ph name="EXTENSION_ID" /></translation>
 <translation id="7433708794692032816">เสียบสมาร์ทการ์ดเพื่อให้ใช้ <ph name="DEVICE_TYPE" /> ได้ต่อไป</translation>
 <translation id="7433957986129316853">เก็บไว้</translation>
 <translation id="7434509671034404296">นักพัฒนา</translation>
@@ -5956,6 +5963,7 @@
 <translation id="7460045493116006516">ธีมที่คุณติดตั้งอยู่ตอนนี้</translation>
 <translation id="7461924472993315131">ตรึง</translation>
 <translation id="746216226901520237">โทรศัพท์จะปลดล็อก <ph name="DEVICE_TYPE" /> ของคุณในครั้งถัดไป คุณปิด Smart Lock ได้ในการตั้งค่า</translation>
+<translation id="7464637891177137294">บันทึกไว้ในบัญชี Google ของคุณ <ph name="ACCOUNT" /></translation>
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{มีแท็บที่เปิดอยู่ # แท็บ กดเพื่อสลับแนวแท็บ}other{มีแท็บที่เปิดอยู่ # แท็บ กดเพื่อสลับแนวแท็บ}}</translation>
 <translation id="7465635034594602553">เกิดข้อผิดพลาด โปรดรอสักครู่แล้วเรียกใช้ <ph name="APP_NAME" /> อีกครั้ง</translation>
 <translation id="7465778193084373987">URL การเพิกถอนใบรับรองของ Netscape</translation>
@@ -6019,6 +6027,7 @@
 <translation id="7525625923260515951">ฟังข้อความที่เลือก</translation>
 <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{อีก 1 รายการ}other{อีก {NUM_DOWNLOADS} รายการ}}</translation>
 <translation id="7526989658317409655">ตัวยึดตำแหน่ง</translation>
+<translation id="7527758104894292229">อัปเดตในบัญชี Google ของคุณ <ph name="ACCOUNT" /></translation>
 <translation id="7529411698175791732">ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ หากปัญหายังคงอยู่ ให้ลองออกจากระบบและลงชื่อเข้าใช้อีกครั้ง</translation>
 <translation id="7529876053219658589">{0,plural, =1{ปิดหน้าต่างสำหรับผู้มาเยือน}other{ปิดหน้าต่างสำหรับผู้มาเยือน}}</translation>
 <translation id="7530016656428373557">อัตราการใช้ไฟฟ้าเป็นวัตต์</translation>
@@ -6404,6 +6413,7 @@
 <translation id="7898725031477653577">แปลทุกครั้ง</translation>
 <translation id="790040513076446191">จัดการการตั้งค่าที่เกี่ยวข้องกับความเป็นส่วนตัว</translation>
 <translation id="7901405293566323524">ฮับโทรศัพท์</translation>
+<translation id="7901914889562552258">Chrome ที่ได้รับการปรับปรุงโดยใช้เมตริกของหน้าเว็บ</translation>
 <translation id="7903345046358933331">หน้าไม่ตอบสนอง คุณสามารถรอจนกระทั่งหน้าตอบสนอง หรือปิดหน้านั้น</translation>
 <translation id="7903742244674067440">คุณมีใบรับรองของไฟล์ซึ่งระบุตัวตนของผู้ออกใบรับรองเหล่านี้</translation>
 <translation id="7903859912536385558">เสถียร (ผู้ทดสอบที่เชื่อถือได้)</translation>
@@ -6870,6 +6880,7 @@
 <translation id="8392364544846746346">ถามเมื่อเว็บไซต์ต้องการแก้ไขไฟล์หรือโฟลเดอร์ในอุปกรณ์</translation>
 <translation id="8392451568018454956">เมนูตัวเลือกสำหรับ <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8393511274964623038">หยุดปลั๊กอิน</translation>
+<translation id="839363317075970734">รายละเอียดอุปกรณ์บลูทูธ</translation>
 <translation id="8393700583063109961">ส่งข้อความ</translation>
 <translation id="8397825320644530257">ยกเลิกการเชื่อมต่อโทรศัพท์ที่เชื่อมต่ออยู่</translation>
 <translation id="8398877366907290961">ดำเนินการต่อ</translation>
@@ -7120,6 +7131,7 @@
 <translation id="8681614230122836773">Chrome พบซอฟต์แวร์ที่เป็นอันตรายในคอมพิวเตอร์ของคุณ</translation>
 <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> เชื่อมต่อแล้วและพร้อมทำงาน</translation>
 <translation id="8683081248374354009">รีเซ็ตกลุ่ม</translation>
+<translation id="8683526617475118045">สิ่งที่คุณจะได้รับ</translation>
 <translation id="8688672835843460752">มีอยู่</translation>
 <translation id="8690129572193755009">เว็บไซต์สามารถขอจัดการโปรโตคอลได้</translation>
 <translation id="8695139659682234808">เพิ่มการควบคุมโดยผู้ปกครองหลังจากที่ตั้งค่า</translation>
@@ -7173,6 +7185,7 @@
 <translation id="8737685506611670901">เปิดลิงก์ <ph name="PROTOCOL" /> แทน <ph name="REPLACED_HANDLER_TITLE" /></translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">เลือกภาษาปลายทางของหน้าเว็บ</translation>
+<translation id="8737916108453753541">URL จะแชร์กับ Google เพื่อทำความเข้าใจพฤติกรรมการท่องเว็บ</translation>
 <translation id="8740247629089392745">คุณส่งมอบ Chromebook เครื่องนี้ให้ <ph name="SUPERVISED_USER_NAME" /> ได้ การตั้งค่าใกล้เสร็จแล้ว จากนั้นก็ได้เวลาแห่งการสำรวจ</translation>
 <translation id="8741944563400125534">คู่มือการตั้งค่าการเข้าถึงด้วยสวิตช์</translation>
 <translation id="8742998548129056176">นี่คือข้อมูลทั่วไปเกี่ยวกับอุปกรณ์และวิธีที่คุณใช้งานอุปกรณ์ (เช่น ระดับแบตเตอรี่ กิจกรรมในระบบและแอป ตลอดจนข้อผิดพลาด) ระบบจะใช้ข้อมูลเพื่อปรับปรุง Android และข้อมูลที่รวบรวมมาบางส่วนจะช่วยให้แอปและพาร์ทเนอร์ของ Google เช่น นักพัฒนาแอป Android พัฒนาแอปและผลิตภัณฑ์ของตนให้ดีขึ้น</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 1c0c348..fd26187 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -2649,7 +2649,6 @@
 <translation id="3797900183766075808">"<ph name="SEARCH_TERMS" />" İçin <ph name="SEARCH_ENGINE" /> &amp;Üzerinde Arama Yap</translation>
 <translation id="3798449238516105146">Sürüm</translation>
 <translation id="3799128412641261490">Anahtar erişimi ayarları</translation>
-<translation id="3799903419983101749">Kaldığınız yerden devam edin. Ayarlar'da, uygulamaları otomatik olarak geri yüklenecek şekilde ayarlayabilirsiniz.</translation>
 <translation id="3800806661949714323">Tümünü göster (önerilen)</translation>
 <translation id="380329542618494757">Ad</translation>
 <translation id="3803345858388753269">Video Kalitesi</translation>
@@ -4117,7 +4116,6 @@
 <translation id="5430931332414098647">Anında Tethering</translation>
 <translation id="5431318178759467895">Renk</translation>
 <translation id="543338862236136125">Şifreyi düzenle</translation>
-<translation id="5433791271511851494">Paylaşım seçeneklerini kuruluşunuz yönetir.</translation>
 <translation id="5434065355175441495">PKCS #1 RSA Şifrelemesi</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> sitesinin konumuma erişmesine her zaman izin ver</translation>
 <translation id="5436492226391861498">Proxy tüneli bekleniyor...</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index fc0b894..c9484f68 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -2669,7 +2669,6 @@
 <translation id="3797900183766075808">&amp;Шукати "<ph name="SEARCH_TERMS" />" у <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="3798449238516105146">Версія</translation>
 <translation id="3799128412641261490">Налаштування кнопкового доступу</translation>
-<translation id="3799903419983101749">Продовжуйте роботу з місця зупинки. Ви можете вибрати автоматичне відновлення додатків у налаштуваннях.</translation>
 <translation id="3800806661949714323">Показати всі (рекомендовано)</translation>
 <translation id="380329542618494757">Повне ім’я</translation>
 <translation id="3803345858388753269">Якість відео</translation>
@@ -4138,7 +4137,6 @@
 <translation id="5430931332414098647">Миттєва точка доступу</translation>
 <translation id="5431318178759467895">Колір</translation>
 <translation id="543338862236136125">Змінити пароль</translation>
-<translation id="5433791271511851494">Параметрами спільного доступу керує адміністратор вашої організації.</translation>
 <translation id="5434065355175441495">PKCS #1 шифрування RSA</translation>
 <translation id="5435779377906857208">Завжди надавати сайту <ph name="HOST" /> доступ до ваших геоданих</translation>
 <translation id="5436492226391861498">Очікування тунелю проксі-сервера...</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index e36c6139..ae1eff2d 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -2650,7 +2650,6 @@
 <translation id="3797900183766075808">"<ph name="SEARCH_TERMS" />" کو <ph name="SEARCH_ENGINE" /> میں تلاش کریں</translation>
 <translation id="3798449238516105146">ورژن</translation>
 <translation id="3799128412641261490">سوئچ رسائی کی ترتیبات</translation>
-<translation id="3799903419983101749">جہاں سے آف نے چھوڑا ہے وہاں سے جاری رکھیں۔ آپ ایپس کو ترتیبات میں خودکار طور پر بحالی پر سیٹ کر سکتے ہیں۔</translation>
 <translation id="3800806661949714323">سبھی دکھائیں (تجویز کردہ)</translation>
 <translation id="380329542618494757">نام</translation>
 <translation id="3803345858388753269">ویڈیو کا معیار</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">فوری ٹیدرنگ</translation>
 <translation id="5431318178759467895">رنگ</translation>
 <translation id="543338862236136125">پاس ورڈ میں ترمیم کریں</translation>
-<translation id="5433791271511851494">اشتراک کے اختیارات آپ کی تنظیم کے زیر انتظام ہیں۔</translation>
 <translation id="5434065355175441495">‏PKCS #1 RSA مرموزکاری</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> کو ہمیشہ اپنے مقام تک رسائی کی اجازت دیں</translation>
 <translation id="5436492226391861498">پراکسی ٹنل کا انتظار ہے…</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index e6e6f6c..1d6f377 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -2657,7 +2657,6 @@
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> qidiruv tizimidan “<ph name="SEARCH_TERMS" />” deb &amp;qidirish</translation>
 <translation id="3798449238516105146">Versiya</translation>
 <translation id="3799128412641261490">Switch Access sozlamalari</translation>
-<translation id="3799903419983101749">Ishni qolgan joydan davom ettiring. Sozlamalar orqali avtomatik tiklanadigan ilovalarni tanlash mumkin.</translation>
 <translation id="3800806661949714323">Hammasini ko‘rsatish (tavsiya etiladi)</translation>
 <translation id="380329542618494757">Ism</translation>
 <translation id="3803345858388753269">Video sifati</translation>
@@ -4126,7 +4125,6 @@
 <translation id="5430931332414098647">Tezkor modem rejimi</translation>
 <translation id="5431318178759467895">Rang</translation>
 <translation id="543338862236136125">Parolni almashtirish</translation>
-<translation id="5433791271511851494">Tashkilot boshqaruvidagi ulashuv parametrlari</translation>
 <translation id="5434065355175441495">PKCS #1 RSA Shifrlash</translation>
 <translation id="5435779377906857208"><ph name="HOST" /> uchun joylashuvingiz axborotidan doim foydalanishga ruxsat berilsin</translation>
 <translation id="5436492226391861498">Proksi-server tuneli yaratilishi kutilmoqda...</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 74064a9..53470ae 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -2666,7 +2666,6 @@
 <translation id="3797900183766075808">&amp;Tìm kiếm trên <ph name="SEARCH_ENGINE" /> cho “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798449238516105146">Phiên bản</translation>
 <translation id="3799128412641261490">Cài đặt tính năng Tiếp cận bằng công tắc</translation>
-<translation id="3799903419983101749">Tiếp tục ở trạng thái trước đó. Trong phần Cài đặt, bạn có thể thiết lập để các ứng dụng tự động khôi phục.</translation>
 <translation id="3800806661949714323">Hiển thị tất cả (được đề xuất)</translation>
 <translation id="380329542618494757">Tên</translation>
 <translation id="3803345858388753269">Chất lượng video</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">Chia sẻ Internet tức thì</translation>
 <translation id="5431318178759467895">Màu</translation>
 <translation id="543338862236136125">Chỉnh sửa mật khẩu</translation>
-<translation id="5433791271511851494">Các lựa chọn chia sẻ do tổ chức của bạn quản lý.</translation>
 <translation id="5434065355175441495">PKCS #1 Mã hóa RSA</translation>
 <translation id="5435779377906857208">Luôn cho phép <ph name="HOST" /> truy cập thông tin vị trí của bạn</translation>
 <translation id="5436492226391861498">Chờ đường hầm proxy...</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 02d9876..03c2b36 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -2647,7 +2647,6 @@
 <translation id="3797900183766075808">使用<ph name="SEARCH_ENGINE" />搜索“<ph name="SEARCH_TERMS" />”(&amp;S)</translation>
 <translation id="3798449238516105146">版本</translation>
 <translation id="3799128412641261490">开关控制设置</translation>
-<translation id="3799903419983101749">从先前中断之处继续操作。您可在“设置”中将应用设为自动恢复。</translation>
 <translation id="3800806661949714323">显示全部(推荐)</translation>
 <translation id="380329542618494757">名称</translation>
 <translation id="3803345858388753269">视频画质</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index ebe7773..8e52f8c 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -2665,7 +2665,6 @@
 <translation id="3797900183766075808">在 <ph name="SEARCH_ENGINE" /> 上搜尋「<ph name="SEARCH_TERMS" />」(&amp;S)</translation>
 <translation id="3798449238516105146">版本</translation>
 <translation id="3799128412641261490">「按鈕控制」設定</translation>
-<translation id="3799903419983101749">繼續進行還原程序。您可在「設定」中將應用程式設定為自動還原。</translation>
 <translation id="3800806661949714323">顯示全部 (推薦)</translation>
 <translation id="380329542618494757">名稱</translation>
 <translation id="3803345858388753269">影片品質</translation>
@@ -4134,7 +4133,6 @@
 <translation id="5430931332414098647">即時網絡共享</translation>
 <translation id="5431318178759467895">顏色</translation>
 <translation id="543338862236136125">修改密碼</translation>
-<translation id="5433791271511851494">共用選項由您的機構管理</translation>
 <translation id="5434065355175441495">PKCS #1 RSA 加密</translation>
 <translation id="5435779377906857208">一律允許 <ph name="HOST" /> 存取您的位置</translation>
 <translation id="5436492226391861498">正在等待 Proxy 通道…</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 5785a5d..83cecdf 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -2651,7 +2651,6 @@
 <translation id="3797900183766075808">透過 <ph name="SEARCH_ENGINE" /> 搜尋「<ph name="SEARCH_TERMS" />」(&amp;S)</translation>
 <translation id="3798449238516105146">版本</translation>
 <translation id="3799128412641261490">開關功能設定</translation>
-<translation id="3799903419983101749">繼續進行還原程序。你可以在「設定」頁面中將應用程式設為自動還原。</translation>
 <translation id="3800806661949714323">全部顯示 (建議)</translation>
 <translation id="380329542618494757">姓名</translation>
 <translation id="3803345858388753269">視訊品質</translation>
@@ -4118,7 +4117,6 @@
 <translation id="5430931332414098647">即時網路共用</translation>
 <translation id="5431318178759467895">彩色</translation>
 <translation id="543338862236136125">修改密碼</translation>
-<translation id="5433791271511851494">共用選項是由貴機構所管理。</translation>
 <translation id="5434065355175441495">PKCS #1 RSA 加密</translation>
 <translation id="5435779377906857208">一律允許 <ph name="HOST" /> 存取你的位置資訊</translation>
 <translation id="5436492226391861498">正在等待 Proxy 通道...</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index 6037bb2a..b9c7e3f 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -2665,7 +2665,6 @@
 <translation id="3797900183766075808">&amp;Sesha i-<ph name="SEARCH_ENGINE" /> nge-'<ph name="SEARCH_TERMS" />'</translation>
 <translation id="3798449238516105146">Inguqulo</translation>
 <translation id="3799128412641261490">Amasethingi okufinyelela eswishi</translation>
-<translation id="3799903419983101749">Qhubeka lapho ugcine khona. Ungasetha ama-app ukuthi abuyisele ngokuzenzakalela Kumasethingi.</translation>
 <translation id="3800806661949714323">Bonisa konke (okuncoyiwe)</translation>
 <translation id="380329542618494757">Igama</translation>
 <translation id="3803345858388753269">Ikhwalithi yevidiyo</translation>
@@ -4135,7 +4134,6 @@
 <translation id="5430931332414098647">I-Tethering esheshayo</translation>
 <translation id="5431318178759467895">Umbala</translation>
 <translation id="543338862236136125">Hlela iphasiwedi</translation>
-<translation id="5433791271511851494">Izinketho zokwabelana ziphathwa inhlangano yakho.</translation>
 <translation id="5434065355175441495">Ukubethelwa kwe-PKCS #1 RSA</translation>
 <translation id="5435779377906857208">Vumela i-<ph name="HOST" /> njalo ukuba ifinyelele indawo yakho</translation>
 <translation id="5436492226391861498">Ilinde ithonela yommeleli...</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index dfcdfc9..5c5f9d4f 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -13,7 +13,7 @@
 <translation id="1182414570724401860">మీరు ఈ ఫైల్‌ను డౌన్‌లోడ్ చేయవద్దు లేదా తెరవవద్దని Chrome సిఫార్సు చేస్తుంది</translation>
 <translation id="1278833599417554002">&amp;Chromeను అప్‌డేట్ చేయడానికి రీ-లాంచ్ చేయండి</translation>
 <translation id="1293325835983155583"><ph name="MANAGER" /> కోసం ఈ పరికరాన్ని ఉపయోగించడానికి ముందు కింది సర్వీస్ నియమాలను మీరు చదివి, అంగీకరించాలి. ఈ నియమాలు Google Chrome OS నియమాలను విస్తరింపజేయవు, సవరించవు లేదా పరిమితం చేయవు.</translation>
-<translation id="1302523850133262269">దయచేసి Chrome తాజా సిస్టమ్ నవీకరణలను ఇన్‌స్టాల్ చేస్తున్నప్పుడు వేచి ఉండండి.</translation>
+<translation id="1302523850133262269">దయచేసి Chrome తాజా సిస్టమ్ అప్‌డేట్‌లను ఇన్‌స్టాల్ చేస్తున్నప్పుడు వేచి ఉండండి.</translation>
 <translation id="137466361146087520">Google Chrome బీటా</translation>
 <translation id="1399397803214730675">ఈ కంప్యూటర్‌లో ఇప్పటికే Google Chrome యొక్క తాజా వెర్షన్ ఉంది. సాఫ్ట్‌వేర్ పని చేయకపోతే, దయచేసి Google Chromeను అన్‌ఇన్‌స్టాల్ చేసి, మళ్ళీ ప్రయత్నించండి.</translation>
 <translation id="1434626383986940139">Chrome కెనరీ యాప్‌లు</translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index eda06b9..84571664 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -1332,6 +1332,15 @@
   <message name="IDS_SETTINGS_PRIVACY_REVIEW_SUBLABEL" desc="Sublabel of the row in the Chrome privacy and security of Chrome settings that leads to the privacy review.">
     Review the most important privacy and security controls in one place
   </message>
+  <message name="IDS_SETTINGS_PRIVACY_REVIEW_PROMO_TITLE" desc="Title of a card in the settings page that promotes the privacy review feature.">
+    Privacy review
+  </message>
+  <message name="IDS_SETTINGS_PRIVACY_REVIEW_PROMO_BODY" desc="Body text of a card in the settings page that explains what the privacy review feature is.">
+    Understand and review the most critical privacy settings in one place
+  </message>
+  <message name="IDS_SETTINGS_PRIVACY_REVIEW_PROMO_START_BUTTON" desc="Text of a button on a card in the settings page that starts the privacy review feature.">
+    Review my settings
+  </message>
   <message name="IDS_SETTINGS_PRIVACY_REVIEW_NEXT_BUTTON" desc="Text of a button in the privacy review that advances to the next step in the review.">
     Next
   </message>
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_BODY.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_BODY.png.sha1
new file mode 100644
index 0000000..f3203d1
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_BODY.png.sha1
@@ -0,0 +1 @@
+cf761fb97c4dd0ba1df58e813150bc0ddf1b6167
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_START_BUTTON.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_START_BUTTON.png.sha1
new file mode 100644
index 0000000..f3203d1
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_START_BUTTON.png.sha1
@@ -0,0 +1 @@
+cf761fb97c4dd0ba1df58e813150bc0ddf1b6167
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_TITLE.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_TITLE.png.sha1
new file mode 100644
index 0000000..f3203d1
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_PROMO_TITLE.png.sha1
@@ -0,0 +1 @@
+cf761fb97c4dd0ba1df58e813150bc0ddf1b6167
\ No newline at end of file
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 7da6d92..de1e07b 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2617,6 +2617,20 @@
 };
 #endif  // !defined(OS_ANDROID)
 
+#if defined(OS_ANDROID)
+// The variations of ContentLanguagesInLanguagePicker.
+const FeatureEntry::FeatureParam
+    kContentLanguagesInLanguagePickerDisableObservers[] = {
+        {language::kContentLanguagesDisableObserversParam, "true"}};
+
+const FeatureEntry::FeatureVariation
+    kContentLanguagesInLanguaePickerVariations[] = {
+        {"Without observers", kContentLanguagesInLanguagePickerDisableObservers,
+         base::size(kContentLanguagesInLanguagePickerDisableObservers),
+         nullptr},
+};
+#endif  // defined(OS_ANDROID)
+
 const FeatureEntry::FeatureParam kCheckOfflineCapabilityWarnOnly[] = {
     {"check_mode", "warn_only"}};
 const FeatureEntry::FeatureParam kCheckOfflineCapabilityEnforce[] = {
@@ -2704,13 +2718,18 @@
 const FeatureEntry::FeatureParam kContinuousSearchPermanentDismissal[] = {
     {"permanent_dismissal_threshold", "3"}};
 
+const FeatureEntry::FeatureParam kContinuousSearchDoubleRowChip[] = {
+    {"show_result_title", "true"}};
+
 const FeatureEntry::FeatureVariation kContinuousSearchFeatureVariations[] = {
     {"show after second SRP", kContinuousSearchAfterSecondSrp,
      base::size(kContinuousSearchAfterSecondSrp), nullptr},
     {"show on reverse scroll", kContinuousSearchOnReverseScroll,
      base::size(kContinuousSearchOnReverseScroll), nullptr},
     {"with permanent dismissal", kContinuousSearchPermanentDismissal,
-     base::size(kContinuousSearchPermanentDismissal), nullptr}};
+     base::size(kContinuousSearchPermanentDismissal), nullptr},
+    {"with double-row chips", kContinuousSearchDoubleRowChip,
+     base::size(kContinuousSearchDoubleRowChip), nullptr}};
 #endif  // defined(OS_ANDROID)
 
 // RECORDING USER METRICS FOR FLAGS:
@@ -7257,7 +7276,9 @@
     {"content-languages-in-language-picker",
      flag_descriptions::kContentLanguagesInLanguagePickerName,
      flag_descriptions::kContentLanguagesInLanguagePickerName, kOsAndroid,
-     FEATURE_VALUE_TYPE(language::kContentLanguagesInLanguagePicker)},
+     FEATURE_WITH_PARAMS_VALUE_TYPE(language::kContentLanguagesInLanguagePicker,
+                                    kContentLanguagesInLanguaePickerVariations,
+                                    "ContentLanguagesInLanguagePicker")},
 #endif
 
     {"filling-across-affiliated-websites",
diff --git a/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc b/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
index f2c0b5c..699b5fe 100644
--- a/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
+++ b/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.cc
@@ -32,6 +32,7 @@
 #include "components/search_engines/template_url.h"
 #include "components/search_engines/template_url_service.h"
 #include "components/variations/variations_associated_data.h"
+#include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
 #include "third_party/blink/public/mojom/permissions/permission_status.mojom.h"
 #include "url/origin.h"
@@ -56,17 +57,34 @@
 
 SearchGeolocationDisclosureTabHelper::~SearchGeolocationDisclosureTabHelper() {}
 
-void SearchGeolocationDisclosureTabHelper::NavigationEntryCommitted(
-    const content::LoadCommittedDetails& load_details) {
-  MaybeShowDisclosureForNavigation(web_contents()->GetVisibleURL());
+void SearchGeolocationDisclosureTabHelper::PrimaryPageChanged(
+    content::Page& page) {
+  content::RenderFrameHost* rfh = &page.GetMainDocument();
+  const GURL& gurl = rfh->GetLastCommittedURL();
+
+  if (!ShouldShowDisclosureForNavigation(gurl))
+    return;
+
+  MaybeShowDisclosureForValidUrl(rfh, gurl);
 }
 
 void SearchGeolocationDisclosureTabHelper::MaybeShowDisclosureForAPIAccess(
-    const GURL& gurl) {
-  if (!ShouldShowDisclosureForAPIAccess(gurl))
+    content::RenderFrameHost* rfh,
+    const GURL& requesting_origin) {
+  if (!rfh->GetPage().IsPrimary())
     return;
 
-  MaybeShowDisclosureForValidUrl(gurl);
+  // On Android, it is possible for a cross-origin navigation to reuse the
+  // same RFH and as a result, the origin of the RFH at the time the request
+  // was made might be different from the current origin. We don't want to
+  // consider this an API access by the primary page, so we return early.
+  if (rfh->GetLastCommittedOrigin().GetURL() != requesting_origin)
+    return;
+
+  if (!ShouldShowDisclosureForAPIAccess(requesting_origin))
+    return;
+
+  MaybeShowDisclosureForValidUrl(rfh, requesting_origin);
 }
 
 // static
@@ -106,15 +124,8 @@
       prefs::kSearchGeolocationPostDisclosureMetricsRecorded, false);
 }
 
-void SearchGeolocationDisclosureTabHelper::MaybeShowDisclosureForNavigation(
-    const GURL& gurl) {
-  if (!ShouldShowDisclosureForNavigation(gurl))
-    return;
-
-  MaybeShowDisclosureForValidUrl(gurl);
-}
-
 void SearchGeolocationDisclosureTabHelper::MaybeShowDisclosureForValidUrl(
+    content::RenderFrameHost* rfh,
     const GURL& gurl) {
   // Don't show the infobar if the user has dismissed it, or they've seen it
   // enough times already.
@@ -146,7 +157,8 @@
 
   // Only show disclosure if the DSE geolocation setting is on.
   if (PermissionManagerFactory::GetForProfile(GetProfile())
-          ->GetPermissionStatus(ContentSettingsType::GEOLOCATION, gurl, gurl)
+          ->GetPermissionStatusForCurrentDocument(
+              ContentSettingsType::GEOLOCATION, rfh)
           .content_setting != CONTENT_SETTING_ALLOW) {
     return;
   }
diff --git a/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.h b/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.h
index 1c10370..55dee5cb 100644
--- a/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.h
+++ b/chrome/browser/android/search_permissions/search_geolocation_disclosure_tab_helper.h
@@ -25,10 +25,10 @@
   ~SearchGeolocationDisclosureTabHelper() override;
 
   // content::WebContentsObserver overrides.
-  void NavigationEntryCommitted(
-      const content::LoadCommittedDetails& load_details) override;
+  void PrimaryPageChanged(content::Page& page) override;
 
-  void MaybeShowDisclosureForAPIAccess(const GURL& gurl);
+  void MaybeShowDisclosureForAPIAccess(content::RenderFrameHost* rfh,
+                                       const GURL& requesting_origin);
 
   static void ResetDisclosure(Profile* profile);
 
@@ -43,8 +43,8 @@
   friend class content::WebContentsUserData<
       SearchGeolocationDisclosureTabHelper>;
 
-  void MaybeShowDisclosureForNavigation(const GURL& gurl);
-  void MaybeShowDisclosureForValidUrl(const GURL& gurl);
+  void MaybeShowDisclosureForValidUrl(content::RenderFrameHost* rfh,
+                                      const GURL& gurl);
 
   // Determines if the disclosure should be shown for the URL when a navigation
   // to the URL occurs. This is the case whenever the URL is a result of an
diff --git a/chrome/browser/apps/app_service/webapk/webapk_policy_browsertest.cc b/chrome/browser/apps/app_service/webapk/webapk_policy_browsertest.cc
index ff6b23d..a2926b7 100644
--- a/chrome/browser/apps/app_service/webapk/webapk_policy_browsertest.cc
+++ b/chrome/browser/apps/app_service/webapk/webapk_policy_browsertest.cc
@@ -85,7 +85,13 @@
 // When there's no policy set, installing a Web App should install a WebAPK.
 // This test also acts as an integration test for the WebAPK installation
 // process.
-IN_PROC_BROWSER_TEST_F(WebApkPolicyBrowserTest, DefaultInstallWebApk) {
+// This test is flaky on ChromeOS. https://crbug.com/1237976
+#if defined(OS_CHROMEOS)
+#define MAYBE_DefaultInstallWebApk DISABLED_DefaultInstallWebApk
+#else
+#define MAYBE_DefaultInstallWebApk DefaultInstallWebApk
+#endif
+IN_PROC_BROWSER_TEST_F(WebApkPolicyBrowserTest, MAYBE_DefaultInstallWebApk) {
   const GURL app_url =
       embedded_test_server()->GetURL("/web_share_target/charts.html");
   const web_app::AppId app_id =
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest.cc b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
index 820362c..ff9f7ad0 100644
--- a/chrome/browser/ash/file_manager/file_manager_browsertest.cc
+++ b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
@@ -916,9 +916,7 @@
         TestCase("saveFileDialogDownloads").WithBrowser().InGuestMode(),
         TestCase("saveFileDialogDownloads").WithBrowser().InIncognito(),
 // TODO(crbug.com/1236842): Remove flakiness and enable this test.
-#if !defined(ADDRESS_SANITIZER) && defined(NDEBUG)
-        TestCase("saveFileDialogDownloadsNewFolderButton").WithBrowser(),
-#endif
+//        TestCase("saveFileDialogDownloadsNewFolderButton").WithBrowser(),
         TestCase("saveFileDialogPanelsDisabled").WithBrowser(),
         TestCase("openFileDialogCancelDownloads").WithBrowser(),
         TestCase("openFileDialogEscapeDownloads").WithBrowser(),
diff --git a/chrome/browser/ash/full_restore/arc_window_handler.cc b/chrome/browser/ash/full_restore/arc_window_handler.cc
index 5ddc509..d6942cc 100644
--- a/chrome/browser/ash/full_restore/arc_window_handler.cc
+++ b/chrome/browser/ash/full_restore/arc_window_handler.cc
@@ -49,10 +49,25 @@
 ArcWindowHandler::ArcWindowHandler() {
   exo::WMHelper::GetInstance()->RegisterAppPropertyResolver(
       std::make_unique<WindowSessionResolver>(&session_id_to_shell_surface_));
+  auto* lifetime_manager = exo::WMHelper::GetInstance()->GetLifetimeManager();
+  if (lifetime_manager)
+    lifetime_manager->AddObserver(this);
 }
 
 ArcWindowHandler::~ArcWindowHandler() = default;
 
+void ArcWindowHandler::OnDestroyed() {
+  // Destroy all ARC ghost window when Wayland server shutdown.
+  std::vector<int> session_ids;
+  for (const auto& session_id : session_id_to_shell_surface_)
+    session_ids.push_back(session_id.first);
+
+  for (auto session_id : session_ids)
+    CloseWindow(session_id);
+
+  session_id_to_pending_window_info_.clear();
+}
+
 void ArcWindowHandler::LaunchArcGhostWindow(
     const std::string& app_id,
     int32_t session_id,
@@ -95,7 +110,6 @@
 
   for (auto& observer : observer_list_)
     observer.OnWindowCloseRequested(session_id);
-
   session_id_to_shell_surface_.erase(it);
 }
 
diff --git a/chrome/browser/ash/full_restore/arc_window_handler.h b/chrome/browser/ash/full_restore/arc_window_handler.h
index bed9ec5c..76798230 100644
--- a/chrome/browser/ash/full_restore/arc_window_handler.h
+++ b/chrome/browser/ash/full_restore/arc_window_handler.h
@@ -20,7 +20,7 @@
 namespace full_restore {
 
 // The ArcWindowHandler class provides control for ARC ghost window.
-class ArcWindowHandler {
+class ArcWindowHandler : public exo::WMHelper::LifetimeManager::Observer {
   // Map from window_session_id to exo::ClientControlledShellSurface.
   using ShellSurfaceMap =
       std::map<int, std::unique_ptr<exo::ClientControlledShellSurface>>;
@@ -62,7 +62,7 @@
   ArcWindowHandler();
   ArcWindowHandler(const ArcWindowHandler&) = delete;
   ArcWindowHandler& operator=(const ArcWindowHandler&) = delete;
-  ~ArcWindowHandler();
+  ~ArcWindowHandler() override;
 
   void LaunchArcGhostWindow(const std::string& app_id,
                             int32_t session_id,
@@ -81,6 +81,9 @@
                            int64_t display_id,
                            gfx::Rect bounds);
 
+  // Override exo::WMHelper::LifetimeManager::Observer.
+  void OnDestroyed() override;
+
  private:
   bool is_app_instance_connected_ = false;
 
diff --git a/chrome/browser/ash/policy/dlp/dlp_content_manager_browsertest.cc b/chrome/browser/ash/policy/dlp/dlp_content_manager_browsertest.cc
index 0ec4bc1..ad61cb6 100644
--- a/chrome/browser/ash/policy/dlp/dlp_content_manager_browsertest.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_content_manager_browsertest.cc
@@ -6,7 +6,6 @@
 
 #include "base/callback_helpers.h"
 #include "base/json/json_writer.h"
-#include "base/strings/utf_string_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/values.h"
 #include "chrome/browser/ash/policy/core/user_policy_test_helper.h"
@@ -23,9 +22,10 @@
 #include "chrome/browser/ash/policy/login/login_policy_test_base.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "chrome/browser/policy/messaging_layer/public/report_queue_impl.h"
-#include "chrome/browser/policy/policy_test_utils.h"
 #include "chrome/browser/printing/print_view_manager.h"
 #include "chrome/browser/printing/print_view_manager_common.h"
+#include "chrome/browser/printing/test_print_preview_dialog_cloned_observer.h"
+#include "chrome/browser/printing/test_print_view_manager_for_request_preview.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/ui/ash/chrome_capture_mode_delegate.h"
 #include "chrome/browser/ui/ash/screenshot_area.h"
@@ -34,9 +34,7 @@
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
-#include "components/policy/core/common/policy_map.h"
 #include "components/policy/policy_constants.h"
-#include "components/printing/common/print.mojom.h"
 #include "components/reporting/storage/test_storage_module.h"
 #include "content/public/browser/desktop_media_id.h"
 #include "content/public/test/browser_test.h"
@@ -87,64 +85,6 @@
 constexpr char kUrl3[] = "https://example3.com";
 constexpr char kUrl4[] = "https://example4.com";
 constexpr char kSrcPattern[] = "example.com";
-
-class TestPrintViewManager : public printing::PrintViewManager {
- public:
-  explicit TestPrintViewManager(content::WebContents* web_contents)
-      : PrintViewManager(web_contents) {}
-  TestPrintViewManager(const TestPrintViewManager&) = delete;
-  TestPrintViewManager& operator=(const TestPrintViewManager&) = delete;
-  ~TestPrintViewManager() override = default;
-
-  static TestPrintViewManager* FromWebContents(
-      content::WebContents* web_contents) {
-    return static_cast<TestPrintViewManager*>(
-        printing::PrintViewManager::FromWebContents(web_contents));
-  }
-
-  // Create TestPrintViewManager with PrintViewManager::UserDataKey() so that
-  // PrintViewManager::FromWebContents() in printing path returns
-  // TestPrintViewManager*.
-  static void CreateForWebContents(content::WebContents* web_contents) {
-    web_contents->SetUserData(
-        printing::PrintViewManager::UserDataKey(),
-        std::make_unique<TestPrintViewManager>(web_contents));
-  }
-
-  void set_quit_closure(base::OnceClosure quit_closure) {
-    quit_closure_ = std::move(quit_closure);
-  }
-
- private:
-  // printing::mojom::PrintManagerHost:
-  void RequestPrintPreview(
-      printing::mojom::RequestPrintPreviewParamsPtr params) override {
-    base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
-                                                  std::move(quit_closure_));
-    printing::PrintViewManager::RequestPrintPreview(std::move(params));
-  }
-
-  base::OnceClosure quit_closure_;
-};
-
-class PrintPreviewDialogClonedObserver : public content::WebContentsObserver {
- public:
-  explicit PrintPreviewDialogClonedObserver(content::WebContents* dialog)
-      : WebContentsObserver(dialog) {}
-  PrintPreviewDialogClonedObserver(const PrintPreviewDialogClonedObserver&) =
-      delete;
-  PrintPreviewDialogClonedObserver& operator=(
-      const PrintPreviewDialogClonedObserver&) = delete;
-  ~PrintPreviewDialogClonedObserver() override = default;
-
- private:
-  // content::WebContentsObserver implementation.
-  void DidCloneToNewWebContents(
-      content::WebContents* old_web_contents,
-      content::WebContents* new_web_contents) override {
-    TestPrintViewManager::CreateForWebContents(new_web_contents);
-  }
-};
 }  // namespace
 
 class DlpContentManagerBrowserTest : public InProcessBrowserTest {
@@ -635,13 +575,15 @@
     ASSERT_TRUE(first_tab);
 
     // Open a new tab so |cloned_tab_observer_| can see it and create a
-    // TestPrintViewManager for it before the real PrintViewManager gets
-    // created. Since TestPrintViewManager is created with
-    // PrintViewManager::UserDataKey(), the real PrintViewManager is not
-    // created and TestPrintViewManager gets mojo messages for the
+    // TestPrintViewManagerForRequestPreview for it before the real
+    // PrintViewManager gets created.
+    // Since TestPrintViewManagerForRequestPreview is created with
+    // PrintViewManager::UserDataKey(), the real PrintViewManager is not created
+    // and TestPrintViewManagerForRequestPreview gets mojo messages for the
     // purposes of this test.
     cloned_tab_observer_ =
-        std::make_unique<PrintPreviewDialogClonedObserver>(first_tab);
+        std::make_unique<printing::TestPrintPreviewDialogClonedObserver>(
+            first_tab);
     chrome::DuplicateTab(browser());
   }
 
@@ -720,7 +662,8 @@
       mocked_policy_check_;
   reporting::ReportQueueConfiguration::PolicyCheckCallback
       policy_check_callback_;
-  std::unique_ptr<PrintPreviewDialogClonedObserver> cloned_tab_observer_;
+  std::unique_ptr<printing::TestPrintPreviewDialogClonedObserver>
+      cloned_tab_observer_;
 };
 
 IN_PROC_BROWSER_TEST_F(DlpContentManagerReportingBrowserTest,
@@ -755,7 +698,7 @@
   // RequestPrintPreview(), which happens after the renderer process
   // communicates back to the browser process.
   base::RunLoop run_loop;
-  TestPrintViewManager::FromWebContents(web_contents)
+  printing::TestPrintViewManagerForRequestPreview::FromWebContents(web_contents)
       ->set_quit_closure(run_loop.QuitClosure());
   printing::StartPrint(web_contents,
                        /*print_renderer=*/mojo::NullAssociatedRemote(),
@@ -789,7 +732,7 @@
   EXPECT_FALSE(helper_.GetContentManager()->IsPrintingRestricted(web_contents));
 
   base::RunLoop run_loop;
-  TestPrintViewManager::FromWebContents(web_contents)
+  printing::TestPrintViewManagerForRequestPreview::FromWebContents(web_contents)
       ->set_quit_closure(run_loop.QuitClosure());
   printing::StartPrint(web_contents,
                        /*print_renderer=*/mojo::NullAssociatedRemote(),
diff --git a/chrome/browser/ash/policy/dlp/dlp_notification_helper.cc b/chrome/browser/ash/policy/dlp/dlp_notification_helper.cc
index c5d9ad06..6b83684 100644
--- a/chrome/browser/ash/policy/dlp/dlp_notification_helper.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_notification_helper.cc
@@ -5,15 +5,19 @@
 #include "chrome/browser/ash/policy/dlp/dlp_notification_helper.h"
 
 #include "ash/public/cpp/notification_utils.h"
+#include "chrome/browser/ash/policy/dlp/dlp_warn_dialog.h"
 #include "chrome/browser/notifications/notification_display_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "components/strings/grit/components_strings.h"
 #include "components/vector_icons/vector_icons.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/gfx/geometry/insets.h"
 #include "ui/message_center/public/cpp/notification.h"
 #include "ui/message_center/public/cpp/notification_types.h"
 #include "ui/message_center/public/cpp/notifier_id.h"
+#include "ui/views/widget/widget.h"
+#include "ui/views/window/dialog_delegate.h"
 #include "url/gurl.h"
 
 namespace policy {
@@ -21,7 +25,6 @@
 namespace {
 
 constexpr char kPrintBlockedNotificationId[] = "print_dlp_blocked";
-constexpr char kPrintWarningNotificationId[] = "print_dlp_warning";
 constexpr char kScreenCapturePausedNotificationPrefix[] =
     "screen_capture_dlp_paused-";
 constexpr char kScreenCaptureResumedNotificationPrefix[] =
@@ -68,14 +71,10 @@
 
 void ShowDlpPrintWarningDialog(base::OnceClosure continue_cb,
                                base::OnceClosure cancel_cb) {
-  // TODO(aidazolic): show a warning dialog instead of toast that will get
-  // response from the user and call the right callback
-  ShowDlpNotification(
-      kPrintWarningNotificationId,
-      l10n_util::GetStringUTF16(IDS_POLICY_DLP_PRINTING_WARNING_TITLE),
-      l10n_util::GetStringUTF16(IDS_POLICY_DLP_PRINTING_WARNING_MESSAGE));
-
-  std::move(continue_cb).Run();
+  views::Widget* widget = views::DialogDelegate::CreateDialogWidget(
+      new PrintWarnDialog(std::move(continue_cb), std::move(cancel_cb)),
+      nullptr, nullptr);
+  widget->Show();
 }
 
 void HideDlpScreenCapturePausedNotification(const std::string& capture_id) {
diff --git a/chrome/browser/ash/policy/dlp/dlp_warn_dialog.cc b/chrome/browser/ash/policy/dlp/dlp_warn_dialog.cc
new file mode 100644
index 0000000..4dcb7959
--- /dev/null
+++ b/chrome/browser/ash/policy/dlp/dlp_warn_dialog.cc
@@ -0,0 +1,160 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ash/policy/dlp/dlp_warn_dialog.h"
+
+#include <memory>
+#include <utility>
+
+#include "ash/public/cpp/style/color_provider.h"
+#include "chrome/browser/ui/views/chrome_layout_provider.h"
+#include "components/strings/grit/components_strings.h"
+#include "components/vector_icons/vector_icons.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/metadata/metadata_impl_macros.h"
+#include "ui/base/ui_base_types.h"
+#include "ui/gfx/paint_vector_icon.h"
+#include "ui/views/controls/image_view.h"
+#include "ui/views/controls/label.h"
+#include "ui/views/layout/grid_layout.h"
+
+namespace policy {
+
+namespace {
+
+// The corner radius.
+constexpr int kDialogCornerRadius = 12;
+
+// The insets of the margins.
+constexpr gfx::Insets kMarginInsets(24, 24, 20, 24);
+
+// The size of the managed icon.
+constexpr int kManagedIconSize = 32;
+
+// The font used for in the dialog.
+constexpr char kFontName[] = "Roboto";
+
+// The font size of the text.
+constexpr int kBodyFontSize = 14;
+
+// The line height of the text.
+constexpr int kBodyLineHeight = 20;
+
+// The font size of the title.
+constexpr int kTitleFontSize = 16;
+
+// The line height of the title.
+constexpr int kTitleLineHeight = 24;
+
+// The width of the dialog.
+constexpr int kDialogWidth = 360;
+
+// Id of the column in the grid layout.
+constexpr int kColumnSetId = 0;
+
+// The spacing between the managed icon and the title label.
+constexpr int kIconTitleSpacing = 16;
+
+// The spacing between the title and body labels.
+constexpr int kTitleBodySpacing = 8;
+
+// The spacing between body label and the buttons.
+constexpr int kBodyButtonsSpacing = 36;
+
+std::unique_ptr<views::ImageView> InitializeIcon() {
+  ash::ColorProvider* color_provider = ash::ColorProvider::Get();
+  std::unique_ptr<views::ImageView> managed_icon =
+      std::make_unique<views::ImageView>();
+  managed_icon->SetImage(gfx::CreateVectorIcon(
+      vector_icons::kBusinessIcon, kManagedIconSize,
+      color_provider->GetContentLayerColor(
+          ash::ColorProvider::ContentLayerType::kIconColorPrimary)));
+  return managed_icon;
+}
+
+std::unique_ptr<views::Label> InitializeTitle() {
+  ash::ColorProvider* color_provider = ash::ColorProvider::Get();
+  std::unique_ptr<views::Label> title = std::make_unique<views::Label>(
+      l10n_util::GetStringUTF16(IDS_POLICY_DLP_PRINTING_WARN_TITLE));
+  title->SetHorizontalAlignment(gfx::ALIGN_LEFT);
+  title->SetAllowCharacterBreak(true);
+  title->SetEnabledColor(color_provider->GetContentLayerColor(
+      ash::ColorProvider::ContentLayerType::kTextColorPrimary));
+  title->SetFontList(gfx::FontList({kFontName}, gfx::Font::NORMAL,
+                                   kTitleFontSize, gfx::Font::Weight::MEDIUM));
+  title->SetLineHeight(kTitleLineHeight);
+  return title;
+}
+
+std::unique_ptr<views::Label> InitializeBody() {
+  ash::ColorProvider* color_provider = ash::ColorProvider::Get();
+  std::unique_ptr<views::Label> body = std::make_unique<views::Label>(
+      l10n_util::GetStringUTF16(IDS_POLICY_DLP_PRINTING_WARN_MESSAGE));
+  body->SetMultiLine(true);
+  body->SetHorizontalAlignment(gfx::ALIGN_LEFT);
+  body->SetAllowCharacterBreak(true);
+  body->SetEnabledColor(color_provider->GetContentLayerColor(
+      ash::ColorProvider::ContentLayerType::kTextColorSecondary));
+  body->SetFontList(gfx::FontList({kFontName}, gfx::Font::NORMAL, kBodyFontSize,
+                                  gfx::Font::Weight::NORMAL));
+  body->SetLineHeight(kBodyLineHeight);
+  body->SizeToFit(kDialogWidth);
+  return body;
+}
+
+}  // namespace
+
+PrintWarnDialog::PrintWarnDialog(base::OnceClosure accept_callback,
+                                 base::OnceClosure cancel_callback) {
+  SetAcceptCallback(std::move(accept_callback));
+  SetCancelCallback(std::move(cancel_callback));
+
+  InitializeView();
+}
+
+PrintWarnDialog::~PrintWarnDialog() = default;
+
+void PrintWarnDialog::InitializeView() {
+  SetModalType(ui::MODAL_TYPE_SYSTEM);
+
+  SetShowCloseButton(false);
+  SetButtonLabel(
+      ui::DIALOG_BUTTON_OK,
+      l10n_util::GetStringUTF16(IDS_POLICY_DLP_PRINTING_WARN_CONTINUE_BUTTON));
+  SetButtonLabel(
+      ui::DIALOG_BUTTON_CANCEL,
+      l10n_util::GetStringUTF16(IDS_POLICY_DLP_PRINTING_WARN_CANCEL_BUTTON));
+
+  set_fixed_width(kDialogWidth);
+  set_corner_radius(kDialogCornerRadius);
+  set_margins(kMarginInsets);
+
+  views::GridLayout* layout_manager =
+      SetLayoutManager(std::make_unique<views::GridLayout>());
+
+  views::ColumnSet* cs = layout_manager->AddColumnSet(kColumnSetId);
+  cs->AddColumn(views::GridLayout::LEADING, views::GridLayout::LEADING,
+                views::GridLayout::kFixedSize,
+                views::GridLayout::ColumnSize::kUsePreferred, kDialogWidth, 0);
+
+  layout_manager->StartRow(views::GridLayout::kFixedSize, kColumnSetId);
+  layout_manager->AddView(InitializeIcon());
+  layout_manager->AddPaddingRow(views::GridLayout::kFixedSize,
+                                kIconTitleSpacing);
+
+  layout_manager->StartRow(views::GridLayout::kFixedSize, kColumnSetId);
+  layout_manager->AddView(InitializeTitle());
+  layout_manager->AddPaddingRow(views::GridLayout::kFixedSize,
+                                kTitleBodySpacing);
+
+  layout_manager->StartRow(views::GridLayout::kFixedSize, kColumnSetId);
+  layout_manager->AddView(InitializeBody());
+  layout_manager->AddPaddingRow(views::GridLayout::kFixedSize,
+                                kBodyButtonsSpacing);
+}
+
+BEGIN_METADATA(PrintWarnDialog, views::BubbleDialogDelegateView)
+END_METADATA
+
+}  // namespace policy
diff --git a/chrome/browser/ash/policy/dlp/dlp_warn_dialog.h b/chrome/browser/ash/policy/dlp/dlp_warn_dialog.h
new file mode 100644
index 0000000..c2294e0
--- /dev/null
+++ b/chrome/browser/ash/policy/dlp/dlp_warn_dialog.h
@@ -0,0 +1,30 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ASH_POLICY_DLP_DLP_WARN_DIALOG_H_
+#define CHROME_BROWSER_ASH_POLICY_DLP_DLP_WARN_DIALOG_H_
+
+#include "ui/base/metadata/metadata_header_macros.h"
+#include "ui/views/bubble/bubble_dialog_delegate_view.h"
+
+namespace policy {
+
+// PrintWarnDialog is a system dialog that is shown when printing restriction
+// level is set to WARN.
+class PrintWarnDialog : public views::BubbleDialogDelegateView {
+ public:
+  METADATA_HEADER(PrintWarnDialog);
+  PrintWarnDialog(base::OnceClosure accept_callback,
+                  base::OnceClosure cancel_callback);
+  PrintWarnDialog(const PrintWarnDialog&) = delete;
+  PrintWarnDialog& operator=(const PrintWarnDialog&) = delete;
+  ~PrintWarnDialog() override;
+
+ private:
+  void InitializeView();
+};
+
+}  // namespace policy
+
+#endif  // CHROME_BROWSER_ASH_POLICY_DLP_DLP_WARN_DIALOG_H_
diff --git a/chrome/browser/ash/web_applications/projector_system_web_app_info.cc b/chrome/browser/ash/web_applications/projector_system_web_app_info.cc
new file mode 100644
index 0000000..742f4be
--- /dev/null
+++ b/chrome/browser/ash/web_applications/projector_system_web_app_info.cc
@@ -0,0 +1,54 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ash/web_applications/projector_system_web_app_info.h"
+
+#include "ash/constants/ash_features.h"
+#include "chrome/browser/ash/web_applications/system_web_app_install_utils.h"
+#include "chrome/grit/generated_resources.h"
+#include "chromeos/components/projector_app/projector_app_constants.h"
+#include "chromeos/grit/chromeos_projector_app_trusted_resources.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "ui/base/l10n/l10n_util.h"
+
+ProjectorSystemWebAppDelegate::ProjectorSystemWebAppDelegate(Profile* profile)
+    : web_app::SystemWebAppDelegate(
+          web_app::SystemAppType::PROJECTOR,
+          "Projector",
+          GURL(chromeos::kChromeUITrustedProjectorPlayerUrl),
+          profile) {}
+
+ProjectorSystemWebAppDelegate::~ProjectorSystemWebAppDelegate() = default;
+
+std::unique_ptr<WebApplicationInfo>
+ProjectorSystemWebAppDelegate::GetWebAppInfo() const {
+  auto info = std::make_unique<WebApplicationInfo>();
+  info->start_url = GURL(chromeos::kChromeUITrustedProjectorPlayerUrl);
+  info->scope = GURL(chromeos::kChromeUITrustedProjectorAppUrl);
+
+  info->title = l10n_util::GetStringUTF16(IDS_PROJECTOR_APP_NAME);
+
+  // TODO(b/195127670): Add 48, 128, and 192 size icons through
+  // CreateIconInfoForSystemWebApp().
+
+  // TODO(b/195127670): Figure out the theme color.
+  info->theme_color = SK_ColorBLACK;
+  info->display_mode = blink::mojom::DisplayMode::kStandalone;
+  info->open_as_window = true;
+
+  // TODO(b/195127670): Add info.url_handlers for https://projector.apps.chrome
+  // domain. Requires web-app-origin-association file at the new domain to prove
+  // cross-ownership. See
+  // https://web.dev/pwa-url-handler/#the-web-app-origin-association-file.
+
+  return info;
+}
+
+bool ProjectorSystemWebAppDelegate::ShouldCaptureNavigations() const {
+  return true;
+}
+
+bool ProjectorSystemWebAppDelegate::IsAppEnabled() const {
+  return ash::features::IsProjectorEnabled();
+}
diff --git a/chrome/browser/ash/web_applications/projector_system_web_app_info.h b/chrome/browser/ash/web_applications/projector_system_web_app_info.h
new file mode 100644
index 0000000..02f5c902
--- /dev/null
+++ b/chrome/browser/ash/web_applications/projector_system_web_app_info.h
@@ -0,0 +1,26 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ASH_WEB_APPLICATIONS_PROJECTOR_SYSTEM_WEB_APP_INFO_H_
+#define CHROME_BROWSER_ASH_WEB_APPLICATIONS_PROJECTOR_SYSTEM_WEB_APP_INFO_H_
+
+#include "chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h"
+
+class Profile;
+
+class ProjectorSystemWebAppDelegate : public web_app::SystemWebAppDelegate {
+ public:
+  explicit ProjectorSystemWebAppDelegate(Profile* profile);
+  ProjectorSystemWebAppDelegate(const ProjectorSystemWebAppDelegate&) = delete;
+  ProjectorSystemWebAppDelegate operator=(
+      const ProjectorSystemWebAppDelegate&) = delete;
+  ~ProjectorSystemWebAppDelegate() override;
+
+  // web_app::SystemWebAppDelegate:
+  std::unique_ptr<WebApplicationInfo> GetWebAppInfo() const override;
+  bool ShouldCaptureNavigations() const override;
+  bool IsAppEnabled() const override;
+};
+
+#endif  // CHROME_BROWSER_ASH_WEB_APPLICATIONS_PROJECTOR_SYSTEM_WEB_APP_INFO_H_
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
index 891daf3..9f31b3f 100644
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -134,7 +134,6 @@
       <include name="IDR_USB_DEVICE_MANAGER_MOJOM_WEBUI_JS" file="${root_gen_dir}\mojom-webui\services\device\public\mojom\usb_manager.mojom-webui.js" use_base_dir="false" type="BINDATA" />
       <include name="IDR_USB_DEVICE_MANAGER_TEST_MOJOM_WEBUI_JS" file="${root_gen_dir}\mojom-webui\services\device\public\mojom\usb_manager_test.mojom-webui.js" use_base_dir="false" type="BINDATA" />
       <include name="IDR_USB_DEVICE_MOJOM_WEBUI_JS" file="${root_gen_dir}\mojom-webui\services\device\public\mojom\usb_device.mojom-webui.js" use_base_dir="false" type="BINDATA" />
-      <include name="IDR_WEB_FOOTER_EXPERIMENT_HTML" file="resources\web_footer_experiment\index.html" type="BINDATA" />
       <include name="IDR_WEBSTORE_MANIFEST" file="resources\webstore_app\manifest.json" type="BINDATA" />
       <include name="IDR_CRYPTOTOKEN_MANIFEST" file="resources\cryptotoken\manifest.json" type="BINDATA" />
       <if expr="chromeos">
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 6cd0ab77..1450e678 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1530,11 +1530,6 @@
     return true;
   }
 
-  // The web footer experiment should share its renderer to not effectively
-  // instantiate one per window. See https://crbug.com/993502.
-  if (site_url == GURL(chrome::kChromeUIWebFooterExperimentURL))
-    return true;
-
 #if !defined(OS_ANDROID)
   if (search::ShouldUseProcessPerSiteForInstantSiteURL(site_url, profile))
     return true;
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 0f7708e..f3043eab 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -2156,6 +2156,8 @@
     "../ash/policy/dlp/dlp_rules_manager_factory.h",
     "../ash/policy/dlp/dlp_rules_manager_impl.cc",
     "../ash/policy/dlp/dlp_rules_manager_impl.h",
+    "../ash/policy/dlp/dlp_warn_dialog.cc",
+    "../ash/policy/dlp/dlp_warn_dialog.h",
     "../ash/policy/dlp/dlp_window_observer.cc",
     "../ash/policy/dlp/dlp_window_observer.h",
     "../ash/policy/enrollment/account_status_check_fetcher.cc",
@@ -2727,6 +2729,8 @@
     "../ash/web_applications/personalization_app/personalization_app_info.h",
     "../ash/web_applications/print_management_web_app_info.cc",
     "../ash/web_applications/print_management_web_app_info.h",
+    "../ash/web_applications/projector_system_web_app_info.cc",
+    "../ash/web_applications/projector_system_web_app_info.h",
     "../ash/web_applications/scanning_system_web_app_info.cc",
     "../ash/web_applications/scanning_system_web_app_info.h",
     "../ash/web_applications/shimless_rma_system_web_app_info.cc",
diff --git a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
index 4959902..d15d1009 100644
--- a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
+++ b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
@@ -3835,25 +3835,29 @@
             std::make_unique<std::string>(*app_id);
       }
     }
-
+    auto* widget = views::Widget::GetWidgetForNativeWindow(window);
     // Frame information
-    auto* immersive_controller = chromeos::ImmersiveFullscreenController::Get(
-        views::Widget::GetWidgetForNativeWindow(window));
-    if (immersive_controller) {
-      // The widget that hosts the immersive frame can be different from the
-      // application's widget itself. Use the widget from the immersive
-      // controller to obtain the FrameHeader.
-      auto* widget = immersive_controller->widget();
-      if (immersive_controller->IsEnabled()) {
-        window_info.frame_mode =
-            api::autotest_private::FrameMode::FRAME_MODE_IMMERSIVE;
-        window_info.is_frame_visible = immersive_controller->IsRevealed();
-      } else {
-        window_info.frame_mode =
-            api::autotest_private::FrameMode::FRAME_MODE_NORMAL;
-        window_info.is_frame_visible = IsFrameVisible(widget);
-      }
-      auto* frame_header = chromeos::FrameHeader::Get(widget);
+    auto* immersive_controller =
+        chromeos::ImmersiveFullscreenController::Get(widget);
+
+    // The widget that hosts the immersive frame can be different from the
+    // application's widget itself. Use the widget from the immersive
+    // controller to obtain the FrameHeader.
+    if (immersive_controller)
+      widget = immersive_controller->widget();
+
+    if (immersive_controller && immersive_controller->IsEnabled()) {
+      window_info.frame_mode =
+          api::autotest_private::FrameMode::FRAME_MODE_IMMERSIVE;
+      window_info.is_frame_visible = immersive_controller->IsRevealed();
+    } else {
+      window_info.frame_mode =
+          api::autotest_private::FrameMode::FRAME_MODE_NORMAL;
+      window_info.is_frame_visible = IsFrameVisible(widget);
+    }
+
+    auto* frame_header = chromeos::FrameHeader::Get(widget);
+    if (frame_header) {
       window_info.caption_height = frame_header->GetHeaderHeight();
 
       const chromeos::CaptionButtonModel* button_model =
@@ -3882,9 +3886,8 @@
       window_info.caption_button_visible_status = caption_button_visible_status;
     } else {
       auto* widget = views::Widget::GetWidgetForNativeWindow(window);
-      // All widgets for app windows in chromeos should have a frame with
-      // immersive controller. Non app windows may not have a frame and
-      // frame mode will be NONE.
+      // All widgets for app windows in chromeos should have a frame. Non app
+      // windows may not have a frame and frame mode will be NONE.
       DCHECK(!widget || widget->GetNativeWindow()->GetType() !=
                             aura::client::WINDOW_TYPE_NORMAL);
       window_info.frame_mode =
diff --git a/chrome/browser/continuous_search/android/java/res/layout/continuous_search_list_item.xml b/chrome/browser/continuous_search/android/java/res/layout/continuous_search_list_item.xml
index ecfd197..ac37cd63 100644
--- a/chrome/browser/continuous_search/android/java/res/layout/continuous_search_list_item.xml
+++ b/chrome/browser/continuous_search/android/java/res/layout/continuous_search_list_item.xml
@@ -8,4 +8,5 @@
     android:id="@+id/csn_chip"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:gravity="center" />
\ No newline at end of file
+    android:gravity="center"
+    app:extendLateralPadding="true" />
\ No newline at end of file
diff --git a/chrome/browser/enterprise/connectors/file_system/box_captured_sites_interactive_uitest.cc b/chrome/browser/enterprise/connectors/file_system/box_captured_sites_interactive_uitest.cc
index e62ca24..2e8b0e9 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_captured_sites_interactive_uitest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_captured_sites_interactive_uitest.cc
@@ -632,18 +632,29 @@
 
   void OnDownloadUpdated(download::DownloadItem* item) override {
     ASSERT_EQ(item, download_item_);
-    if (!rename_handler_created_ && item->GetRenameHandler()) {
-      rename_handler_created_ = true;
-      FileSystemRenameHandler* rename_handler =
-          static_cast<FileSystemRenameHandler*>(item->GetRenameHandler());
-      sign_in_observer_ = std::make_unique<BoxSignInObserver>(rename_handler);
-      fetch_access_token_observer_ =
-          std::make_unique<BoxFetchAccessTokenTestObserver>(rename_handler);
-      upload_observer_ =
-          std::make_unique<BoxUploader::TestObserver>(rename_handler);
-      if (run_loop_rename_handler_.running())
-        run_loop_rename_handler_.Quit();
-    }
+
+    // Calling download::DownloadItem::GetRenameHandler before the
+    // download::DownloadItem has a full path will result in the
+    // creation of an invalid RenameHandler.
+    // So check for the DownloadItem full path first to avoid
+    // inadvertently breaking the download workflow.
+    if (item->GetFullPath().empty())
+      return;
+    if (rename_handler_created_)
+      return;
+    if (!item->GetRenameHandler())
+      return;
+
+    rename_handler_created_ = true;
+    FileSystemRenameHandler* rename_handler =
+        static_cast<FileSystemRenameHandler*>(item->GetRenameHandler());
+    sign_in_observer_ = std::make_unique<BoxSignInObserver>(rename_handler);
+    fetch_access_token_observer_ =
+        std::make_unique<BoxFetchAccessTokenTestObserver>(rename_handler);
+    upload_observer_ =
+        std::make_unique<BoxUploader::TestObserver>(rename_handler);
+    if (run_loop_rename_handler_.running())
+      run_loop_rename_handler_.Quit();
   }
 
   void WaitForRenameHandlerCreation() {
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
index d8395e9..9687ed9 100644
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -540,6 +540,9 @@
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
   (*s_allowlist)[ash::prefs::kAccessibilityMonoAudioEnabled] =
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
+  (*s_allowlist)
+      [ash::prefs::kAccessibilityEnhancedNetworkVoicesInSelectToSpeakAllowed] =
+          settings_api::PrefType::PREF_TYPE_BOOLEAN;
 
   // Text to Speech.
   (*s_allowlist)[::prefs::kTextToSpeechLangToVoiceName] =
diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/feedmanagement/FeedManagementCoordinator.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/feedmanagement/FeedManagementCoordinator.java
index 37cab95..c1babbf7 100644
--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/feedmanagement/FeedManagementCoordinator.java
+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/feedmanagement/FeedManagementCoordinator.java
@@ -10,6 +10,7 @@
 import android.widget.ImageView;
 import android.widget.ListView;
 
+import org.chromium.chrome.browser.feed.feedmanagement.FeedManagementMediator.AutoplayManagementLauncher;
 import org.chromium.chrome.browser.feed.feedmanagement.FeedManagementMediator.FollowManagementLauncher;
 import org.chromium.chrome.browser.feed.webfeed.R;
 import org.chromium.ui.modelutil.LayoutViewBuilder;
@@ -24,8 +25,9 @@
     private Activity mActivity;
     private final View mView;
 
-    public FeedManagementCoordinator(
-            Activity activity, FollowManagementLauncher followManagementLauncher) {
+    public FeedManagementCoordinator(Activity activity,
+            FollowManagementLauncher followManagementLauncher,
+            AutoplayManagementLauncher autoplayManagementLauncher) {
         mActivity = activity;
         ModelList listItems = new ModelList();
 
@@ -44,7 +46,8 @@
         ImageView backArrowView = (ImageView) mView.findViewById(R.id.feed_management_back_arrow);
         backArrowView.setOnClickListener(this::handleBackArrowClick);
 
-        mMediator = new FeedManagementMediator(mActivity, listItems, followManagementLauncher);
+        mMediator = new FeedManagementMediator(
+                mActivity, listItems, followManagementLauncher, autoplayManagementLauncher);
     }
 
     public View getView() {
diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/feedmanagement/FeedManagementMediator.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/feedmanagement/FeedManagementMediator.java
index 81e2b1a64..b0f4ca58 100644
--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/feedmanagement/FeedManagementMediator.java
+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/feedmanagement/FeedManagementMediator.java
@@ -39,34 +39,50 @@
     private ModelList mModelList;
     private final Context mContext;
     private final FollowManagementLauncher mFollowManagementLauncher;
+    private final AutoplayManagementLauncher mAutoplayManagementLauncher;
 
     /**
      * Interface to supply a method which can launch the FollowManagementActivity.
      */
     public interface FollowManagementLauncher {
-        public void launch(Context mContext);
+        public void launchFollowManagement(Context mContext);
     }
 
-    FeedManagementMediator(
-            Context context, ModelList modelList, FollowManagementLauncher launcher) {
+    /**
+     * Interface to supply a method which can launch the AutoplayManagementActivity.
+     */
+    public interface AutoplayManagementLauncher {
+        public void launchAutoplayManagement(Context mContext);
+    }
+
+    FeedManagementMediator(Context context, ModelList modelList,
+            FollowManagementLauncher followLauncher, AutoplayManagementLauncher autoplayLauncher) {
         mModelList = modelList;
         mContext = context;
-        mFollowManagementLauncher = launcher;
+        mFollowManagementLauncher = followLauncher;
+        mAutoplayManagementLauncher = autoplayLauncher;
+
+        // Add the menu items into the menu.
         PropertyModel activityModel = generateListItem(R.string.feed_manage_activity,
                 R.string.feed_manage_activity_description, this::handleActivityClick);
-        PropertyModel interestsModel = generateListItem(R.string.feed_manage_interests,
-                R.string.feed_manage_interests_description, this::handleInterestsClick);
-        PropertyModel hiddenModel = generateListItem(R.string.feed_manage_hidden,
-                R.string.feed_manage_hidden_description, this::handleHiddenClick);
-        PropertyModel followingModel = generateListItem(R.string.feed_manage_following,
-                R.string.feed_manage_following_description, this::handleFollowingClick);
-        // Add the menu items into the menu.
         mModelList.add(new ModelListAdapter.ListItem(
                 FeedManagementItemProperties.DEFAULT_ITEM_TYPE, activityModel));
+        PropertyModel interestsModel = generateListItem(R.string.feed_manage_interests,
+                R.string.feed_manage_interests_description, this::handleInterestsClick);
         mModelList.add(new ModelListAdapter.ListItem(
                 FeedManagementItemProperties.DEFAULT_ITEM_TYPE, interestsModel));
+        PropertyModel hiddenModel = generateListItem(R.string.feed_manage_hidden,
+                R.string.feed_manage_hidden_description, this::handleHiddenClick);
         mModelList.add(new ModelListAdapter.ListItem(
                 FeedManagementItemProperties.DEFAULT_ITEM_TYPE, hiddenModel));
+        if (FeedServiceBridge.isAutoplayEnabled()) {
+            PropertyModel autoplayModel = generateListItem(R.string.feed_manage_autoplay,
+                    R.string.feed_manage_autoplay_description, this::handleAutoplayClick);
+            mModelList.add(new ModelListAdapter.ListItem(
+                    FeedManagementItemProperties.DEFAULT_ITEM_TYPE, autoplayModel));
+        }
+        PropertyModel followingModel = generateListItem(R.string.feed_manage_following,
+                R.string.feed_manage_following_description, this::handleFollowingClick);
         mModelList.add(new ModelListAdapter.ListItem(
                 FeedManagementItemProperties.DEFAULT_ITEM_TYPE, followingModel));
     }
@@ -138,9 +154,14 @@
         launchUriActivity("https://www.google.com/preferences/interests/hidden");
     }
 
+    private void handleAutoplayClick(View view) {
+        Log.d(TAG, "Autoplay click caught.");
+        mAutoplayManagementLauncher.launchAutoplayManagement(mContext);
+    }
+
     private void handleFollowingClick(View view) {
         Log.d(TAG, "Following click caught.");
         FeedServiceBridge.reportOtherUserAction(FeedUserActionType.TAPPED_MANAGE_FOLLOWING);
-        mFollowManagementLauncher.launch(mContext);
+        mFollowManagementLauncher.launchFollowManagement(mContext);
     }
 }
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index ced30a92..bdb264c1 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -76,7 +76,8 @@
   {
     "name": "allow-all-sites-to-initiate-mirroring",
     "owners": [ "takumif", "openscreen-eng@google.com" ],
-    "expiry_milestone": 93
+    // This flag is used in regular manual QA and should not be removed.
+    "expiry_milestone": -1
   },
   {
     "name": "allow-default-web-app-migration-for-chrome-os-managed-users",
@@ -454,7 +455,7 @@
   {
     "name": "autofill-use-renderer-ids",
     "owners": [ "kazinova@google.com" ],
-    "expiry_milestone": 92
+    "expiry_milestone": 96
   },
   {
     "name": "avatar-toolbar-button",
@@ -710,7 +711,7 @@
   {
     "name": "content-languages-in-language-picker",
     "owners": [ "basiaz", "chrome-language@google.com" ],
-    "expiry_milestone": 93
+    "expiry_milestone": 96
   },
   {
     "name": "content-settings-redesign",
@@ -731,6 +732,14 @@
     "owners": [ "jds" ],
     "expiry_milestone": 90
   },
+  { "name":"context-menu-phase2",
+      "owners":["gambard", "bling-flags@google.com"],
+      "expiry_milestone":100
+  },
+  { "name":"context-menu-phase3",
+      "owners":["gambard", "bling-flags@google.com"],
+      "expiry_milestone":100
+  },
   {
     "name": "context-menu-search-and-shop-with-google-lens",
     "owners": [ "yusuyoutube@google.com", "benwgold@google.com", "lens-chrome@google.com" ],
@@ -939,6 +948,11 @@
     "expiry_milestone": 94
   },
   {
+    "name": "default-wkwebview-context-menu",
+    "owners": [ "gambard", "bling-flags@google.com" ],
+    "expiry_milestone": 100
+  },
+  {
     "name": "deprecate-alt-based-six-pack",
     "owners": [ "zentaro@google.com", "jimmyxgong@google.com",
                 "cros-peripherals@google.com"],
@@ -983,7 +997,7 @@
   {
     "name": "detect-form-submission-on-form-clear",
     "owners": [ "kazinova@google.com", "jdoerrie"],
-    "expiry_milestone": 93
+    "expiry_milestone": 96
   },
   {
     "name": "detect-target-embedding-lookalikes",
@@ -1957,11 +1971,10 @@
       "gildekel",
       "//ui/display/OWNERS"
     ],
-    // Temporary flag to control hardware mirroring as the first step
-    // towards permanently disabling hardware mirroring. This flag will be removed
-    // once we verify no critical regression is seen by removing HW mirroring.
-    // See crbug.com/1161556 for more details.
-    "expiry_milestone": 92
+    // A temporary flag to control hardware mirroring until it is decided
+    // whether to permanently remove hardware mirroring. See crbug.com/1161556
+    // for more details.
+    "expiry_milestone": 114
   },
   {
     "name": "enable-heavy-ad-intervention",
@@ -2125,7 +2138,7 @@
   {
     "name": "enable-manual-password-generation",
     "owners": [ "kazinova@google.com" ],
-    "expiry_milestone": 93
+    "expiry_milestone": 96
   },
   {
     "name": "enable-mark-http-as",
@@ -2755,7 +2768,10 @@
   {
     "name": "enable-webassembly-baseline",
     "owners": [ "clemensb", "wasm-team@google.com" ],
-    "expiry_milestone": 92
+    // This flag is often used by developers and partners to test
+    // WebAssembly peak performance or impact on startup time if
+    // Liftoff (the baseline compiler) is disabled.
+    "expiry_milestone": -1
   },
   {
     "name": "enable-webassembly-lazy-compilation",
@@ -2775,7 +2791,11 @@
   {
     "name": "enable-webassembly-tiering",
     "owners": [ "clemensb", "wasm-team@google.com" ],
-    "expiry_milestone": 92
+    // This flag is often used by developers and partners to test
+    // impact on performance or startup time if tiering is disabled
+    // and thus all WebAssembly code runs in Liftoff (if enabled) or
+    // TurboFan (if Liftoff is disabled).
+    "expiry_milestone": -1
   },
   {
     "name": "enable-webgl-developer-extensions",
@@ -4275,8 +4295,8 @@
   },
   {
     "name": "omnibox-tab-switch-suggestions",
-    "owners": [ "orinj", "chrome-omnibox-team@google.com" ],
-    "expiry_milestone": 92
+    "owners": [ "gangwu", "chrome-omnibox-team@google.com" ],
+    "expiry_milestone": 97
   },
   {
     "name": "omnibox-trending-zero-prefix-suggestions-on-ntp",
diff --git a/chrome/browser/flag-never-expire-list.json b/chrome/browser/flag-never-expire-list.json
index 0b2519af..51f2b677 100644
--- a/chrome/browser/flag-never-expire-list.json
+++ b/chrome/browser/flag-never-expire-list.json
@@ -13,6 +13,7 @@
 // The format of this file is a list of flag names; it is validated by a unit
 // test (AboutFlagsTest.OnlyPermittedFlagsNeverExpire).
 [
+  "allow-all-sites-to-initiate-mirroring",
   "allow-previews",
   "arc-native-bridge-toggle",
   "ash-debug-shortcuts",
@@ -57,6 +58,8 @@
   "enable-virtual-keyboard",
   "enable-web-authentication-testing-api",
   "enable-web-payments-experimental-features",
+  "enable-webassembly-baseline",
+  "enable-webassembly-tiering",
   "enable-webgl-developer-extensions",
   "enable-webgl-draft-extensions",
   "enable-zero-copy",
diff --git a/chrome/browser/geolocation/geolocation_permission_context_delegate_android.cc b/chrome/browser/geolocation/geolocation_permission_context_delegate_android.cc
index dfb48a18..7cc75423 100644
--- a/chrome/browser/geolocation/geolocation_permission_context_delegate_android.cc
+++ b/chrome/browser/geolocation/geolocation_permission_context_delegate_android.cc
@@ -93,10 +93,10 @@
 
   // If this is the default search origin, and the DSE Geolocation setting is
   // being used, potentially show the disclosure.
+  content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(
+      id.render_process_id(), id.render_frame_id());
   content::WebContents* web_contents =
-      content::WebContents::FromRenderFrameHost(
-          content::RenderFrameHost::FromID(id.render_process_id(),
-                                           id.render_frame_id()));
+      content::WebContents::FromRenderFrameHost(rfh);
   if (!web_contents)
     return;
 
@@ -105,5 +105,5 @@
 
   // The tab helper can be null in tests.
   if (disclosure_helper)
-    disclosure_helper->MaybeShowDisclosureForAPIAccess(requesting_origin);
+    disclosure_helper->MaybeShowDisclosureForAPIAccess(rfh, requesting_origin);
 }
diff --git a/chrome/browser/language/translate_frame_binder_browsertest.cc b/chrome/browser/language/translate_frame_binder_browsertest.cc
new file mode 100644
index 0000000..00a6a72
--- /dev/null
+++ b/chrome/browser/language/translate_frame_binder_browsertest.cc
@@ -0,0 +1,141 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/bind.h"
+#include "base/run_loop.h"
+#include "chrome/browser/chrome_content_browser_client.h"
+#include "chrome/browser/language/translate_frame_binder.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/common/content_client.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/prerender_test_util.h"
+#include "mojo/public/cpp/bindings/binder_map.h"
+#include "net/test/embedded_test_server/embedded_test_server.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace language {
+
+namespace {
+
+class TestTranslateDriverBindingContentBrowserClient
+    : public ChromeContentBrowserClient {
+ public:
+  TestTranslateDriverBindingContentBrowserClient() = default;
+  ~TestTranslateDriverBindingContentBrowserClient() override = default;
+
+  void RegisterBrowserInterfaceBindersForFrame(
+      content::RenderFrameHost* render_frame_host,
+      mojo::BinderMapWithContext<content::RenderFrameHost*>* map) override {
+    ChromeContentBrowserClient::RegisterBrowserInterfaceBindersForFrame(
+        render_frame_host, map);
+    // Override binding for translate::mojom::ContentTranslateDriver.
+    map->Add<translate::mojom::ContentTranslateDriver>(base::BindRepeating(
+        &TestTranslateDriverBindingContentBrowserClient::BindTest,
+        base::Unretained(this)));
+  }
+
+  void BindTest(content::RenderFrameHost* render_frame_host,
+                mojo::PendingReceiver<translate::mojom::ContentTranslateDriver>
+                    receiver) {
+    // It should be called on the active page.
+    ASSERT_EQ(render_frame_host->GetLifecycleState(),
+              content::RenderFrameHost::LifecycleState::kActive);
+
+    language::BindContentTranslateDriver(render_frame_host,
+                                         std::move(receiver));
+    render_frame_binding_map_[render_frame_host] = true;
+    if (quit_on_binding_)
+      std::move(quit_on_binding_).Run();
+  }
+
+  bool WaitForBinding(content::RenderFrameHost* render_frame_host,
+                      base::OnceClosure callback) {
+    if (IsBound(render_frame_host))
+      return false;
+    quit_on_binding_ = std::move(callback);
+    return true;
+  }
+
+  bool IsBound(content::RenderFrameHost* render_frame_host) {
+    return render_frame_binding_map_[render_frame_host];
+  }
+
+ private:
+  base::OnceClosure quit_on_binding_;
+  std::map<content::RenderFrameHost*, bool> render_frame_binding_map_;
+};
+
+}  // namespace
+
+class TranslateFrameBinderBrowserTest : public InProcessBrowserTest {
+ public:
+  TranslateFrameBinderBrowserTest()
+      : prerender_helper_(
+            base::BindRepeating(&TranslateFrameBinderBrowserTest::web_contents,
+                                base::Unretained(this))) {}
+  ~TranslateFrameBinderBrowserTest() override = default;
+
+  void SetUp() override {
+    prerender_helper_.SetUp(embedded_test_server());
+    InProcessBrowserTest::SetUp();
+  }
+
+  void SetUpOnMainThread() override {
+    ASSERT_TRUE(test_server_handle_ =
+                    embedded_test_server()->StartAndReturnHandle());
+  }
+
+  content::WebContents* web_contents() const {
+    return browser()->tab_strip_model()->GetActiveWebContents();
+  }
+
+  content::test::PrerenderTestHelper* prerender_helper() {
+    return &prerender_helper_;
+  }
+
+ private:
+  content::test::PrerenderTestHelper prerender_helper_;
+  net::test_server::EmbeddedTestServerHandle test_server_handle_;
+};
+
+// Tests that mojom::ContentTranslateDriver binding is deferred in prerendering
+// and it's safe to access WebContents in the binding function since it's
+// executed after prerendering activation.
+IN_PROC_BROWSER_TEST_F(TranslateFrameBinderBrowserTest,
+                       NotBindingInPrerendering) {
+  TestTranslateDriverBindingContentBrowserClient test_browser_client;
+  auto* old_browser_client = SetBrowserClientForTesting(&test_browser_client);
+
+  const GURL kInitialUrl = embedded_test_server()->GetURL("/empty.html");
+  const GURL kPrerenderingUrl = embedded_test_server()->GetURL("/title1.html");
+
+  // Navigate to an initial page.
+  ui_test_utils::NavigateToURL(browser(), kInitialUrl);
+
+  int host_id = prerender_helper()->AddPrerender(kPrerenderingUrl);
+  content::RenderFrameHost* prerendered_frame_host =
+      prerender_helper()->GetPrerenderedMainFrameHost(host_id);
+  content::test::PrerenderHostObserver host_observer(*web_contents(), host_id);
+  base::RunLoop().RunUntilIdle();
+  EXPECT_FALSE(test_browser_client.IsBound(prerendered_frame_host));
+
+  // Activate the prerendered page.
+  prerender_helper()->NavigatePrimaryPage(kPrerenderingUrl);
+  EXPECT_TRUE(host_observer.was_activated());
+
+  base::RunLoop run_loop;
+  if (test_browser_client.WaitForBinding(prerendered_frame_host,
+                                         run_loop.QuitClosure())) {
+    run_loop.Run();
+  }
+  EXPECT_TRUE(test_browser_client.IsBound(prerendered_frame_host));
+
+  content::SetBrowserClientForTesting(old_browser_client);
+}
+
+}  // namespace language
diff --git a/chrome/browser/media/webrtc/capture_policy_utils.cc b/chrome/browser/media/webrtc/capture_policy_utils.cc
index 3687421..5ff34fe 100644
--- a/chrome/browser/media/webrtc/capture_policy_utils.cc
+++ b/chrome/browser/media/webrtc/capture_policy_utils.cc
@@ -5,13 +5,22 @@
 #include "chrome/browser/media/webrtc/capture_policy_utils.h"
 
 #include "base/containers/cxx20_erase_vector.h"
+#include "build/build_config.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/pref_names.h"
+#include "chrome/grit/generated_resources.h"
 #include "components/content_settings/core/common/content_settings_pattern.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/web_contents.h"
 #include "url/origin.h"
 
+#if !defined(OS_ANDROID)
+#include "chrome/browser/ui/tab_modal_confirm_dialog.h"
+#include "chrome/browser/ui/tab_modal_confirm_dialog_delegate.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/ui_base_types.h"
+#endif
+
 namespace capture_policy {
 
 namespace {
@@ -135,4 +144,30 @@
       });
 }
 
+#if !defined(OS_ANDROID)
+class CaptureTerminatedDialogDelegate : public TabModalConfirmDialogDelegate {
+ public:
+  explicit CaptureTerminatedDialogDelegate(content::WebContents* web_contents)
+      : TabModalConfirmDialogDelegate(web_contents) {}
+  ~CaptureTerminatedDialogDelegate() override = default;
+  std::u16string GetTitle() override {
+    return l10n_util::GetStringUTF16(
+        IDS_TAB_CAPTURE_TERMINATED_BY_POLICY_TITLE);
+  }
+
+  std::u16string GetDialogMessage() override {
+    return l10n_util::GetStringUTF16(IDS_TAB_CAPTURE_TERMINATED_BY_POLICY_TEXT);
+  }
+
+  int GetDialogButtons() const override { return ui::DIALOG_BUTTON_OK; }
+};
+#endif
+
+void ShowCaptureTerminatedDialog(content::WebContents* contents) {
+#if !defined(OS_ANDROID)
+  TabModalConfirmDialog::Create(
+      std::make_unique<CaptureTerminatedDialogDelegate>(contents), contents);
+#endif
+}
+
 }  // namespace capture_policy
diff --git a/chrome/browser/media/webrtc/capture_policy_utils.h b/chrome/browser/media/webrtc/capture_policy_utils.h
index 7c5bc4e..2c0793c 100644
--- a/chrome/browser/media/webrtc/capture_policy_utils.h
+++ b/chrome/browser/media/webrtc/capture_policy_utils.h
@@ -56,6 +56,8 @@
 // unchanged.
 void FilterMediaList(std::vector<DesktopMediaList::Type>& media_types,
                      AllowedScreenCaptureLevel capture_level);
+
+void ShowCaptureTerminatedDialog(content::WebContents* contents);
 }  // namespace capture_policy
 
 #endif  // CHROME_BROWSER_MEDIA_WEBRTC_CAPTURE_POLICY_UTILS_H_
diff --git a/chrome/browser/media/webrtc/same_origin_observer.cc b/chrome/browser/media/webrtc/same_origin_observer.cc
index 6abfc6a..f377514 100644
--- a/chrome/browser/media/webrtc/same_origin_observer.cc
+++ b/chrome/browser/media/webrtc/same_origin_observer.cc
@@ -15,12 +15,10 @@
     content::WebContents* observed_contents,
     const GURL& reference_origin,
     base::RepeatingCallback<void(content::WebContents*)>
-        on_same_origin_state_changed,
-    bool check_before_commit)
+        on_same_origin_state_changed)
     : observed_contents_(observed_contents),
       reference_origin_(reference_origin),
-      on_same_origin_state_changed_(on_same_origin_state_changed),
-      check_before_commit_(check_before_commit) {
+      on_same_origin_state_changed_(on_same_origin_state_changed) {
   DCHECK(observed_contents);
   is_same_origin_ = url::IsSameOriginWith(
       reference_origin_, observed_contents_->GetLastCommittedURL().GetOrigin());
@@ -29,22 +27,9 @@
 
 SameOriginObserver::~SameOriginObserver() = default;
 
-void SameOriginObserver::ReadyToCommitNavigation(
-    content::NavigationHandle* navigation_handle) {
-  if (check_before_commit_) {
-    CheckForOriginChanged(navigation_handle->GetURL().GetOrigin());
-  }
-}
-
 void SameOriginObserver::DidFinishNavigation(
     content::NavigationHandle* navigation_handle) {
-  if (!check_before_commit_) {
-    CheckForOriginChanged(
-        observed_contents_->GetLastCommittedURL().GetOrigin());
-  }
-}
-
-void SameOriginObserver::CheckForOriginChanged(const GURL& new_origin) {
+  const GURL& new_origin = navigation_handle->GetURL().GetOrigin();
   bool is_now_same_origin =
       url::IsSameOriginWith(reference_origin_, new_origin);
   if (is_same_origin_ != is_now_same_origin) {
diff --git a/chrome/browser/media/webrtc/same_origin_observer.h b/chrome/browser/media/webrtc/same_origin_observer.h
index c810910a..90730ca0 100644
--- a/chrome/browser/media/webrtc/same_origin_observer.h
+++ b/chrome/browser/media/webrtc/same_origin_observer.h
@@ -15,37 +15,28 @@
 
 // This observer class will trigger the provided callback whenever the observed
 // WebContents's origin either now or no longer matches the provided origin.
+// This will not trigger the callback until the navigation has been committed,
+// so that WebContents::GetLastCommittedURL will return the new origin, and thus
+// allow for easier code re-use. Note that that Loading hasn't actually started
+// yet, so this is still suitable for listening to for i.e. terminating tab
+// capture when a site is no longer the same origin.
 class SameOriginObserver : public content::WebContentsObserver {
  public:
-  // The default behavior is that the observer will not trigger the callback
-  // until the navigation has been committed. This will ensure that
-  // WebContents::GetLastCommittedURL will return the new origin, and thus allow
-  // more simply re-using any code paths that set initial state. Setting
-  // |check_before_commit| will fire before the navigation has been fully
-  // committed, so that any actions that may be needed (i.e. to terminate a
-  // capture that no longer satisifes the SameOrigin requirement), can fire
-  // immediately.
   SameOriginObserver(content::WebContents* observed_contents,
                      const GURL& reference_origin,
                      base::RepeatingCallback<void(content::WebContents*)>
-                         on_same_origin_state_changed,
-                     bool check_before_commit = false);
+                         on_same_origin_state_changed);
   ~SameOriginObserver() override;
 
   // WebContentsObserver
-  void ReadyToCommitNavigation(
-      content::NavigationHandle* navigation_handle) override;
   void DidFinishNavigation(
       content::NavigationHandle* navigation_handle) override;
 
  private:
-  void CheckForOriginChanged(const GURL& new_origin);
-
   content::WebContents* const observed_contents_;
   const GURL reference_origin_;
   base::RepeatingCallback<void(content::WebContents*)>
       on_same_origin_state_changed_;
-  const bool check_before_commit_;
   bool is_same_origin_ = false;
 };
 
diff --git a/chrome/browser/media/webrtc/tab_capture_access_handler.cc b/chrome/browser/media/webrtc/tab_capture_access_handler.cc
index b76e441..29a742b 100644
--- a/chrome/browser/media/webrtc/tab_capture_access_handler.cc
+++ b/chrome/browser/media/webrtc/tab_capture_access_handler.cc
@@ -11,13 +11,52 @@
 #include "chrome/browser/media/webrtc/capture_policy_utils.h"
 #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
 #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
+#include "chrome/browser/media/webrtc/same_origin_observer.h"
 #include "chrome/browser/profiles/profile.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
 #include "content/public/browser/desktop_media_id.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_media_capture_id.h"
 #include "extensions/common/permissions/permissions_data.h"
 #include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h"
 
+namespace {
+// This helper class is designed to live as long as the capture, and is used
+// when no other MediaStreamUI object is used. If the capture violates the
+// SameOrigin EnterprisePolicy, we'll abort the capture and show a dialog that
+// we have stopped it.
+class SameOriginPolicyUI : public MediaStreamUI {
+ public:
+  // Since we own the observer, the base::Unretained for the callback is safe.
+  SameOriginPolicyUI(content::WebContents* observed_contents,
+                     const GURL& reference_origin)
+      : observer_(
+            observed_contents,
+            reference_origin,
+            base::BindRepeating(&SameOriginPolicyUI::OnSameOriginStateChange,
+                                base::Unretained(this))) {}
+  // Called when stream capture is stopped.
+  ~SameOriginPolicyUI() override = default;
+
+  gfx::NativeViewId OnStarted(
+      base::OnceClosure stop_callback,
+      content::MediaStreamUI::SourceCallback source_callback) override {
+    stop_callback_ = std::move(stop_callback);
+    return 0;
+  }
+
+ private:
+  void OnSameOriginStateChange(content::WebContents* wc) {
+    std::move(stop_callback_).Run();
+    capture_policy::ShowCaptureTerminatedDialog(wc);
+  }
+
+  SameOriginObserver observer_;
+  base::OnceClosure stop_callback_;
+};
+}  // namespace
+
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 #include "chrome/browser/ash/policy/dlp/dlp_content_manager.h"
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -62,9 +101,18 @@
     return;
   }
 
-  if (capture_policy::GetAllowedCaptureLevel(request.security_origin,
-                                             web_contents) ==
-      AllowedScreenCaptureLevel::kDisallowed) {
+  AllowedScreenCaptureLevel capture_level =
+      capture_policy::GetAllowedCaptureLevel(request.security_origin,
+                                             web_contents);
+  DesktopMediaList::WebContentsFilter can_show_web_contents =
+      capture_policy::GetIncludableWebContentsFilter(request.security_origin,
+                                                     capture_level);
+
+  content::WebContents* target_web_contents =
+      content::WebContents::FromRenderFrameHost(
+          content::RenderFrameHost::FromID(request.render_process_id,
+                                           request.render_frame_id));
+  if (!can_show_web_contents.Run(target_web_contents)) {
     std::move(callback).Run(
         devices, blink::mojom::MediaStreamRequestResult::PERMISSION_DENIED,
         std::move(ui));
@@ -111,9 +159,14 @@
   }
 
   if (!devices.empty()) {
+    std::unique_ptr<MediaStreamUI> media_ui;
+    if (capture_level == AllowedScreenCaptureLevel::kSameOrigin) {
+      media_ui = std::make_unique<SameOriginPolicyUI>(target_web_contents,
+                                                      request.security_origin);
+    }
     ui = MediaCaptureDevicesDispatcher::GetInstance()
              ->GetMediaStreamCaptureIndicator()
-             ->RegisterMediaStream(web_contents, devices);
+             ->RegisterMediaStream(web_contents, devices, std::move(media_ui));
   }
   UpdateExtensionTrusted(request, extension);
   std::move(callback).Run(
diff --git a/chrome/browser/optimization_guide/optimization_guide_hints_manager_unittest.cc b/chrome/browser/optimization_guide/optimization_guide_hints_manager_unittest.cc
index 171dda2..8816bab3 100644
--- a/chrome/browser/optimization_guide/optimization_guide_hints_manager_unittest.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_hints_manager_unittest.cc
@@ -55,6 +55,7 @@
 
 namespace {
 
+using ::testing::NiceMock;
 using ::testing::Return;
 
 // Allows for default hour to pass + random delay between 30 and 60 seconds.
@@ -281,6 +282,10 @@
         optimization_guide::features::kOptimizationHints,
         {{"max_host_keyed_hint_cache_size", "1"}});
   }
+  OptimizationGuideHintsManagerTest(const OptimizationGuideHintsManagerTest&) =
+      delete;
+  OptimizationGuideHintsManagerTest& operator=(
+      const OptimizationGuideHintsManagerTest&) = delete;
   ~OptimizationGuideHintsManagerTest() override = default;
 
   void SetUp() override {
@@ -420,7 +425,7 @@
         web_contents_factory_->CreateWebContents(&testing_profile_);
     OptimizationGuideWebContentsObserver::CreateForWebContents(web_contents);
     std::unique_ptr<content::MockNavigationHandle> navigation_handle =
-        std::make_unique<content::MockNavigationHandle>(web_contents);
+        std::make_unique<NiceMock<content::MockNavigationHandle>>(web_contents);
     navigation_handle->set_url(url);
     return navigation_handle;
   }
@@ -512,8 +517,6 @@
   std::unique_ptr<sync_preferences::TestingPrefServiceSyncable> pref_service_;
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
   network::TestURLLoaderFactory test_url_loader_factory_;
-
-  DISALLOW_COPY_AND_ASSIGN(OptimizationGuideHintsManagerTest);
 };
 
 TEST_F(OptimizationGuideHintsManagerTest,
diff --git a/chrome/browser/pdf/pdf_extension_interactive_uitest.cc b/chrome/browser/pdf/pdf_extension_interactive_uitest.cc
index 3450f0a..02288690 100644
--- a/chrome/browser/pdf/pdf_extension_interactive_uitest.cc
+++ b/chrome/browser/pdf/pdf_extension_interactive_uitest.cc
@@ -10,7 +10,6 @@
 #include "content/public/browser/browser_plugin_guest_manager.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
-#include "content/public/test/hit_test_region_observer.h"
 #include "content/public/test/test_utils.h"
 #include "extensions/browser/api/extensions_api_client.h"
 #include "net/dns/mock_host_resolver.h"
@@ -78,7 +77,6 @@
   const GURL url = embedded_test_server()->GetURL("/pdf/text_large.pdf");
   content::WebContents* const guest_contents = LoadPdfGetGuestContents(url);
   ASSERT_TRUE(guest_contents);
-  content::WaitForHitTestData(guest_contents);
 
   views::NamedWidgetShownWaiter waiter(views::test::AnyWidgetTestPasskey{},
                                        "TouchSelectionMenuViews");
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc
index 5a0e857..3ab79bc4 100644
--- a/chrome/browser/pdf/pdf_extension_test.cc
+++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -89,7 +89,6 @@
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/dump_accessibility_test_helper.h"
-#include "content/public/test/hit_test_region_observer.h"
 #include "content/public/test/prerender_test_util.h"
 #include "content/public/test/scoped_time_zone.h"
 #include "content/public/test/test_navigation_observer.h"
@@ -1841,8 +1840,7 @@
   EXPECT_EQ(2, CountPDFProcesses());
 }
 
-class PDFExtensionLinkClickTest
-    : public PDFExtensionTestWithoutUnseasonedOverride {
+class PDFExtensionLinkClickTest : public PDFExtensionTest {
  public:
   PDFExtensionLinkClickTest() : guest_contents_(nullptr) {}
   ~PDFExtensionLinkClickTest() override {}
@@ -1881,7 +1879,7 @@
   WebContents* guest_contents_;
 };
 
-IN_PROC_BROWSER_TEST_F(PDFExtensionLinkClickTest, CtrlLeft) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionLinkClickTest, CtrlLeft) {
   LoadTestLinkPdfGetGuestContents();
 
   WebContents* web_contents = GetActiveWebContents();
@@ -1906,7 +1904,7 @@
   EXPECT_EQ("http://www.example.com/", url.spec());
 }
 
-IN_PROC_BROWSER_TEST_F(PDFExtensionLinkClickTest, Middle) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionLinkClickTest, Middle) {
   LoadTestLinkPdfGetGuestContents();
 
   WebContents* web_contents = GetActiveWebContents();
@@ -1931,7 +1929,7 @@
   EXPECT_EQ("http://www.example.com/", url.spec());
 }
 
-IN_PROC_BROWSER_TEST_F(PDFExtensionLinkClickTest, CtrlShiftLeft) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionLinkClickTest, CtrlShiftLeft) {
   LoadTestLinkPdfGetGuestContents();
 
   WebContents* web_contents = GetActiveWebContents();
@@ -1953,7 +1951,7 @@
   EXPECT_EQ("http://www.example.com/", url.spec());
 }
 
-IN_PROC_BROWSER_TEST_F(PDFExtensionLinkClickTest, ShiftMiddle) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionLinkClickTest, ShiftMiddle) {
   LoadTestLinkPdfGetGuestContents();
 
   WebContents* web_contents = GetActiveWebContents();
@@ -1973,7 +1971,7 @@
   EXPECT_EQ("http://www.example.com/", url.spec());
 }
 
-IN_PROC_BROWSER_TEST_F(PDFExtensionLinkClickTest, ShiftLeft) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionLinkClickTest, ShiftLeft) {
   LoadTestLinkPdfGetGuestContents();
 
   ASSERT_EQ(1U, chrome::GetTotalBrowserCount());
@@ -1999,7 +1997,7 @@
 // the PDF is loaded and functional by clicking a link in the PDF. The link
 // click in the PDF opens a new tab. The main page handles the pageShow event
 // and updates the history state.
-IN_PROC_BROWSER_TEST_F(PDFExtensionLinkClickTest, OpenPDFWithReplaceState) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionLinkClickTest, OpenPDFWithReplaceState) {
   // Navigate to the main page.
   GURL test_url(
       embedded_test_server()->GetURL("/pdf/pdf_href_replace_state.html"));
@@ -2063,7 +2061,7 @@
 // If the PDF viewer can't navigate the tab using a tab id, make sure it doesn't
 // try to navigate the mime handler extension's frame.
 // Regression test for https://crbug.com/1158381
-IN_PROC_BROWSER_TEST_F(PDFExtensionLinkClickTest, LinkClickInPdfInNonTab) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionLinkClickTest, LinkClickInPdfInNonTab) {
   // For ease of testing, we'll still load the PDF in a tab, but we clobber the
   // tab id in the viewer to make it think it's not in a tab.
   WebContents* guest_contents = LoadTestLinkPdfGetGuestContents();
@@ -2088,8 +2086,7 @@
   run_loop.Run();
 }
 
-class PDFExtensionInternalLinkClickTest
-    : public PDFExtensionTestWithoutUnseasonedOverride {
+class PDFExtensionInternalLinkClickTest : public PDFExtensionTest {
  public:
   PDFExtensionInternalLinkClickTest() : guest_contents_(nullptr) {}
   ~PDFExtensionInternalLinkClickTest() override {}
@@ -2115,7 +2112,7 @@
   WebContents* guest_contents_;
 };
 
-IN_PROC_BROWSER_TEST_F(PDFExtensionInternalLinkClickTest, CtrlLeft) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionInternalLinkClickTest, CtrlLeft) {
   LoadTestLinkPdfGetGuestContents();
 
   WebContents* web_contents = GetActiveWebContents();
@@ -2141,7 +2138,7 @@
   EXPECT_EQ("page=2&zoom=100,0,200", url.ref());
 }
 
-IN_PROC_BROWSER_TEST_F(PDFExtensionInternalLinkClickTest, Middle) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionInternalLinkClickTest, Middle) {
   LoadTestLinkPdfGetGuestContents();
 
   WebContents* web_contents = GetActiveWebContents();
@@ -2167,7 +2164,7 @@
   EXPECT_EQ("page=2&zoom=100,0,200", url.ref());
 }
 
-IN_PROC_BROWSER_TEST_F(PDFExtensionInternalLinkClickTest, ShiftLeft) {
+IN_PROC_BROWSER_TEST_P(PDFExtensionInternalLinkClickTest, ShiftLeft) {
   LoadTestLinkPdfGetGuestContents();
 
   ASSERT_EQ(1U, chrome::GetTotalBrowserCount());
@@ -2621,7 +2618,6 @@
       embedder_contents,
       base::BindRepeating(&GetGuestCallback, &guest_contents)));
   ASSERT_NE(nullptr, guest_contents);
-  content::WaitForHitTestData(guest_contents);
 
   gfx::Point point_in_parent(250, 25);
   gfx::Point point_in_pdf(250, 250);
@@ -2675,7 +2671,6 @@
       embedder_contents,
       base::BindRepeating(&GetGuestCallback, &guest_contents)));
   ASSERT_NE(nullptr, guest_contents);
-  content::WaitForHitTestData(guest_contents);
 
   // Get coords for mouse event.
   content::RenderWidgetHostView* guest_view =
@@ -3533,4 +3528,6 @@
 INSTANTIATE_FEATURE_OVERRIDE_TEST_SUITE(PDFExtensionJSTest);
 INSTANTIATE_FEATURE_OVERRIDE_TEST_SUITE(PDFExtensionContentSettingJSTest);
 INSTANTIATE_FEATURE_OVERRIDE_TEST_SUITE(PDFExtensionServiceWorkerJSTest);
+INSTANTIATE_FEATURE_OVERRIDE_TEST_SUITE(PDFExtensionLinkClickTest);
+INSTANTIATE_FEATURE_OVERRIDE_TEST_SUITE(PDFExtensionInternalLinkClickTest);
 INSTANTIATE_FEATURE_OVERRIDE_TEST_SUITE(PDFExtensionPrerenderTest);
diff --git a/chrome/browser/pdf/pdf_extension_test_util.cc b/chrome/browser/pdf/pdf_extension_test_util.cc
index 435cebd..9ef5bb0 100644
--- a/chrome/browser/pdf/pdf_extension_test_util.cc
+++ b/chrome/browser/pdf/pdf_extension_test_util.cc
@@ -4,13 +4,17 @@
 
 #include "chrome/browser/pdf/pdf_extension_test_util.h"
 
+#include "base/bind.h"
+#include "content/public/browser/render_frame_host.h"
 #include "content/public/test/browser_test_utils.h"
+#include "content/public/test/hit_test_region_observer.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace pdf_extension_test_util {
 
 testing::AssertionResult EnsurePDFHasLoaded(
-    const content::ToRenderFrameHost& frame) {
+    const content::ToRenderFrameHost& frame,
+    bool wait_for_hit_test_data) {
   bool load_success = false;
   if (!content::ExecuteScriptAndExtractBool(
           frame,
@@ -32,6 +36,13 @@
     return testing::AssertionFailure()
            << "Cannot communicate with PDF extension.";
   }
+
+  if (wait_for_hit_test_data) {
+    frame.render_frame_host()->ForEachRenderFrameHost(
+        base::BindRepeating<void(content::RenderFrameHost*)>(
+            content::WaitForHitTestData));
+  }
+
   return load_success ? testing::AssertionSuccess()
                       : (testing::AssertionFailure() << "Load failed.");
 }
diff --git a/chrome/browser/pdf/pdf_extension_test_util.h b/chrome/browser/pdf/pdf_extension_test_util.h
index b53171d..94a1abe 100644
--- a/chrome/browser/pdf/pdf_extension_test_util.h
+++ b/chrome/browser/pdf/pdf_extension_test_util.h
@@ -23,8 +23,14 @@
 // loading or prompted a password. The result indicates success if the PDF loads
 // successfully, otherwise it indicates failure. If it doesn't finish loading,
 // the test will hang.
+//
+// Tests that attempt to send mouse/pointer events should pass `true` for
+// `wait_for_hit_test_data`, otherwise the necessary hit test data may not be
+// available by the time this function returns. (This behavior is the default,
+// since the delay should be small.)
 testing::AssertionResult EnsurePDFHasLoaded(
-    const content::ToRenderFrameHost& frame) WARN_UNUSED_RESULT;
+    const content::ToRenderFrameHost& frame,
+    bool wait_for_hit_test_data = true) WARN_UNUSED_RESULT;
 
 gfx::Point ConvertPageCoordToScreenCoord(content::WebContents* contents,
                                          const gfx::Point& point);
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index 8dc3be29..7366a0e1 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -1240,6 +1240,9 @@
   { key::kArcAppToWebAppSharingEnabled,
     apps::webapk_prefs::kGeneratedWebApksEnabled,
     base::Value::Type::BOOLEAN},
+  { key::kEnhancedNetworkVoicesInSelectToSpeakAllowed,
+    ash::prefs::kAccessibilityEnhancedNetworkVoicesInSelectToSpeakAllowed,
+    base::Value::Type::BOOLEAN },
 #endif // BUILDFLAG(IS_CHROMEOS_ASH)
 
 #if defined(OS_WIN)
diff --git a/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc b/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc
index f6c3b223d..8516eb1 100644
--- a/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc
+++ b/chrome/browser/printing/print_preview_dialog_controller_browsertest.cc
@@ -20,6 +20,8 @@
 #include "chrome/browser/plugins/chrome_plugin_service_filter.h"
 #include "chrome/browser/plugins/plugin_prefs.h"
 #include "chrome/browser/printing/print_view_manager.h"
+#include "chrome/browser/printing/test_print_preview_dialog_cloned_observer.h"
+#include "chrome/browser/printing/test_print_view_manager_for_request_preview.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/task_manager/mock_web_contents_task_manager.h"
 #include "chrome/browser/ui/browser.h"
@@ -30,7 +32,6 @@
 #include "chrome/grit/generated_resources.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
-#include "components/printing/common/print.mojom.h"
 #include "content/public/browser/browser_accessibility_state.h"
 #include "content/public/browser/plugin_service.h"
 #include "content/public/browser/render_frame_host.h"
@@ -50,63 +51,6 @@
 
 namespace {
 
-class TestPrintViewManager : public printing::PrintViewManager {
- public:
-  explicit TestPrintViewManager(content::WebContents* web_contents)
-      : PrintViewManager(web_contents) {}
-  TestPrintViewManager(const TestPrintViewManager&) = delete;
-  TestPrintViewManager& operator=(const TestPrintViewManager&) = delete;
-  ~TestPrintViewManager() override = default;
-
-  static TestPrintViewManager* FromWebContents(WebContents* web_contents) {
-    return static_cast<TestPrintViewManager*>(
-        printing::PrintViewManager::FromWebContents(web_contents));
-  }
-
-  // Create TestPrintViewManager with PrintViewManager::UserDataKey() so that
-  // PrintViewManager::FromWebContents() in printing path returns
-  // TestPrintViewManager*.
-  static void CreateForWebContents(WebContents* web_contents) {
-    TestPrintViewManager* print_manager =
-        new TestPrintViewManager(web_contents);
-    web_contents->SetUserData(printing::PrintViewManager::UserDataKey(),
-                              base::WrapUnique(print_manager));
-  }
-
-  void set_quit_closure(base::OnceClosure quit_closure) {
-    quit_closure_ = std::move(quit_closure);
-  }
-
- private:
-  // printing::mojom::PrintManagerHost:
-  void RequestPrintPreview(
-      printing::mojom::RequestPrintPreviewParamsPtr params) override {
-    base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
-                                                  std::move(quit_closure_));
-    printing::PrintViewManager::RequestPrintPreview(std::move(params));
-  }
-
-  base::OnceClosure quit_closure_;
-};
-
-class PrintPreviewDialogClonedObserver : public WebContentsObserver {
- public:
-  explicit PrintPreviewDialogClonedObserver(WebContents* dialog)
-      : WebContentsObserver(dialog) {}
-  PrintPreviewDialogClonedObserver(const PrintPreviewDialogClonedObserver&) =
-      delete;
-  PrintPreviewDialogClonedObserver& operator=(
-      const PrintPreviewDialogClonedObserver&) = delete;
-  ~PrintPreviewDialogClonedObserver() override = default;
-
- private:
-  // content::WebContentsObserver implementation.
-  void DidCloneToNewWebContents(WebContents* old_web_contents,
-                                WebContents* new_web_contents) override {
-    TestPrintViewManager::CreateForWebContents(new_web_contents);
-  }
-};
-
 void PluginsLoadedCallback(
     base::OnceClosure quit_closure,
     const std::vector<content::WebPluginInfo>& /* info */) {
@@ -184,13 +128,15 @@
     ASSERT_TRUE(first_tab);
 
     // Open a new tab so |cloned_tab_observer_| can see it and create a
-    // TestPrintViewManager for it before the real PrintViewManager gets
-    // created. Since TestPrintViewManager is created with
-    // PrintViewManager::UserDataKey(), the real PrintViewManager is not
-    // created and TestPrintViewManager gets mojo messages for the
+    // TestPrintViewManagerForRequestPreview for it before the real
+    // PrintViewManager gets created.
+    // Since TestPrintViewManagerForRequestPreview is created with
+    // PrintViewManager::UserDataKey(), the real PrintViewManager is not created
+    // and TestPrintViewManagerForRequestPreview gets mojo messages for the
     // purposes of this test.
     cloned_tab_observer_ =
-        std::make_unique<PrintPreviewDialogClonedObserver>(first_tab);
+        std::make_unique<printing::TestPrintPreviewDialogClonedObserver>(
+            first_tab);
     chrome::DuplicateTab(browser());
 
     initiator_ = browser()->tab_strip_model()->GetActiveWebContents();
@@ -198,7 +144,8 @@
     ASSERT_NE(first_tab, initiator_);
 
     test_print_view_manager_ =
-        TestPrintViewManager::FromWebContents(initiator_);
+        printing::TestPrintViewManagerForRequestPreview::FromWebContents(
+            initiator_);
     content::PluginService::GetInstance()->Init();
   }
 
@@ -207,9 +154,9 @@
     initiator_ = nullptr;
   }
 
-
-  std::unique_ptr<PrintPreviewDialogClonedObserver> cloned_tab_observer_;
-  TestPrintViewManager* test_print_view_manager_;
+  std::unique_ptr<printing::TestPrintPreviewDialogClonedObserver>
+      cloned_tab_observer_;
+  printing::TestPrintViewManagerForRequestPreview* test_print_view_manager_;
   WebContents* initiator_ = nullptr;
 };
 
diff --git a/chrome/browser/printing/test_print_preview_dialog_cloned_observer.cc b/chrome/browser/printing/test_print_preview_dialog_cloned_observer.cc
new file mode 100644
index 0000000..8f11949
--- /dev/null
+++ b/chrome/browser/printing/test_print_preview_dialog_cloned_observer.cc
@@ -0,0 +1,27 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "test_print_preview_dialog_cloned_observer.h"
+
+#include "chrome/browser/printing/test_print_view_manager_for_request_preview.h"
+#include "content/public/browser/web_contents_observer.h"
+
+using content::WebContents;
+
+namespace printing {
+
+TestPrintPreviewDialogClonedObserver::TestPrintPreviewDialogClonedObserver(
+    content::WebContents* dialog)
+    : content::WebContentsObserver(dialog) {}
+
+TestPrintPreviewDialogClonedObserver::~TestPrintPreviewDialogClonedObserver() =
+    default;
+
+void TestPrintPreviewDialogClonedObserver::DidCloneToNewWebContents(
+    WebContents* old_web_contents,
+    WebContents* new_web_contents) {
+  TestPrintViewManagerForRequestPreview::CreateForWebContents(new_web_contents);
+}
+
+}  // namespace printing
diff --git a/chrome/browser/printing/test_print_preview_dialog_cloned_observer.h b/chrome/browser/printing/test_print_preview_dialog_cloned_observer.h
new file mode 100644
index 0000000..48299c1
--- /dev/null
+++ b/chrome/browser/printing/test_print_preview_dialog_cloned_observer.h
@@ -0,0 +1,39 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PRINTING_TEST_PRINT_PREVIEW_DIALOG_CLONED_OBSERVER_H_
+#define CHROME_BROWSER_PRINTING_TEST_PRINT_PREVIEW_DIALOG_CLONED_OBSERVER_H_
+
+#include "content/public/browser/web_contents_observer.h"
+
+namespace content {
+class WebContents;
+}
+
+namespace printing {
+
+// A supplementary helper class for
+// printing::TestPrintViewManagerForRequestPreview.
+// It enables to set up TestPrintViewManagerForRequestPreview in browser tests
+// instead of a real PrintViewManager.
+class TestPrintPreviewDialogClonedObserver
+    : public content::WebContentsObserver {
+ public:
+  explicit TestPrintPreviewDialogClonedObserver(content::WebContents* dialog);
+  TestPrintPreviewDialogClonedObserver(
+      const TestPrintPreviewDialogClonedObserver&) = delete;
+  TestPrintPreviewDialogClonedObserver& operator=(
+      const TestPrintPreviewDialogClonedObserver&) = delete;
+  ~TestPrintPreviewDialogClonedObserver() override;
+
+ private:
+  // content::WebContentsObserver:
+  void DidCloneToNewWebContents(
+      content::WebContents* old_web_contents,
+      content::WebContents* new_web_contents) override;
+};
+
+}  // namespace printing
+
+#endif  // CHROME_BROWSER_PRINTING_TEST_PRINT_PREVIEW_DIALOG_CLONED_OBSERVER_H_
diff --git a/chrome/browser/printing/test_print_view_manager_for_request_preview.cc b/chrome/browser/printing/test_print_view_manager_for_request_preview.cc
new file mode 100644
index 0000000..a945d19
--- /dev/null
+++ b/chrome/browser/printing/test_print_view_manager_for_request_preview.cc
@@ -0,0 +1,55 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/printing/test_print_view_manager_for_request_preview.h"
+
+#include <memory>
+#include <utility>
+
+#include "base/callback.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "chrome/browser/printing/print_view_manager.h"
+#include "components/printing/common/print.mojom.h"
+#include "content/public/browser/web_contents.h"
+
+using content::WebContents;
+
+namespace printing {
+
+// static
+void TestPrintViewManagerForRequestPreview::CreateForWebContents(
+    WebContents* web_contents) {
+  web_contents->SetUserData(
+      PrintViewManager::UserDataKey(),
+      std::make_unique<TestPrintViewManagerForRequestPreview>(web_contents));
+}
+
+TestPrintViewManagerForRequestPreview::TestPrintViewManagerForRequestPreview(
+    WebContents* web_contents)
+    : PrintViewManager(web_contents) {}
+
+TestPrintViewManagerForRequestPreview::
+    ~TestPrintViewManagerForRequestPreview() = default;
+
+// static
+TestPrintViewManagerForRequestPreview*
+TestPrintViewManagerForRequestPreview::FromWebContents(
+    WebContents* web_contents) {
+  return static_cast<TestPrintViewManagerForRequestPreview*>(
+      PrintViewManager::FromWebContents(web_contents));
+}
+
+void TestPrintViewManagerForRequestPreview::set_quit_closure(
+    base::OnceClosure quit_closure) {
+  quit_closure_ = std::move(quit_closure);
+}
+
+void TestPrintViewManagerForRequestPreview::RequestPrintPreview(
+    mojom::RequestPrintPreviewParamsPtr params) {
+  base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+                                                std::move(quit_closure_));
+  PrintViewManager::RequestPrintPreview(std::move(params));
+}
+
+}  // namespace printing
diff --git a/chrome/browser/printing/test_print_view_manager_for_request_preview.h b/chrome/browser/printing/test_print_view_manager_for_request_preview.h
new file mode 100644
index 0000000..2b1873ac
--- /dev/null
+++ b/chrome/browser/printing/test_print_view_manager_for_request_preview.h
@@ -0,0 +1,54 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PRINTING_TEST_PRINT_VIEW_MANAGER_FOR_REQUEST_PREVIEW_H_
+#define CHROME_BROWSER_PRINTING_TEST_PRINT_VIEW_MANAGER_FOR_REQUEST_PREVIEW_H_
+
+#include "base/callback_forward.h"
+#include "chrome/browser/printing/print_view_manager.h"
+#include "components/printing/common/print.mojom.h"
+
+namespace content {
+class WebContents;
+}
+
+namespace printing {
+
+// A helper class for testing PrintViewManager::RequestPrintPreview().
+// When printing::StartPrint is called in a browser test, the browser process
+// communicates with a renderer process using mojo API. The rendered should call
+// PrintViewManager::RequestPrintPreview(). However, due to asynchronous
+// execution, it is possible that the test fixture will end before this call
+// happens. TestPrintViewManagerForRequestPreview helps to set up
+// synchronisation using base::RunLoop.
+class TestPrintViewManagerForRequestPreview : public PrintViewManager {
+ public:
+  // Create TestPrintViewManagerForRequestPreview with
+  // PrintViewManager::UserDataKey() so that PrintViewManager::FromWebContents()
+  // in printing path returns TestPrintViewManagerForRequestPreview*.
+  static void CreateForWebContents(content::WebContents* web_contents);
+
+  explicit TestPrintViewManagerForRequestPreview(
+      content::WebContents* web_contents);
+  TestPrintViewManagerForRequestPreview(
+      const TestPrintViewManagerForRequestPreview&) = delete;
+  TestPrintViewManagerForRequestPreview& operator=(
+      const TestPrintViewManagerForRequestPreview&) = delete;
+  ~TestPrintViewManagerForRequestPreview() override;
+
+  static TestPrintViewManagerForRequestPreview* FromWebContents(
+      content::WebContents* web_contents);
+
+  void set_quit_closure(base::OnceClosure quit_closure);
+
+ private:
+  // printing::mojom::PrintManagerHost:
+  void RequestPrintPreview(mojom::RequestPrintPreviewParamsPtr params) override;
+
+  base::OnceClosure quit_closure_;
+};
+
+}  // namespace printing
+
+#endif  // CHROME_BROWSER_PRINTING_TEST_PRINT_VIEW_MANAGER_FOR_REQUEST_PREVIEW_H_
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 269cd88..00305629 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -3251,9 +3251,11 @@
 
 void RenderViewContextMenu::ExecLensRegionSearch() {
 #if defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_LINUX)
-  lens::LensRegionSearchController* controller =
-      new lens::LensRegionSearchController(source_web_contents_);
-  controller->Start();
+  if (!lens_region_search_controller_)
+    lens_region_search_controller_ =
+        std::make_unique<lens::LensRegionSearchController>(
+            source_web_contents_);
+  lens_region_search_controller_->Start();
 #endif
 }
 
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.h b/chrome/browser/renderer_context_menu/render_view_context_menu.h
index 15e5809a..b70efa2 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.h
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.h
@@ -31,6 +31,10 @@
 #include "ui/base/window_open_disposition.h"
 #include "ui/gfx/geometry/vector2d.h"
 
+#if defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_LINUX)
+#include "chrome/browser/lens/region_search/lens_region_search_controller.h"
+#endif
+
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 #include "chrome/browser/extensions/context_menu_matcher.h"
 #include "chrome/browser/extensions/menu_manager.h"
@@ -351,6 +355,17 @@
   // The type of system app (if any) associated with the WebContents we're in.
   absl::optional<web_app::SystemAppType> system_app_type_;
 
+#if defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_LINUX)
+  // Controller for Lens Region Search feature. This controller will be
+  // destroyed as soon as the RenderViewContextMenu object is destroyed. The
+  // RenderViewContextMenu is reset every time it is shown, but persists between
+  // uses so that it doesn't go out of scope before finishing work. This means
+  // that when another context menu opens, the Lens Region Search feature will
+  // close if active.
+  std::unique_ptr<lens::LensRegionSearchController>
+      lens_region_search_controller_;
+#endif
+
   DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenu);
 };
 
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
index 50e47faf..ed055a7 100644
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -70,7 +70,7 @@
     ]
   }
 
-  if (is_win || is_mac || is_linux || is_chromeos_lacros) {
+  if (is_win || is_mac || is_linux || is_chromeos_lacros || is_fuchsia) {
     public_deps += [ "browser_switch:resources" ]
   }
 
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/mock_tts.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/mock_tts.js
index bab3ecf0..29c4ddc 100644
--- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/mock_tts.js
+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/mock_tts.js
@@ -100,7 +100,14 @@
     }
   },
   getVoices(callback) {
-    callback([{voiceName: 'English US', lang: 'English'}]);
+    callback([{
+      voiceName: 'English US',
+      lang: 'en-US',
+      eventTypes: [
+        this.EventType.START, this.EventTypeEND, this.EventType.WORD,
+        this.EventType.CANCELLED
+      ]
+    }]);
   },
   isSpeaking(callback) {
     callback(this.currentlySpeaking_);
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/prefs_manager.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/prefs_manager.js
index dc890913..f433bf4 100644
--- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/prefs_manager.js
+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/prefs_manager.js
@@ -46,8 +46,25 @@
     /** @private {boolean} */
     this.navigationControlsEnabled_ = true;
 
-    /** @private {boolean} */
-    this.enhancedNetworkVoicesEnabled_ = true;
+    /**
+     * A pref indicating whether the user enables the network voices. The pref
+     * is synced to local storage as "enhancedNetworkVoices". Use
+     * this.enhancedNetworkVoicesEnabled() to refer whether to enable the
+     * network voices instead of using this pref directly.
+     * @private {boolean}
+     */
+    this.enhancedNetworkVoicesEnabled_ = false;
+
+    /**
+     * Whether to allow enhanced network voices in Select-to-Speak. Unlike
+     * |this.enhancedNetworkVoicesEnabled_|, which represents the user's
+     * preference, |this.enhancedNetworkVoicesAllowed_| is set by admin via
+     * policy. |this.enhancedNetworkVoicesAllowed_| does not override
+     * |this.enhancedNetworkVoicesEnabled_| but changes
+     * this.enhancedNetworkVoicesEnabled().
+     * @private {boolean}
+     */
+    this.enhancedNetworkVoicesAllowed_ = true;
 
     /** @private {boolean} */
     this.enhancedVoicesDialogShown_ = false;
@@ -236,12 +253,21 @@
   }
 
   /**
-   * Loads preferences from chrome.storage, sets default values if
-   * necessary, and registers a listener to update prefs when they
-   * change.
+   * Loads prefs and policy from chrome.storage and chrome.settingsPrivate,
+   * sets default values if necessary, and registers a listener to update prefs
+   * and policy when they change.
    */
   initPreferences() {
-    var updatePrefs = () => {
+    const updatePolicy = () => {
+      chrome.settingsPrivate.getPref(
+          PrefsManager.ENHANCED_VOICES_POLICY_KEY, (pref) => {
+            if (pref === undefined) {
+              return;
+            }
+            this.enhancedNetworkVoicesAllowed_ = !!pref.value;
+          });
+    };
+    const updatePrefs = () => {
       chrome.storage.sync.get(
           [
             'voice', 'rate', 'pitch', 'wordHighlight', 'highlightColor',
@@ -304,7 +330,10 @@
           });
     };
 
+    updatePolicy();
     updatePrefs();
+
+    chrome.settingsPrivate.onPrefsChanged.addListener(updatePolicy);
     chrome.storage.onChanged.addListener(updatePrefs);
 
     this.updateDefaultVoice_();
@@ -322,7 +351,7 @@
   speechOptions(enhancedVoicesFlag) {
     const options = /** @type {!chrome.tts.TtsOptions} */ ({});
     const useEnhancedVoices = enhancedVoicesFlag &&
-        this.enhancedNetworkVoicesEnabled_ && navigator.onLine;
+        this.enhancedNetworkVoicesEnabled() && navigator.onLine;
 
     // If network voices are enabled, use them.
     if (useEnhancedVoices) {
@@ -407,11 +436,22 @@
 
   /**
    * Gets the user's preference for whether enhanced network TTS voices are
-   * enabled.
+   * enabled. Always returns false if the policy disallows the feature.
    * @return {boolean} True if enhanced TTS voices are enabled.
    */
   enhancedNetworkVoicesEnabled() {
-    return this.enhancedNetworkVoicesEnabled_;
+    return this.enhancedNetworkVoicesAllowed_ ?
+        this.enhancedNetworkVoicesEnabled_ :
+        false;
+  }
+
+  /**
+   * Gets the admin's policy for whether enhanced network TTS voices are
+   * allowed.
+   * @return {boolean} True if enhanced TTS voices are allowed.
+   */
+  enhancedNetworkVoicesAllowed() {
+    return this.enhancedNetworkVoicesAllowed_;
   }
 
   /**
@@ -437,6 +477,10 @@
       this.enhancedVoicesDialogShown_ = true;
       chrome.storage.sync.set(
           {'enhancedVoicesDialogShown': this.enhancedVoicesDialogShown_});
+      if (!this.enhancedNetworkVoicesAllowed_) {
+        console.warn(
+            'Network voices dialog was shown when the policy disallows it.');
+      }
     }
   }
 }
@@ -490,3 +534,11 @@
  * @type {number}
  */
 PrefsManager.DEFAULT_PITCH = 1.0;
+
+/**
+ * Settings key for the policy indicating whether to allow enhanced network
+ * voices.
+ * @type {string}
+ */
+PrefsManager.ENHANCED_VOICES_POLICY_KEY =
+    'settings.a11y.enhanced_network_voices_in_select_to_speak_allowed';
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js
index 43a95cf3..c7fa07c 100644
--- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js
+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js
@@ -1573,7 +1573,8 @@
    */
   maybeShowEnhancedVoicesDialog_(callback) {
     if (this.enhancedVoicesFlag_ &&
-        !this.prefsManager_.enhancedVoicesDialogShown()) {
+        !this.prefsManager_.enhancedVoicesDialogShown() &&
+        this.prefsManager_.enhancedNetworkVoicesAllowed()) {
       // TODO(crbug.com/1230227): Style this dialog to match UX mocks.
       const title =
           chrome.i18n.getMessage('select_to_speak_natural_voice_dialog_title');
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_enhanced_voices_test.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_enhanced_voices_test.js
index 6814a537..0abc255 100644
--- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_enhanced_voices_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_enhanced_voices_test.js
@@ -2,8 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+GEN_INCLUDE(['../../../../../../ui/webui/resources/js/cr.js']);
+GEN_INCLUDE(['../../../../../test/data/webui/fake_chrome_event.js']);
 GEN_INCLUDE(['select_to_speak_e2e_test_base.js']);
 GEN_INCLUDE(['mock_tts.js']);
+GEN_INCLUDE(['fake_settings_private.js']);
 
 SelectToSpeakEnhancedNetworkTtsVoicesTest = class extends SelectToSpeakE2ETest {
   constructor() {
@@ -18,6 +21,22 @@
           this.confirmationDialogShowCount_ += 1;
           callback(this.confirmationDialogResponse_);
         };
+
+    this.enhancedNetworkVoicesPolicyKey_ =
+        'settings.a11y.enhanced_network_voices_in_select_to_speak_allowed';
+    this.mockSettingsPrivate_ = new settings.FakeSettingsPrivate([
+      {type: 'number', key: 'settings.tts.speech_rate', value: 1.0},
+      {type: 'number', key: 'settings.tts.speech_pitch', value: 1.0},
+      {type: 'boolean', key: this.enhancedNetworkVoicesPolicyKey_, value: true}
+    ]);
+    this.mockSettingsPrivate_.allowSetPref();
+    chrome.settingsPrivate = this.mockSettingsPrivate_;
+
+    chrome.i18n = {
+      getMessage(msgid) {
+        return msgid;
+      }
+    };
   }
 
   /** @override */
@@ -32,6 +51,8 @@
           '/select_to_speak/select_to_speak_constants.js');
       await importModule('PrefsManager', '/select_to_speak/prefs_manager.js');
 
+      selectToSpeak.prefsManager_.initPreferences();
+
       runTest();
     })();
   }
@@ -40,6 +61,13 @@
   get featureList() {
     return {enabled: ['features::kEnhancedNetworkVoices']};
   }
+
+  // Sets the policy to allow or disallow the network voices.
+  setEnhancedNetworkVoicesPolicy(allowed) {
+    const unused = () => {};
+    this.mockSettingsPrivate_.setPref(
+        this.enhancedNetworkVoicesPolicyKey_, allowed, '', unused);
+  }
 };
 
 TEST_F(
@@ -75,7 +103,6 @@
           });
     });
 
-
 TEST_F(
     'SelectToSpeakEnhancedNetworkTtsVoicesTest',
     'DisablesVoicesIfCanceledInDialog', function() {
@@ -107,3 +134,71 @@
             this.triggerReadMouseSelectedText(event, event);
           });
     });
+
+TEST_F(
+    'SelectToSpeakEnhancedNetworkTtsVoicesTest',
+    'DisablesVoicesIfDisallowedByPolicy', function() {
+      this.confirmationDialogResponse_ = true;
+
+      this.runWithLoadedTree(
+          'data:text/html;charset=utf-8,' +
+              '<p>This is some text</p>',
+          function(root) {
+            this.mockTts.setOnSpeechCallbacks([this.newCallback(function(
+                utterance) {
+              // Network voices are enabled initially because of the
+              // confirmation.
+              assertEquals(this.confirmationDialogShowCount_, 1);
+              assertTrue(
+                  selectToSpeak.prefsManager_.enhancedVoicesDialogShown());
+              assertTrue(
+                  selectToSpeak.prefsManager_.enhancedNetworkVoicesEnabled());
+
+              // Sets the policy to disallow network voices.
+              this.setEnhancedNetworkVoicesPolicy(/* allowed= */ false);
+              assertFalse(
+                  selectToSpeak.prefsManager_.enhancedNetworkVoicesEnabled());
+            })]);
+            const textNode = this.findTextNode(root, 'This is some text');
+            const event = {
+              screenX: textNode.location.left + 1,
+              screenY: textNode.location.top + 1
+            };
+            this.triggerReadMouseSelectedText(event, event);
+          });
+    });
+
+TEST_F(
+    'SelectToSpeakEnhancedNetworkTtsVoicesTest',
+    'DisablesDialogIfDisallowedByPolicy', function() {
+      this.setEnhancedNetworkVoicesPolicy(/* allowed= */ false);
+
+      this.runWithLoadedTree(
+          'data:text/html;charset=utf-8,' +
+              '<p>This is some text</p>',
+          function(root) {
+            assertFalse(this.mockTts.currentlySpeaking());
+            assertEquals(this.mockTts.pendingUtterances().length, 0);
+            this.mockTts.setOnSpeechCallbacks([this.newCallback(function(
+                utterance) {
+              // Dialog was not shown.
+              assertEquals(this.confirmationDialogShowCount_, 0);
+              assertFalse(
+                  selectToSpeak.prefsManager_.enhancedVoicesDialogShown());
+
+              // Speech proceeds without enhanced voices.
+              assertFalse(
+                  selectToSpeak.prefsManager_.enhancedNetworkVoicesEnabled());
+              assertTrue(this.mockTts.currentlySpeaking());
+              assertEquals(this.mockTts.pendingUtterances().length, 1);
+              this.assertEqualsCollapseWhitespace(
+                  this.mockTts.pendingUtterances()[0], 'This is some text');
+            })]);
+            const textNode = this.findTextNode(root, 'This is some text');
+            const event = {
+              screenX: textNode.location.left + 1,
+              screenY: textNode.location.top + 1
+            };
+            this.triggerReadMouseSelectedText(event, event);
+          });
+    });
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_options.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_options.js
index f9a03e56..df45af83 100644
--- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_options.js
+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_options.js
@@ -50,17 +50,26 @@
             this.syncSelectControlToPref_('localVoices', 'voice', 'voiceName');
             this.syncSelectControlToPref_(
                 'naturalVoice', 'enhancedVoiceName', 'voiceName');
-            this.syncCheckboxControlToPref_(
-                'naturalVoices', 'enhancedNetworkVoices', (checked) => {
-                  const voice =
-                      document.getElementById('naturalVoiceSelection');
-                  const preview =
-                      document.getElementById('naturalVoicePreview');
-                  const select = document.getElementById('naturalVoice');
-                  this.setElementVisible(voice, checked);
-                  this.setElementVisible(preview, checked);
-                  select.disabled = !checked;
-                });
+            chrome.settingsPrivate.getPref(
+                PrefsManager.ENHANCED_VOICES_POLICY_KEY,
+                (network_voices_allowed) => {
+                  if (network_voices_allowed !== undefined &&
+                      !network_voices_allowed.value) {
+                    // If the feature is disallowed, sets the checkbox to false.
+                    const checkbox = document.getElementById('naturalVoices');
+                    checkbox.checked = false;
+                    checkbox.disabled = true;
+                    this.setVoiceSelectionAndPreviewVisibility_(
+                        /* isVisible = */ false);
+                  } else {
+                    // If the feature is allowed, syncs the checkbox with pref.
+                    this.syncCheckboxControlToPref_(
+                        'naturalVoices', 'enhancedNetworkVoices', (checked) => {
+                          this.setVoiceSelectionAndPreviewVisibility_(
+                              /* isVisible = */ checked);
+                        });
+                  }
+                });  // End of the chrome.settingsPrivate.getPref
           }
         });
 
@@ -122,6 +131,20 @@
   }
 
   /**
+   * Sets the visibility for natural voices selection and preview.
+   * @param {boolean} isVisible The intended visibility of the elements.
+   * @private
+   */
+  setVoiceSelectionAndPreviewVisibility_(isVisible) {
+    const voice = document.getElementById('naturalVoiceSelection');
+    const preview = document.getElementById('naturalVoicePreview');
+    const select = document.getElementById('naturalVoice');
+    this.setElementVisible(voice, isVisible);
+    this.setElementVisible(preview, isVisible);
+    select.disabled = !isVisible;
+  }
+
+  /**
    * Processes an HTML DOM, replacing text content with translated text messages
    * on elements marked up for translation.  Elements whose class attributes
    * contain the 'i18n' class name are expected to also have an msgid
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_prefs_test.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_prefs_test.js
index ef75ddd1..34f638c 100644
--- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_prefs_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak_prefs_test.js
@@ -18,9 +18,12 @@
     this.mockStorage_ = MockStorage;
     chrome.storage = this.mockStorage_;
 
+    const enhancedNetworkVoicesAllowedKey =
+        'settings.a11y.enhanced_network_voices_in_select_to_speak_allowed';
     this.mockSettingsPrivate_ = new settings.FakeSettingsPrivate([
       {type: 'number', key: 'settings.tts.speech_rate', value: 1.0},
-      {type: 'number', key: 'settings.tts.speech_pitch', value: 1.0}
+      {type: 'number', key: 'settings.tts.speech_pitch', value: 1.0},
+      {type: 'boolean', key: enhancedNetworkVoicesAllowedKey, value: true}
     ]);
     this.mockSettingsPrivate_.allowSetPref();
     chrome.settingsPrivate = this.mockSettingsPrivate_;
diff --git a/chrome/browser/resources/history/history_item.html b/chrome/browser/resources/history/history_item.html
index c198038a7..2aadeb6 100644
--- a/chrome/browser/resources/history/history_item.html
+++ b/chrome/browser/resources/history/history_item.html
@@ -165,10 +165,14 @@
       <div id="background-clip" aria-hidden="true">
         <div id="background"></div>
       </div>
-      <div role="row" on-mousedown="onRowMousedown_" on-click="onRowClick_">
-        <div id="date-accessed" class="card-title" role="heading" aria-level="2">
-          [[cardTitle_(numberOfItems, searchTerm, item.dateRelativeDay)]]
+      <div id="date-accessed" class="card-title" role="row">
+        <div role="rowheader">
+          <div role="heading" aria-level="2">
+            [[cardTitle_(numberOfItems, searchTerm, item.dateRelativeDay)]]
+          </div>
         </div>
+      </div>
+      <div role="row" on-mousedown="onRowMousedown_" on-click="onRowClick_">
         <div id="item-container" focus-row-container>
           <div role="gridcell">
             <cr-checkbox id="checkbox" checked="[[selected]]" unresolved
diff --git a/chrome/browser/resources/read_later/BUILD.gn b/chrome/browser/resources/read_later/BUILD.gn
index 779d66b..a5f6d28 100644
--- a/chrome/browser/resources/read_later/BUILD.gn
+++ b/chrome/browser/resources/read_later/BUILD.gn
@@ -78,7 +78,6 @@
   in_files = [
     "app.js",
     "icons.js",
-    "read_later_shared_style.js",
     "read_later_item.js",
   ]
 }
@@ -129,7 +128,6 @@
   js_files = [
     "app.js",
     "icons.js",
-    "read_later_shared_style.js",
     "read_later_item.js",
   ]
 }
diff --git a/chrome/browser/resources/read_later/app.html b/chrome/browser/resources/read_later/app.html
index b7a5103..fc62606 100644
--- a/chrome/browser/resources/read_later/app.html
+++ b/chrome/browser/resources/read_later/app.html
@@ -1,4 +1,4 @@
-<style include="mwb-shared-style read-later-shared-style cr-hidden-style">
+<style include="mwb-shared-style mwb-element-shared-style cr-hidden-style">
   #top-container {
     display: flex;
     height: var(--mwb-item-height);
diff --git a/chrome/browser/resources/read_later/app.js b/chrome/browser/resources/read_later/app.js
index c29ebc3..df4e3add2 100644
--- a/chrome/browser/resources/read_later/app.js
+++ b/chrome/browser/resources/read_later/app.js
@@ -6,10 +6,11 @@
 import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
 import 'chrome://resources/cr_elements/hidden_style_css.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/mwb_element_shared_style.js';
 import 'chrome://resources/cr_elements/mwb_shared_style.js';
 import 'chrome://resources/cr_elements/mwb_shared_vars.js';
 import 'chrome://resources/polymer/v3_0/iron-selector/iron-selector.js';
-import './read_later_shared_style.js';
+
 import './strings.m.js';
 
 import {assertNotReached} from 'chrome://resources/js/assert.m.js';
diff --git a/chrome/browser/resources/read_later/read_later_item.html b/chrome/browser/resources/read_later/read_later_item.html
index 5652e4b..446155f 100644
--- a/chrome/browser/resources/read_later/read_later_item.html
+++ b/chrome/browser/resources/read_later/read_later_item.html
@@ -1,4 +1,4 @@
-<style include="read-later-shared-style">
+<style include="mwb-element-shared-style">
   /* TODO(corising): Add dark mode support for buttons and hover/focus states
    * (crbug/1147457).*/
   :host(:focus) {
diff --git a/chrome/browser/resources/read_later/read_later_item.js b/chrome/browser/resources/read_later/read_later_item.js
index 7576d592..2681acb 100644
--- a/chrome/browser/resources/read_later/read_later_item.js
+++ b/chrome/browser/resources/read_later/read_later_item.js
@@ -5,10 +5,10 @@
 import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
 import 'chrome://resources/cr_elements/cr_icons_css.m.js';
 import 'chrome://resources/cr_elements/icons.m.js';
+import 'chrome://resources/cr_elements/mwb_element_shared_style.js';
 import 'chrome://resources/cr_elements/mwb_shared_vars.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
 import './icons.js';
-import './read_later_shared_style.js';
 
 import {MouseHoverableMixin, MouseHoverableMixinInterface} from 'chrome://resources/cr_elements/mouse_hoverable_mixin.js';
 import {assertNotReached} from 'chrome://resources/js/assert.m.js';
diff --git a/chrome/browser/resources/read_later/side_panel/app.html b/chrome/browser/resources/read_later/side_panel/app.html
index 53c2cf3b..fa7ecf17 100644
--- a/chrome/browser/resources/read_later/side_panel/app.html
+++ b/chrome/browser/resources/read_later/side_panel/app.html
@@ -1,4 +1,4 @@
-<style include="read-later-shared-style">
+<style include="mwb-element-shared-style">
   :host {
     color: var(--cr-primary-text-color);
     display: flex;
@@ -23,6 +23,7 @@
   cr-tabs {
     --cr-tabs-height: 40px;
     --cr-tabs-font-size: 13px;
+    cursor: default;
     flex: 1;
   }
 
@@ -74,4 +75,4 @@
       </template>
     </div>
   </iron-pages>
-</div>
\ No newline at end of file
+</div>
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
index 432f246..0058fdd 100644
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -69,6 +69,7 @@
     "images/password_check_positive.svg",
     "images/permissions_banner_dark.svg",
     "images/permissions_banner.svg",
+    "images/privacy_review_promo_banner.svg",
     "images/privacy_sandbox_banner_dark.svg",
     "images/privacy_sandbox_banner.svg",
     "images/privacy_sandbox_floc_banner_dark.svg",
@@ -253,6 +254,7 @@
     "privacy_page/cookies_page.js",
     "privacy_page/do_not_track_toggle.js",
     "privacy_page/privacy_page.js",
+    "privacy_page/privacy_review_promo.js",
     "privacy_page/personalization_options.js",
     "privacy_page/secure_dns.js",
     "privacy_page/secure_dns_input.js",
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html
index f429000..e51c42d 100644
--- a/chrome/browser/resources/settings/basic_page/basic_page.html
+++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -95,6 +95,13 @@
             <settings-autofill-page prefs="{{prefs}}"></settings-autofill-page>
           </settings-section>
         </template>
+        <template is="dom-if"
+            if="[[showPrivacyReviewPromo_(pageVisibility.privacy)]]" restamp>
+          <settings-section page-title="" nest-under-section="privacy"
+              no-search>
+            <settings-privacy-review-promo></settings-privacy-review-promo>
+          </settings-section>
+        </template>
         <template is="dom-if" if="[[showPage_(pageVisibility.safetyCheck)]]"
             restamp>
           <settings-section page-title="$i18n{safetyCheckSectionTitle}"
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.js b/chrome/browser/resources/settings/basic_page/basic_page.js
index b9a1888..9fb6e04 100644
--- a/chrome/browser/resources/settings/basic_page/basic_page.js
+++ b/chrome/browser/resources/settings/basic_page/basic_page.js
@@ -13,6 +13,7 @@
 import 'chrome://resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js';
 import '../appearance_page/appearance_page.js';
 import '../privacy_page/privacy_page.js';
+import '../privacy_page/privacy_review_promo.js';
 import '../safety_check_page/safety_check_page.js';
 import '../autofill_page/autofill_page.js';
 import '../controls/settings_idle_load.js';
@@ -223,6 +224,17 @@
   }
 
   /**
+   * @param {boolean|undefined} visibility
+   * @return {boolean}
+   * @private
+   */
+  showPrivacyReviewPromo_(visibility) {
+    // TODO(crbug/1215630): Only show on the first look at the privacy page.
+    return this.showPage_(visibility) &&
+        loadTimeData.getBoolean('privacyReviewEnabled');
+  }
+
+  /**
    * Queues a task to search the basic sections, then another for the advanced
    * sections.
    * @param {string} query The text to search for.
diff --git a/chrome/browser/resources/settings/chromeos/BUILD.gn b/chrome/browser/resources/settings/chromeos/BUILD.gn
index d8776de..ab76ce9 100644
--- a/chrome/browser/resources/settings/chromeos/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/BUILD.gn
@@ -12,6 +12,8 @@
 import("../../tools/optimize_webui.gni")
 import("./os_settings.gni")
 
+assert(is_chromeos_ash)
+
 preprocess_folder_v3 = "preprocess_v3"
 
 preprocess_v3_manifest = "preprocessed_manifest.json"
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
index 886e27e4..ece8ce0 100644
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
@@ -134,6 +134,10 @@
               var(--google-grey-refresh-500));
         }
       }
+
+      #nonGoogleSearchHistoryBox {
+        margin-bottom: 16px;
+      }
     </style>
 
     <cr-dialog id="clearBrowsingDataDialog"
@@ -205,7 +209,8 @@
                   inner-h-t-m-l="[[googleSearchHistoryString_]]">
               </div>
             </div>
-            <div class="search-history-box"
+            <div id="nonGoogleSearchHistoryBox"
+                class="search-history-box"
                 hidden="[[!shouldShowNonGoogleSearchHistoryLabel_(isNonGoogleDse_)]]">
               <iron-icon class="search-history-box-icon" aria-hidden="true"
                   icon="cr:search">
diff --git a/chrome/browser/resources/settings/images/privacy_review_promo_banner.svg b/chrome/browser/resources/settings/images/privacy_review_promo_banner.svg
new file mode 100644
index 0000000..ba83dd6
--- /dev/null
+++ b/chrome/browser/resources/settings/images/privacy_review_promo_banner.svg
@@ -0,0 +1 @@
+<svg width="182" height="102" viewBox="0 0 182 102" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 100.139h182" stroke="#E8EAED" stroke-width="3.004" stroke-miterlimit="10"/><path d="M131.033 38.244l-7.1-6.302a1.865 1.865 0 0 1-.156-2.637 1.866 1.866 0 0 1 2.637-.156l7.1 6.302c.773.686.842 1.864.156 2.637a1.866 1.866 0 0 1-2.637.156z" fill="#CF8D66"/><path d="M144.43 96.355c9.137 0 16.544-7.407 16.544-16.544 0-9.138-7.407-16.545-16.544-16.545-9.138 0-16.545 7.407-16.545 16.545 0 9.137 7.407 16.544 16.545 16.544z" stroke="#DADCE0" stroke-width="7.01" stroke-miterlimit="10"/><path d="M144.429 79.81l-9.045-39.098h-5.666" stroke="#FBBC04" stroke-width="5.007" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/><path d="M92.128 14.057l13.951-7.025-15.69-5.093a9.297 9.297 0 0 0-1.047 2.15c-1.216 3.69.012 7.593 2.786 9.968z" fill="#3C4043"/><path d="M98.967 44.521l14.693 11.782-9.351 17.623" stroke="#174EA6" stroke-width="20.029" stroke-miterlimit="10" stroke-linejoin="round"/><path d="M91.561 79.81h-43.53" stroke="#DADCE0" stroke-width="5.007" stroke-miterlimit="10"/><path d="M61.184 54.514H21.026v26.562h40.158V54.514z" fill="#FA7B17"/><path d="M84.604 96.355c9.138 0 16.545-7.407 16.545-16.544 0-9.138-7.407-16.545-16.545-16.545-9.137 0-16.544 7.407-16.544 16.545 0 9.137 7.407 16.544 16.544 16.544zm-43.499 0c6.194 0 11.215-5.021 11.215-11.215 0-6.193-5.021-11.214-11.215-11.214s-11.214 5.02-11.214 11.214c0 6.194 5.02 11.215 11.214 11.215z" stroke="#DADCE0" stroke-width="7.01" stroke-miterlimit="10"/><path d="M104.054 79.81h-19.45l17.436-28.837h35.514m1.178 4.189L110.705 79.81" stroke="#FBBC04" stroke-width="5.007" stroke-miterlimit="10" stroke-linejoin="round"/><path d="M107.569 79.324l3.385-.586s-.068 2.893 2.269 3.878c1.303.548 3.167.66 4.563.648a2.277 2.277 0 0 1 2.276 1.87l.062.374-12.929-.056.374-6.128z" fill="#DADCE0"/><path d="M108.448 9.961a4.98 4.98 0 1 0 0-9.961 4.98 4.98 0 0 0 0 9.961z" fill="#CF8D66"/><path d="M103.474 14.288l20.739 18.233" stroke="#FA7B17" stroke-width="16.023" stroke-miterlimit="10" stroke-linejoin="round"/><path d="M92.72 38.063l8.434 43.063h10.666l-7.998-41.679-11.102-1.384z" fill="#1967D2"/><path d="M110.013.256a4.983 4.983 0 0 0-6.29 3.166 4.986 4.986 0 0 0 .692 4.47l8.777-4.414a4.951 4.951 0 0 0-3.179-3.222z" fill="#3C4043"/><path d="M106.316 11.22c-.517.612-22.379 21.769-22.379 21.769s3.547 4.974 10.828 7.38c7.823 2.588 14.955 2.588 14.955 2.588l-3.404-31.736z" fill="#FA7B17"/><path d="M50.375 50.973H31.83a5.466 5.466 0 0 1-5.467-5.467V26.967A5.466 5.466 0 0 1 31.83 21.5h18.545a5.466 5.466 0 0 1 5.467 5.467v18.546c0 3.017-2.45 5.46-5.467 5.46z" fill="#D2E3FC"/><path d="M32.185 36.237h17.834m-8.914-8.915l8.914 8.915-8.914 8.92" stroke="#4285F4" stroke-width="3.004" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/settings/privacy_page/BUILD.gn b/chrome/browser/resources/settings/privacy_page/BUILD.gn
index 77d457b..3eb3036 100644
--- a/chrome/browser/resources/settings/privacy_page/BUILD.gn
+++ b/chrome/browser/resources/settings/privacy_page/BUILD.gn
@@ -17,6 +17,7 @@
     ":personalization_options",
     ":privacy_page",
     ":privacy_page_browser_proxy",
+    ":privacy_review_promo",
     ":secure_dns",
     ":secure_dns_input",
     ":security_keys_bio_enroll_dialog",
@@ -106,6 +107,7 @@
 js_library("privacy_page") {
   deps = [
     ":privacy_page_browser_proxy",
+    ":privacy_review_promo",
     "..:hats_browser_proxy",
     "..:i18n_setup",
     "..:metrics_browser_proxy",
@@ -130,6 +132,15 @@
   deps = [ "//ui/webui/resources/js:cr.m" ]
 }
 
+js_library("privacy_review_promo") {
+  deps = [
+    "..:route",
+    "..:router",
+    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+    "//ui/webui/resources/js:i18n_behavior.m",
+  ]
+}
+
 js_library("security_keys_bio_enroll_dialog") {
   deps = [
     ":security_keys_browser_proxy",
@@ -215,6 +226,7 @@
     "do_not_track_toggle.js",
     "personalization_options.js",
     "privacy_page.js",
+    "privacy_review_promo.js",
     "secure_dns.js",
     "secure_dns_input.js",
     "security_keys_bio_enroll_dialog.js",
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review_promo.html b/chrome/browser/resources/settings/privacy_page/privacy_review_promo.html
new file mode 100644
index 0000000..5accb1a
--- /dev/null
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review_promo.html
@@ -0,0 +1,35 @@
+<style include="cr-shared-style settings-shared">
+  #wrapper {
+    align-items: center;
+    display: flex;
+    justify-content: space-between;
+    padding: var(--cr-section-padding);
+  }
+
+  h2 {
+    color: var(--cr-primary-text-color);
+    font-size: 22px;
+    padding-top: 0;
+  }
+
+  #bodyText {
+    padding-block-end: var(--cr-section-vertical-padding);
+  }
+</style>
+<div id="wrapper">
+  <div id="controlsColumn">
+    <h2 id="title" aria-hidden="true">
+      $i18n{privacyReviewPromoTitle}
+    </h2>
+    <div id="bodyText" class="cr-secondary-text" aria-hidden="true">
+      $i18n{privacyReviewPromoBody}
+    </div>
+    <cr-button class="action-button" id="startButton" role="button"
+        aria-labelledby="title" aria-describedby="bodyText"
+        no-search on-click="onPrivacyReviewClick_">
+      $i18n{privacyReviewPromoStartButton}
+    </cr-button>
+  </div>
+  <img id="banner" aria-hidden="true"
+      src="chrome://settings/images/privacy_review_promo_banner.svg">
+</div>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review_promo.js b/chrome/browser/resources/settings/privacy_page/privacy_review_promo.js
new file mode 100644
index 0000000..3d6991ef
--- /dev/null
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review_promo.js
@@ -0,0 +1,31 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'settings-privacy-review-promo' is an element representing a promo for the
+ * privacy review feature.
+ */
+import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {routes} from '../route.js';
+import {Router} from '../router.js';
+
+/** @polymer */
+export class PrivacyReviewPromoElement extends PolymerElement {
+  static get is() {
+    return 'settings-privacy-review-promo';
+  }
+
+  static get template() {
+    return html`{__html_template__}`;
+  }
+
+  /** @private */
+  onPrivacyReviewClick_() {
+    Router.getInstance().navigateTo(routes.PRIVACY_REVIEW);
+  }
+}
+
+customElements.define(PrivacyReviewPromoElement.is, PrivacyReviewPromoElement);
diff --git a/chrome/browser/resources/tab_search/app.html b/chrome/browser/resources/tab_search/app.html
index 3185012..7b937ba4 100644
--- a/chrome/browser/resources/tab_search/app.html
+++ b/chrome/browser/resources/tab_search/app.html
@@ -55,7 +55,7 @@
   }
 
   cr-expand-button {
-    --cr-expand-button-size: 28px;
+    --cr-expand-button-size: 24px;
     --cr-expand-button-icon-size: 16px;
     --cr-section-vertical-padding: 0;
     flex-grow: 1;
diff --git a/chrome/browser/resources/tab_search/app.js b/chrome/browser/resources/tab_search/app.js
index 7ace13d..2496038 100644
--- a/chrome/browser/resources/tab_search/app.js
+++ b/chrome/browser/resources/tab_search/app.js
@@ -4,6 +4,7 @@
 
 import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/mwb_element_shared_style.js';
 import 'chrome://resources/cr_elements/mwb_shared_style.js';
 import 'chrome://resources/cr_elements/mwb_shared_vars.js';
 import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
diff --git a/chrome/browser/resources/tab_search/tab_search_item.html b/chrome/browser/resources/tab_search/tab_search_item.html
index cadc364e..ef0c105 100644
--- a/chrome/browser/resources/tab_search/tab_search_item.html
+++ b/chrome/browser/resources/tab_search/tab_search_item.html
@@ -1,33 +1,23 @@
-<style>
+<style include="mwb-element-shared-style">
   :host(:focus) {
     outline: none;
   }
 
   :host(:is(.hovered, .selected)) .button-container {
     height: auto;
+    overflow: visible;
     width: auto;
   }
 
   .button-container {
-    flex-shrink: 0;
     height: 0;
+    margin-inline-start: 2px;
     overflow: hidden;
     width: 0;
   }
 
   .button-container cr-icon-button {
     --cr-icon-button-fill-color: var(--mwb-icon-button-fill-color);
-    --cr-icon-button-focus-outline-color: transparent;
-    border: 2px solid transparent;
-    border-radius: 50%;
-  }
-
-  .button-container cr-icon-button:hover {
-    background-color: var(--mwb-icon-button-hover-background-color);
-  }
-
-  .button-container cr-icon-button:focus {
-    border-color: var(--mwb-icon-button-focus-ring-color);
   }
 
   .favicon {
@@ -82,10 +72,8 @@
   }
 
   cr-icon-button {
-    --cr-icon-button-icon-size: var(--mwb-icon-size);
     --cr-icon-button-margin-end: 0;
     --cr-icon-button-margin-start: 0;
-    --cr-icon-button-size: calc(var(--mwb-icon-size) * 1.5);
   }
 
   .search-highlight-hit {
diff --git a/chrome/browser/resources/web_footer_experiment/index.html b/chrome/browser/resources/web_footer_experiment/index.html
deleted file mode 100644
index ea95277..0000000
--- a/chrome/browser/resources/web_footer_experiment/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <style>
-    body {
-      background-color: #9e9e9e;
-    }
-  </style>
-</head>
-</html>
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
index e67be2e..ff31c91f 100644
--- a/chrome/browser/safe_browsing/BUILD.gn
+++ b/chrome/browser/safe_browsing/BUILD.gn
@@ -343,7 +343,10 @@
           "telemetry/android/android_telemetry_service.cc",
           "telemetry/android/android_telemetry_service.h",
         ]
-        deps += [ "//components/safe_browsing/android:remote_database_manager" ]
+        deps += [
+          "//components/safe_browsing/android:remote_database_manager",
+          "//ui/android:android",
+        ]
       }
       deps += [
         "//chrome/browser/safe_browsing/android",
diff --git a/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc b/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
index 71edf4d..8f913b72 100644
--- a/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
+++ b/chrome/browser/safe_browsing/android/password_reuse_controller_android.cc
@@ -8,7 +8,6 @@
 
 #include "base/callback.h"
 #include "base/feature_list.h"
-#include "chrome/browser/password_manager/android/password_checkup_launcher_helper.h"
 #include "chrome/browser/ui/android/safe_browsing/password_reuse_dialog_view_android.h"
 #include "components/safe_browsing/core/browser/password_protection/metrics_util.h"
 #include "components/safe_browsing/core/common/features.h"
@@ -51,21 +50,6 @@
 }
 
 void PasswordReuseControllerAndroid::ShowCheckPasswords() {
-  // TODO(rsamp) Move the below launch code to HandleUserActionOnModalWarning()
-  // in ChromePasswordProtectionService.
-
-  if (password_type_.account_type() ==
-          ReusedPasswordAccountType::SAVED_PASSWORD &&
-      base::FeatureList::IsEnabled(
-          safe_browsing::
-              kSafeBrowsingPasswordCheckIntegrationForSavedPasswordsAndroid)) {
-    JNIEnv* env = base::android::AttachCurrentThread();
-
-    PasswordCheckupLauncherHelper::
-        LaunchLocalCheckupFromPhishGuardWarningDialog(
-            env, window_android_->GetJavaObject());
-  }
-
   if (done_callback_)
     std::move(done_callback_).Run(WarningAction::CHANGE_PASSWORD);
 
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win.cc
index 33cbdbd..492f5b7 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win.cc
@@ -144,10 +144,9 @@
     cleaner_command_line_.AppendSwitchASCII(
         chrome_cleaner::kSRTPromptFieldTrialGroupNameSwitch, group_name);
   }
-
-  if (base::FeatureList::IsEnabled(kResetShortcutsFeature)) {
-    cleaner_command_line_.AppendSwitch(chrome_cleaner::kResetShortcutsSwitch);
-  }
+  // Older versions of the Chrome Cleanup Tool needs this switch to ensure
+  // resetting of shortcuts.
+  cleaner_command_line_.AppendSwitch(chrome_cleaner::kResetShortcutsSwitch);
 }
 
 ChromeCleanerRunner::ProcessStatus
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win_unittest.cc b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win_unittest.cc
index 30f492a..eb10c4ce 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win_unittest.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win_unittest.cc
@@ -14,7 +14,6 @@
 #include "base/run_loop.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/test/multiprocess_test.h"
-#include "base/test/scoped_feature_list.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "chrome/browser/safe_browsing/chrome_cleaner/chrome_prompt_actions_win.h"
 #include "chrome/browser/safe_browsing/chrome_cleaner/mock_chrome_cleaner_process_win.h"
@@ -61,13 +60,11 @@
 //       process running in scanning mode.
 // - chrome_prompt (ChromePromptValue): indicates if this is a user-initiated
 //       run or if the user was prompted.
-// - reset-shortcuts (bool): indicates reset shortcuts feature is enabled.
 class ChromeCleanerRunnerSimpleTest
     : public testing::TestWithParam<std::tuple<ChromeMetricsStatus,
                                                ReporterEngine,
                                                bool,
-                                               ChromePromptValue,
-                                               bool>>,
+                                               ChromePromptValue>>,
       public ChromeCleanerRunnerTestDelegate {
  public:
   ChromeCleanerRunnerSimpleTest()
@@ -75,12 +72,7 @@
 
   void SetUp() override {
     std::tie(metrics_status_, reporter_engine_, cleaner_logs_enabled_,
-             chrome_prompt_, reset_shortcuts_enabled_) = GetParam();
-
-    if (reset_shortcuts_enabled_)
-      scoped_feature_list_.InitAndEnableFeature(kResetShortcutsFeature);
-    else
-      scoped_feature_list_.InitAndDisableFeature(kResetShortcutsFeature);
+             chrome_prompt_) = GetParam();
 
     SetChromeCleanerRunnerTestDelegateForTesting(this);
   }
@@ -152,7 +144,6 @@
   ReporterEngine reporter_engine_;
   bool cleaner_logs_enabled_ = false;
   ChromePromptValue chrome_prompt_ = ChromePromptValue::kUnspecified;
-  bool reset_shortcuts_enabled_ = false;
 
   // Set by LaunchTestProcess.
   base::CommandLine command_line_;
@@ -162,9 +153,6 @@
   ChromeCleanerRunner::ProcessStatus process_status_;
 
   base::RunLoop run_loop_;
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
 };
 
 TEST_P(ChromeCleanerRunnerSimpleTest, LaunchParams) {
@@ -202,8 +190,6 @@
   EXPECT_EQ(
       command_line_.GetSwitchValueASCII(chrome_cleaner::kChromePromptSwitch),
       base::NumberToString(static_cast<int>(chrome_prompt_)));
-  EXPECT_EQ(reset_shortcuts_enabled_,
-            command_line_.HasSwitch(chrome_cleaner::kResetShortcutsSwitch));
 }
 
 INSTANTIATE_TEST_SUITE_P(All,
@@ -215,8 +201,7 @@
                                         ReporterEngine::kNewEngine),
                                  Bool(),
                                  Values(ChromePromptValue::kPrompted,
-                                        ChromePromptValue::kUserInitiated),
-                                 Bool()));
+                                        ChromePromptValue::kUserInitiated)));
 
 typedef std::tuple<UwsFoundStatus,
                    MockChromeCleanerProcess::ItemsReporting,
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.cc
index cb936e8..959c0e7 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.cc
@@ -39,9 +39,6 @@
 const base::Feature kChromeCleanupDistributionFeature{
     "ChromeCleanupDistribution", base::FEATURE_DISABLED_BY_DEFAULT};
 
-const base::Feature kResetShortcutsFeature{"ChromeCleanupResetShortcuts",
-                                           base::FEATURE_ENABLED_BY_DEFAULT};
-
 bool IsSRTPromptFeatureEnabled() {
   return base::FeatureList::IsEnabled(kChromeCleanupInBrowserPromptFeature);
 }
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h b/chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h
index 5a896930..359bd900 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h
+++ b/chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h
@@ -60,10 +60,6 @@
 // versions will be downloaded. When not enabled, default versions will be used.
 extern const base::Feature kChromeCleanupDistributionFeature;
 
-// Reset shortcuts feature. When enabled, Chrome Cleaner will reset all Chrome
-// shortcuts for the current Windows users.
-extern const base::Feature kResetShortcutsFeature;
-
 // Returns true if this Chrome is in a field trial group which shows the SRT
 // prompt.
 bool IsSRTPromptFeatureEnabled();
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.cc b/chrome/browser/safe_browsing/chrome_password_protection_service.cc
index 6bbcad5..d8272c6 100644
--- a/chrome/browser/safe_browsing/chrome_password_protection_service.cc
+++ b/chrome/browser/safe_browsing/chrome_password_protection_service.cc
@@ -96,8 +96,10 @@
 #endif
 
 #if defined(OS_ANDROID)
+#include "chrome/browser/password_manager/android/password_checkup_launcher_helper.h"
 #include "chrome/browser/safe_browsing/android/password_reuse_controller_android.h"
 #include "chrome/browser/safe_browsing/android/safe_browsing_referring_app_bridge_android.h"
+#include "ui/android/window_android.h"
 #else
 #include "chrome/browser/ui/browser_list.h"
 #endif
@@ -1020,6 +1022,17 @@
     OpenUrl(web_contents, GetDefaultChangePasswordURL(), content::Referrer(),
             /*in_new_tab=*/true);
   } else {
+#if defined(OS_ANDROID)
+    if (base::FeatureList::IsEnabled(
+            safe_browsing::
+                kSafeBrowsingPasswordCheckIntegrationForSavedPasswordsAndroid)) {
+      JNIEnv* env = base::android::AttachCurrentThread();
+
+      PasswordCheckupLauncherHelper::
+          LaunchLocalCheckupFromPhishGuardWarningDialog(
+              env, web_contents->GetTopLevelNativeWindow()->GetJavaObject());
+    }
+#endif
 #if BUILDFLAG(FULL_SAFE_BROWSING)
     // Opens chrome://settings/passwords/check in a new tab.
     chrome::ShowPasswordCheck(chrome::FindBrowserWithWebContents(web_contents));
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java
index cc35d33b..5f6feb4 100644
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java
@@ -11,7 +11,6 @@
 import androidx.annotation.VisibleForTesting;
 
 import org.chromium.base.Callback;
-import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.task.PostTask;
 import org.chromium.blink.mojom.TextFragmentReceiver;
 import org.chromium.chrome.R;
@@ -59,7 +58,6 @@
     private final Tab mTab;
     private final ChromeShareExtras mChromeShareExtras;
     private final long mShareStartTime;
-    private final long mRequestSelectorStartTime;
 
     private String mShareUrl;
     private TextFragmentReceiver mProducer;
@@ -102,7 +100,6 @@
 
         mTab.addObserver(this);
         mCancelRequest = false;
-        mRequestSelectorStartTime = System.currentTimeMillis();
     }
 
     public ShareParams getShareParams(@LinkToggleState int linkToggleState) {
@@ -122,9 +119,6 @@
 
     @VisibleForTesting
     void onSelectorReady(String selector) {
-        RecordHistogram.recordTimesHistogram(
-                "Sharing.SharingHubAndroid.SharedHighlights.TimeToGetLinkToText",
-                System.currentTimeMillis() - mRequestSelectorStartTime);
         if (mCancelRequest) return;
 
         if (ChromeFeatureList.isEnabled(ChromeFeatureList.PREEMPTIVE_LINK_TO_TEXT_GENERATION)) {
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 640cb74..879c24c 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1582,8 +1582,6 @@
       "webui/util/image_util.h",
       "webui/web_app_internals/web_app_internals_source.cc",
       "webui/web_app_internals/web_app_internals_source.h",
-      "webui/web_footer_experiment_ui.cc",
-      "webui/web_footer_experiment_ui.h",
       "webui/whats_new/whats_new_handler.cc",
       "webui/whats_new/whats_new_handler.h",
       "webui/whats_new/whats_new_ui.cc",
@@ -3973,8 +3971,6 @@
       "views/frame/web_contents_close_handler.cc",
       "views/frame/web_contents_close_handler.h",
       "views/frame/web_contents_close_handler_delegate.h",
-      "views/frame/web_footer_experiment_view.cc",
-      "views/frame/web_footer_experiment_view.h",
       "views/fullscreen_control/fullscreen_control_host.cc",
       "views/fullscreen_control/fullscreen_control_host.h",
       "views/global_error_bubble_view.cc",
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
index cc84c90..c528e4b 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
@@ -164,7 +164,7 @@
      */
     void deleteSuggestion(int position) {
         if (mNativeController == 0) return;
-        if (!mAutocompleteResult.verifyCoherency()) return;
+        if (!mAutocompleteResult.verifyCoherency(position)) return;
         AutocompleteControllerJni.get().deleteSuggestion(mNativeController, position);
     }
 
@@ -202,7 +202,7 @@
             @NonNull String currentPageUrl, int pageClassification, long elapsedTimeSinceModified,
             int completedLength, @Nullable WebContents webContents) {
         if (mNativeController == 0) return;
-        if (!mAutocompleteResult.verifyCoherency()) return;
+        if (!mAutocompleteResult.verifyCoherency(selectedIndex)) return;
         AutocompleteControllerJni.get().onSuggestionSelected(mNativeController, selectedIndex,
                 disposition, currentPageUrl, pageClassification, elapsedTimeSinceModified,
                 completedLength, webContents);
@@ -238,7 +238,7 @@
     GURL updateMatchDestinationUrlWithQueryFormulationTime(
             int selectedIndex, long elapsedTimeSinceInputChange) {
         if (mNativeController == 0) return null;
-        if (!mAutocompleteResult.verifyCoherency()) return null;
+        if (!mAutocompleteResult.verifyCoherency(selectedIndex)) return null;
         return updateMatchDestinationUrlWithQueryFormulationTime(
                 selectedIndex, elapsedTimeSinceInputChange, null, null);
     }
@@ -270,7 +270,7 @@
             long elapsedTimeSinceInputChange, @Nullable String newQueryText,
             @Nullable List<String> newQueryParams) {
         if (mNativeController == 0) return null;
-        if (!mAutocompleteResult.verifyCoherency()) return null;
+        if (!mAutocompleteResult.verifyCoherency(selectedIndex)) return null;
         return AutocompleteControllerJni.get().updateMatchDestinationURLWithQueryFormulationTime(
                 mNativeController, selectedIndex, elapsedTimeSinceInputChange, newQueryText,
                 newQueryParams == null ? null
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchServiceUnitTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchServiceUnitTest.java
index 00765deca..a3f1542 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchServiceUnitTest.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchServiceUnitTest.java
@@ -32,7 +32,6 @@
 import org.robolectric.annotation.Config;
 
 import org.chromium.base.BaseSwitches;
-import org.chromium.base.CommandLine;
 import org.chromium.base.Promise;
 import org.chromium.base.SysUtils;
 import org.chromium.base.metrics.test.ShadowRecordHistogram;
@@ -79,6 +78,9 @@
     public final AccountManagerTestRule mAccountManagerTestRule =
             new AccountManagerTestRule(mFakeAccountManagerFacade);
 
+    @Rule
+    public TestRule mCommandLineFlagsRule = CommandLineFlags.getTestRule();
+
     @Mock
     GSAState mGsaState;
     @Mock
@@ -238,8 +240,8 @@
 
     @Test
     @Feature("OmniboxAssistantVoiceSearch")
+    @CommandLineFlags.Add(BaseSwitches.ENABLE_LOW_END_DEVICE_MODE)
     public void testAssistantEligibility_LowEndDevice() {
-        CommandLine.getInstance().appendSwitch(BaseSwitches.ENABLE_LOW_END_DEVICE_MODE);
         SysUtils.resetForTesting();
 
         List<Integer> reasons = new ArrayList<>();
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index 31813394..8606891 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2844,6 +2844,12 @@
       <message name="IDS_FEED_MANAGE_HIDDEN_DESCRIPTION" desc="Content description to manage hiding and unhiding topics.">
         Hide and unhide topics
       </message>
+      <message name="IDS_FEED_MANAGE_AUTOPLAY" desc="Menu item to manage feed autoplay from the feed header overflow menu.">
+        Autoplay
+      </message>
+      <message name="IDS_FEED_MANAGE_AUTOPLAY_DESCRIPTION" desc="Content description to manage feed autoplay from the feed header overflow menu.">
+        Manage Video Preview Settings
+      </message>
       <message name="IDS_FEED_MANAGE_FOLLOWING" desc="Menu item to manage followed sites.">
         Following
       </message>
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_AUTOPLAY.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_AUTOPLAY.png.sha1
new file mode 100644
index 0000000..0b5b950
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_AUTOPLAY.png.sha1
@@ -0,0 +1 @@
+5aefbc92fa428f9553dec2c64e26e5d7e23367e9
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_AUTOPLAY_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_AUTOPLAY_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..0b5b950
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_AUTOPLAY_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+5aefbc92fa428f9553dec2c64e26e5d7e23367e9
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
index 1b4cfa8..71a6100c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Soek vinnig met jou stem. Raak en hou om hierdie kortpad te wysig.</translation>
 <translation id="1028699632127661925">Stuur tans na <ph name="DEVICE_NAME" /> toe …</translation>
 <translation id="103269572468856066">Vee ook dié data uit?</translation>
+<translation id="1034259925032978114">Venster is oop</translation>
 <translation id="1036348656032585052">Skakel af</translation>
 <translation id="1036727731225946849">Voeg tans <ph name="WEBAPK_NAME" /> by …</translation>
 <translation id="1045899828449635435">Vee ook dié data uit?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Kry Chrome se sterkste beskerming</translation>
 <translation id="2200113223741723867">Bestuur deling van gebruikdata</translation>
 <translation id="2227444325776770048">Gaan voort as <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">Leë venster</translation>
 <translation id="2239812875700136898">Beheer jou berigte vanaf die "Opsies vir Ontdek"-knoppie</translation>
 <translation id="2259659629660284697">Voer wagwoorde uit …</translation>
 <translation id="2276696007612801991">Meld by jou Google-rekening aan om jou wagwoorde na te gaan</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">Chrome se tuisblad</translation>
 <translation id="3157842584138209013">Sien deur die Meer Opsies-knoppie hoeveel data jy bespaar het</translation>
 <translation id="3166827708714933426">Oortjie- en vensterkortpaaie</translation>
+<translation id="316694332262407393">Chrome werk reeds hier.</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">Amper klaar!</translation>
 <translation id="3207960819495026254">Geboekmerk</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Help websekuriteit verbeter</translation>
 <translation id="3602290021589620013">Voorskou</translation>
 <translation id="3616113530831147358">Oudio</translation>
+<translation id="3622349720008044802">Bestuur vensters</translation>
 <translation id="3631987586758005671">Deel tans na <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">Ontmasker wagwoord</translation>
 <translation id="363596933471559332">Meld outomaties met gebergde eiebewyse by webwerwe aan. As die kenmerk af is, sal jy elke keer om verifikasie gevra word voordat jy by 'n webwerf aanmeld.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Vertaalinstellings</translation>
 <translation id="3738139272394829648">Raak om te soek</translation>
 <translation id="3739899004075612870">Geboekmerk in <ph name="PRODUCT_NAME" /></translation>
+<translation id="3740525748616366977">Stemsoektog is nie op hierdie toestel beskikbaar nie</translation>
 <translation id="3749259744154402564">Ongesteun</translation>
 <translation id="3771001275138982843">Kon nie die opdatering aflaai nie</translation>
 <translation id="3771033907050503522">Incognito-oortjies</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Basiese data plus inligting oor die webwerwe wat jy besoek en programme wat jy gebruik</translation>
 <translation id="3775705724665058594">Stuur na jou toestelle toe</translation>
 <translation id="3778956594442850293">By tuisskerm gevoeg</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 oortjie}other{# oortjies}}</translation>
 <translation id="3803784507854318295">Bestuur outospeel</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Bestuur</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">“</translation>
 <translation id="393697183122708255">Geaktiveerde stemsoektog is onbeskikbaar</translation>
 <translation id="395377504920307820">Gebruik sonder 'n rekening</translation>
+<translation id="3958287878205277013">Maak alle Incognito-oortjies toe om Incognito-blaaigeskiedenis op jou toestel uit te vee.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome sal jou bladsy laai wanneer dit gereed is}other{Chrome sal jou bladsye laai wanneer dit gereed is}}</translation>
 <translation id="3962957115499249330">Jy sal 'n kennisgewing sien wanneer hierdie aflaai oor wi-fi begin.</translation>
 <translation id="3963007978381181125">Wagfrase-enkripsie sluit nie betaalmetodes en adresse van Google Pay af in nie. Net iemand met jou wagfrase kan jou geënkripteerde data lees. Die wagfrase word nie na Google toe gestuur of deur Google geberg nie. As jy jou wagfrase vergeet of hierdie instelling wil verander, sal jy sinkronisering moet terugstel. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 Jou Google-rekening het dalk ander vorme van blaaigeskiedenis, soos soektogte en aktiwiteit van ander Google-dienste af, by <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="4532845899244822526">Kies vouer</translation>
 <translation id="4538018662093857852">Skakel Ligte Modus aan</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> oortjie}other{<ph name="TAB_COUNT_MANY" /> oortjies, <ph name="TAB_COUNT_INCOGNITO" /> incognito}}</translation>
 <translation id="4550003330909367850">Stel skermslot op hierdie toestel op om jou wagwoord hier te bekyk of te kopieer.</translation>
 <translation id="4554077758708533499">Gekoppel met USB-kabel</translation>
 <translation id="4557685098773234337">Voeg hierdie bladsy by jou tuisskerm om vinniger hierheen te kom</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">Ongesteunde aantal Chrome-gevalle.</translation>
 <translation id="4908869848243824489">Ontdek deur Google</translation>
 <translation id="4910889077668685004">Betalingprogramme</translation>
+<translation id="4912413785358399818">Skuif oortjie</translation>
 <translation id="4913161338056004800">Stel statistiek terug</translation>
 <translation id="4913169188695071480">Hou op herlaai</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# bladsy}other{# bladsye}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">Laat toe</translation>
 <translation id="5054455334322721892"><ph name="BEGIN_LINK1" />Ander soorte aktiwiteit<ph name="END_LINK1" /> sal dalk in jou Google-rekening gestoor word wanneer jy aangemeld is. Jy kan hulle enige tyd uitvee.</translation>
 <translation id="5061533557687621530">Om uit te vind hoe die weer is, kan jy op die mikrofoon tik en sê "What’s the weather today?” (Hoe lyk die weer vandag?)</translation>
+<translation id="506254248375231072">Geen oortjies nie</translation>
 <translation id="5087580092889165836">Voeg kaart by</translation>
+<translation id="5091199029769593641">Jy sal binnekort stories van <ph name="SITE_NAME" /> af sien wanneer jy 'n nuwe oortjie oopmaak. Werwe wat jy volg, word in jou Google-rekening gestoor. Jy kan hulle bestuur in Ontdek-instellings.</translation>
 <translation id="5091249083535528968">Uitgebreide datagebruik</translation>
 <translation id="509429900233858213">'n Fout het voorgekom.</translation>
 <translation id="510275257476243843">1 uur oor</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">met <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">Laai bladsy af</translation>
 <translation id="5458366071038729214">Jy sal werwe wat jy volg hier kry</translation>
+<translation id="5468068603361015296">Wil jy <ph name="FILE_NAME" /> in elk geval aflaai?</translation>
 <translation id="548278423535722844">Maak in kaarteprogram oop</translation>
 <translation id="5483197086164197190">Navigeer in Chrome</translation>
 <translation id="5487521232677179737">Vee data uit</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">Kopiereg <ph name="YEAR" /> Google LLC. Alle regte voorbehou.</translation>
 <translation id="5810864297166300463">Webbystand</translation>
 <translation id="5814131985548525293">Tik hier of tik op die stemikoon om te begin</translation>
+<translation id="5814749351757353073">Bly op hoogte van jou gunstelingwerwe</translation>
 <translation id="583281660410589416">Onbekend</translation>
 <translation id="5833984609253377421">Deel skakel</translation>
 <translation id="5834764604050996579">Laat Chrome jou kamera gebruik om 'n QR-kode te skandeer</translation>
@@ -824,6 +837,7 @@
 
 Byvoorbeeld, sommige webwerwe kan op hierdie versoek reageer deur vir jou advertensies te wys wat nie gegrond is op ander webwerwe wat jy besoek het nie. Baie webwerwe sal steeds jou blaaidata insamel en gebruik – byvoorbeeld om sekuriteit te verbeter, om inhoud, advertensies en aanbevelings te verskaf en om verslagdoeningstatistiek te genereer.</translation>
 <translation id="624789221780392884">Opdatering gereed</translation>
+<translation id="6264376385120300461">Laai in elk geval af</translation>
 <translation id="6277522088822131679">Kon nie die bladsy uitdruk nie. Probeer asseblief weer.</translation>
 <translation id="6278428485366576908">Tema</translation>
 <translation id="6292420053234093573">As jy Chrome gebruik, stem jy in tot <ph name="BEGIN_LINK1" />Google se diensbepalings<ph name="END_LINK1" /> en <ph name="BEGIN_LINK2" />Google Chrome en Chrome-bedryfstelsel se bykomende diensbepalings<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">Iets is fout. Probeer later weer.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{1 uur gelede nagegaan}other{# uur gelede nagegaan}}</translation>
 <translation id="6545017243486555795">Vee alle data uit</translation>
+<translation id="6546511553472444032">Lêer kan skadelik wees</translation>
 <translation id="6560414384669816528">Soek met Sogou</translation>
 <translation id="656065428026159829">Sien meer</translation>
 <translation id="6565959834589222080">Wi-fi word gebruik wanneer dit beskikbaar is</translation>
 <translation id="6566259936974865419">Chrome het vir jou <ph name="GIGABYTES" /> GB bespaar</translation>
+<translation id="6569373978618239158">Jy sal nou stories van <ph name="SITE_NAME" /> af sien wanneer jy 'n nuwe oortjie oopmaak. Werwe wat jy volg, word in jou Google-rekening gestoor. Jy kan hulle bestuur in Ontdek-instellings.</translation>
 <translation id="6573096386450695060">Laat altyd toe</translation>
 <translation id="6573431926118603307">Oortjies wat jy op jou ander toestelle in Chrome oopgemaak het, sal hier verskyn.</translation>
 <translation id="6583199322650523874">Boekmerk die huidige bladsy</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">Verlaat Incognitomodus</translation>
 <translation id="6979737339423435258">Van die begin af</translation>
 <translation id="6981982820502123353">Toeganklikheid</translation>
+<translation id="6987047470128880212">Incognito is nie op hierdie toestel beskikbaar nie</translation>
 <translation id="6989267951144302301">Kon nie aflaai nie</translation>
 <translation id="6995899638241819463">Waarsku jou as wagwoorde in 'n dataskending blootgestel is</translation>
 <translation id="7001056293070445572">Hierdie lêer is te groot (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">Voorskou-oortjie</translation>
 <translation id="7484997419527351112">Ontdek – af</translation>
 <translation id="7485033510383818941">Trek die bladsy af om die stroominhoud te herlaai</translation>
+<translation id="749294055653435199">Google Lens is nie op hierdie toestel beskikbaar nie</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (opgedateer <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">data bespaar</translation>
 <translation id="7498271377022651285">Wag asseblief …</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">Sopas nagegaan</translation>
 <translation id="8040831032425909005">Ikoon vir kitshandeling-en-websoek-legstuk</translation>
 <translation id="804335162455518893">Kon nie SD-kaart kry nie</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> incognito-oortjie}other{<ph name="TAB_COUNT_NORMAL" /> incognito-oortjies}}</translation>
 <translation id="8051695050440594747"><ph name="MEGABYTES" /> MB beskikbaar</translation>
 <translation id="8058746566562539958">Open in nuwe Chrome-oortjie</translation>
 <translation id="8063895661287329888">Kon nie boekmerk byvoeg nie.</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">foon</translation>
 <translation id="8636825310635137004">Skakel sinkronisering aan om jou oortjies van jou ander toestelle af te kry.</translation>
 <translation id="8641930654639604085">Probeer volwasse werwe blokkeer</translation>
+<translation id="864544049772947936">Bestuur vensters (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Jy kan die data in Chrome-instellings uitvee</translation>
 <translation id="8656747343598256512">Meld met jou Google-rekening op hierdie werf en by Chrome aan. Jy kan sinkronisering later aanskakel.</translation>
 <translation id="8659579665266920523">Hoe om met Chrome te soek</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">Prente</translation>
 <translation id="926205370408745186">Verwyder jou Chrome-aktiwiteit van Digitale Welstand</translation>
 <translation id="927968626442779827">Gebruik Ligte Modus op Google Chrome</translation>
+<translation id="928550791203542716">Volg tans <ph name="SITE_NAME" /></translation>
 <translation id="932327136139879170">Tuis</translation>
 <translation id="938850635132480979">Fout: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Tik wagfrase in</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
index fd0106d..d51dfbdb 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -873,7 +873,7 @@
 <translation id="6489610539826642779">Seznam četby <ph name="BEGIN_NEW" />Nové<ph name="END_NEW" /></translation>
 <translation id="6490496612063106490">Odkaz na zvýraznění</translation>
 <translation id="6496823230996795692">Chcete-li poprvé použít aplikaci <ph name="APP_NAME" />, připojte se k internetu.</translation>
-<translation id="650224091954855786">{FILE_COUNT,plural, =1{Byl stažen soubor}few{Byly staženy # soubory}many{Bylo staženo # souboru}other{Bylo staženo # souborů}}</translation>
+<translation id="650224091954855786">{FILE_COUNT,plural, =1{Byl stažen jeden soubor}few{Byly staženy # soubory}many{Bylo staženo # souboru}other{Bylo staženo # souborů}}</translation>
 <translation id="6508722015517270189">Restartujte Chrome</translation>
 <translation id="6527303717912515753">Sdílet</translation>
 <translation id="6532866250404780454">Weby navštívené v Chromu se nebudou zobrazovat. Všechny časovače webů budou smazány.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
index 53317cba..a4f4f20 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Søg hurtigt med din stemme. Hold fingeren nede for at redigere denne genvej.</translation>
 <translation id="1028699632127661925">Sender til <ph name="DEVICE_NAME" />...</translation>
 <translation id="103269572468856066">Vil du rydde data fra disse websites og apps?</translation>
+<translation id="1034259925032978114">Et vindue er åbent</translation>
 <translation id="1036348656032585052">Deaktiver</translation>
 <translation id="1036727731225946849">Tilføjer <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1045899828449635435">Vil du rydde data fra disse websites?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Få Chromes stærkeste beskyttelse</translation>
 <translation id="2200113223741723867">Administrer deling af brugsdata</translation>
 <translation id="2227444325776770048">Fortsæt som <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">Tomt vindue</translation>
 <translation id="2239812875700136898">Administrer dine historier ved hjælp af knappen Indstillinger for Discover</translation>
 <translation id="2259659629660284697">Eksportér adgangskoder…</translation>
 <translation id="2276696007612801991">Log ind på din Google-konto for at tjekke dine adgangskoder</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">Chromes startside</translation>
 <translation id="3157842584138209013">Se, hvor meget data du har sparet via knappen Flere valgmuligheder</translation>
 <translation id="3166827708714933426">Genveje på faner og i vinduer</translation>
+<translation id="316694332262407393">Chrome kører allerede her.</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">Du er næsten færdig.</translation>
 <translation id="3207960819495026254">Gemt som bogmærke</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Gør sikkerheden på nettet bedre</translation>
 <translation id="3602290021589620013">Forhåndsvisning</translation>
 <translation id="3616113530831147358">Lyd</translation>
+<translation id="3622349720008044802">Administrer vinduer</translation>
 <translation id="3631987586758005671">Deler med <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">Vis adgangskoden</translation>
 <translation id="363596933471559332">Log automatisk ind på websites med gemte loginoplysninger. Når funktionen er slået fra, bliver du bedt om at bekræfte, hver gang du vil logge ind på et website.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Indstillinger for oversættelse</translation>
 <translation id="3738139272394829648">Tryk for at søge</translation>
 <translation id="3739899004075612870">Tilføjet som bogmærke i <ph name="PRODUCT_NAME" /></translation>
+<translation id="3740525748616366977">Stemmesøgning er ikke tilgængelig på denne enhed</translation>
 <translation id="3749259744154402564">Understøttes ikke</translation>
 <translation id="3771001275138982843">Opdateringen kunne ikke downloades</translation>
 <translation id="3771033907050503522">Inkognitofaner</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Grundlæggende data samt oplysninger om de websites, du besøger, og de apps, du bruger</translation>
 <translation id="3775705724665058594">Send til dine enheder</translation>
 <translation id="3778956594442850293">Føjet til startskærmen</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 fane}one{# fane}other{# faner}}</translation>
 <translation id="3803784507854318295">Administrer autoplay</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Valgmuligheder</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">"</translation>
 <translation id="393697183122708255">Aktiveret talesøgning ikke tilgængelig</translation>
 <translation id="395377504920307820">Brug uden en konto</translation>
+<translation id="3958287878205277013">Luk alle inkognitofaner for at rydde browserhistorikken for inkognitovinduet fra din enhed.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome indlæser din side, når det er muligt}one{Chrome indlæser din side, når det er muligt}other{Chrome indlæser dine sider, når det er muligt}}</translation>
 <translation id="3962957115499249330">Du får en notifikation, når denne download starter via Wi-Fi.</translation>
 <translation id="3963007978381181125">Kryptering med adgangssætning omfatter ikke betalingsmetoder og adresser fra Google Pay. Det er kun personer med din adgangssætning, der kan læse dine krypterede data. Adgangssætningen sendes ikke til eller gemmes af Google. Hvis du glemmer din adgangssætning eller vil ændre denne indstilling, skal du nulstille synkronisering. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 Din Google-konto kan have andre former for browserhistorik, f.eks. søgninger og aktivitet fra andre Google-tjenester, på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="4532845899244822526">Vælg mappe</translation>
 <translation id="4538018662093857852">Aktivér Lite-tilstand</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> fane}one{<ph name="TAB_COUNT_MANY" /> fane og <ph name="TAB_COUNT_INCOGNITO" /> inkognitofane}other{<ph name="TAB_COUNT_MANY" /> faner og <ph name="TAB_COUNT_INCOGNITO" /> inkognitofaner}}</translation>
 <translation id="4550003330909367850">Indstil en skærmlås på denne enhed for at se eller kopiere din adgangkode her.</translation>
 <translation id="4554077758708533499">Tilsluttet via USB-kabel</translation>
 <translation id="4557685098773234337">Føj dette website til din startskærm for hurtigere at vende tilbage hertil</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">Der er flere forekomster af Chrome, end der understøttes.</translation>
 <translation id="4908869848243824489">Discover fra Google</translation>
 <translation id="4910889077668685004">Betalingsapps</translation>
+<translation id="4912413785358399818">Flyt fane</translation>
 <translation id="4913161338056004800">Nulstil statistik</translation>
 <translation id="4913169188695071480">Stop med at opdatere</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# side}one{# side}other{# sider}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">Tillad</translation>
 <translation id="5054455334322721892"><ph name="BEGIN_LINK1" />Andre former for aktivitet<ph name="END_LINK1" /> kan blive gemt på din Google-konto, når du er logget ind. Du kan til enhver tid slette dem.</translation>
 <translation id="5061533557687621530">Du kan tjekke vejrudsigten ved at trykke på mikrofonen og sige "Hvordan er vejret i dag?"</translation>
+<translation id="506254248375231072">Der er ingen faner</translation>
 <translation id="5087580092889165836">Tilføj kort</translation>
+<translation id="5091199029769593641">Du får snart vist historier fra <ph name="SITE_NAME" />, når du åbner en ny fane. De websites, du følger, gemmes på din Google-konto. Du kan administrere dem i indstillingerne for Discover.</translation>
 <translation id="5091249083535528968">Udvidede brugsdata</translation>
 <translation id="509429900233858213">Der opstod en fejl.</translation>
 <translation id="510275257476243843">1 time tilbage</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">med <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">Download siden</translation>
 <translation id="5458366071038729214">Du kan finde de websites, du følger, her</translation>
+<translation id="5468068603361015296">Vil du downloade <ph name="FILE_NAME" /> alligevel?</translation>
 <translation id="548278423535722844">Åbn i kortapp</translation>
 <translation id="5483197086164197190">Find rundt i Chrome</translation>
 <translation id="5487521232677179737">Ryd data</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">Copyright <ph name="YEAR" /> Google LLC. Alle rettigheder forbeholdes.</translation>
 <translation id="5810864297166300463">Webassistance</translation>
 <translation id="5814131985548525293">Skriv her, eller tryk på mikrofonikonet for at komme i gang</translation>
+<translation id="5814749351757353073">Hold dig opdateret om dine foretrukne websites</translation>
 <translation id="583281660410589416">Ukendt</translation>
 <translation id="5833984609253377421">Del link</translation>
 <translation id="5834764604050996579">Hvis du vil scanne en QR-kode, skal du give Chrome tilladelse til at bruge dit kamera</translation>
@@ -824,6 +837,7 @@
 
 Nogle websites kan f.eks. reagere på denne anmodning ved at vise dig annoncer, som ikke er baseret på andre websites, du har besøgt. Mange websites vil fortsat indsamle og bruge browserdata til f.eks. at forbedre sikkerheden, til at levere indhold, annoncer og anbefalinger og til at generere rapporteringsstatistik.</translation>
 <translation id="624789221780392884">Opdateringen er klar</translation>
+<translation id="6264376385120300461">Download alligevel</translation>
 <translation id="6277522088822131679">Der opstod et problem med udskrivning af siden. Prøv igen.</translation>
 <translation id="6278428485366576908">Tema</translation>
 <translation id="6292420053234093573">Når du bruger Chrome, accepterer du <ph name="BEGIN_LINK1" />Googles servicevilkår<ph name="END_LINK1" /> og de <ph name="BEGIN_LINK2" />yderligere servicevilkår for Google Chrome og Chrome OS<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">Noget gik galt. Prøv igen senere.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Tjekket for 1 time siden}one{Tjekket for # time siden}other{Tjekket for # timer siden}}</translation>
 <translation id="6545017243486555795">Ryd alle data</translation>
+<translation id="6546511553472444032">Filen kan være skadelig</translation>
 <translation id="6560414384669816528">Søg via Sogou</translation>
 <translation id="656065428026159829">Se mere</translation>
 <translation id="6565959834589222080">Wi-Fi anvendes, når det er tilgængeligt</translation>
 <translation id="6566259936974865419">Chrome har sparet dig <ph name="GIGABYTES" /> GB</translation>
+<translation id="6569373978618239158">Du får nu vist historier fra <ph name="SITE_NAME" />, når du åbner en ny fane. De websites, du følger, gemmes på din Google-konto. Du kan administrere dem i indstillingerne for Discover.</translation>
 <translation id="6573096386450695060">Tillad altid</translation>
 <translation id="6573431926118603307">Faner, du har åbnet i Chrome på dine andre enheder, vises her.</translation>
 <translation id="6583199322650523874">Føj et bogmærke til den aktuelle side</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">Forlad inkognitotilstand</translation>
 <translation id="6979737339423435258">Altid</translation>
 <translation id="6981982820502123353">Hjælpefunktioner</translation>
+<translation id="6987047470128880212">Inkognitofaner er ikke tilgængelige på denne enhed</translation>
 <translation id="6989267951144302301">Der kan ikke downloades</translation>
 <translation id="6995899638241819463">Få en underretning, hvis adgangskoder afsløres i forbindelse med et brud på datasikkerheden</translation>
 <translation id="7001056293070445572">Denne fil er stor (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">Fanen forhåndsvisning</translation>
 <translation id="7484997419527351112">Discover – deaktiveret</translation>
 <translation id="7485033510383818941">Træk ned på siden for at opdatere feedets indhold</translation>
+<translation id="749294055653435199">Google Lens er ikke tilgængelig på denne enhed</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (Opdateret <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">databesparelse</translation>
 <translation id="7498271377022651285">Vent…</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">Tjekket lige nu</translation>
 <translation id="8040831032425909005">Ikon for søgewidgetten i Smarte genveje</translation>
 <translation id="804335162455518893">SD-kortet blev ikke fundet</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> inkognitofane}one{<ph name="TAB_COUNT_NORMAL" /> inkognitofane}other{<ph name="TAB_COUNT_NORMAL" /> inkognitofaner}}</translation>
 <translation id="8051695050440594747"><ph name="MEGABYTES" /> MB er ledig</translation>
 <translation id="8058746566562539958">Åbn på ny fane i Chrome</translation>
 <translation id="8063895661287329888">Bogmærket kunne ikke tilføjes.</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">telefon</translation>
 <translation id="8636825310635137004">Aktivér synkronisering for at få adgang til dine faner på dine andre enheder.</translation>
 <translation id="8641930654639604085">Prøv at blokere websites med indhold for voksne</translation>
+<translation id="864544049772947936">Administrer vinduer (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Du kan rydde dataene i Chrome-indstillingerne</translation>
 <translation id="8656747343598256512">Log ind på dette website og i Chrome med din Google-konto. Du kan aktivere synkronisering senere.</translation>
 <translation id="8659579665266920523">Sådan søger du i Chrome</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">Billeder</translation>
 <translation id="926205370408745186">Fjern din Chrome-aktivitet fra Digital balance</translation>
 <translation id="927968626442779827">Brug Lite-tilstand i Google Chrome</translation>
+<translation id="928550791203542716">Følger <ph name="SITE_NAME" /></translation>
 <translation id="932327136139879170">Start</translation>
 <translation id="938850635132480979">Fejl: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Angiv adgangssætning</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
index d514b3b..a13428e6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Gyorsan végezhet hangalapú keresést. A gyorsparancs szerkesztéséhez tartsa lenyomva.</translation>
 <translation id="1028699632127661925">Küldés a következő eszközre: <ph name="DEVICE_NAME" />…</translation>
 <translation id="103269572468856066">Törli e webhelyek és alkalmazások adatait is?</translation>
+<translation id="1034259925032978114">Megnyitott ablak</translation>
 <translation id="1036348656032585052">Kikapcsolás</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> hozzáadása…</translation>
 <translation id="1045899828449635435">Törli az e webhelyekről származó adatokat is?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Állítsa be a Chrome legerősebb védelmét</translation>
 <translation id="2200113223741723867">Használati adatok megosztásának kezelése</translation>
 <translation id="2227444325776770048">Folytatás mint <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">Üres ablak</translation>
 <translation id="2239812875700136898">Hírek kezelése „A Discover beállításai” gombbal</translation>
 <translation id="2259659629660284697">Jelszavak exportálása…</translation>
 <translation id="2276696007612801991">Jelszavai ellenőrzéséhez jelentkezzen be Google-fiókjába</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">A Chrome kezdőlapja</translation>
 <translation id="3157842584138209013">A További lehetőségek gombra kattintva tekintheti meg, hogy mekkora a megtakarított adatmennyiség</translation>
 <translation id="3166827708714933426">Lapokkal és ablakokkal kapcsolatos billentyűparancsok</translation>
+<translation id="316694332262407393">A Chrome már most is fut.</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">Majdnem kész.</translation>
 <translation id="3207960819495026254">Könyvjelző rögzítve</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Legyen biztonságos a böngészés</translation>
 <translation id="3602290021589620013">Előnézet</translation>
 <translation id="3616113530831147358">Audio</translation>
+<translation id="3622349720008044802">Ablakok kezelése</translation>
 <translation id="3631987586758005671">Megosztás a következővel: <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">Jelszó megjelenítése</translation>
 <translation id="363596933471559332">Automatikus bejelentkezés webhelyekre a tárolt hitelesítő adatokkal. Ha ez a funkció ki van kapcsolva, mindig meg kell adnia hitelesítő adatait, amikor egy webhelyre szeretne bejelentkezni.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Fordítási beállítások</translation>
 <translation id="3738139272394829648">Érintéssel keresés</translation>
 <translation id="3739899004075612870">Felvéve a(z) <ph name="PRODUCT_NAME" /> könyvjelzői közé</translation>
+<translation id="3740525748616366977">A hangalapú keresés nem áll rendelkezésre ezen az eszközön</translation>
 <translation id="3749259744154402564">Nem támogatott</translation>
 <translation id="3771001275138982843">Nem sikerült letölteni a frissítést</translation>
 <translation id="3771033907050503522">Inkognitó lapok</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Alapvető adatok az Ön által felkeresett webhelyekkel és az Ön által használt alkalmazásokkal kapcsolatos adatokkal kiegészülve</translation>
 <translation id="3775705724665058594">Küldés a saját eszközökre</translation>
 <translation id="3778956594442850293">Hozzáadva a kezdőképernyőhöz</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 lap}other{# lap}}</translation>
 <translation id="3803784507854318295">Automatikus lejátszás kezelése</translation>
 <translation id="3810838688059735925">Videó</translation>
 <translation id="3810973564298564668">Szerkesztés</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">„</translation>
 <translation id="393697183122708255">Nincs engedélyezett hangalapú keresés</translation>
 <translation id="395377504920307820">Fiók nélküli használat</translation>
+<translation id="3958287878205277013">Az inkognitó mód böngészési előzményeinek az eszközről való törléséhez zárja be az összes lapot.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{A Chrome betölti az oldalt, amint lehetséges}other{A Chrome betölti az oldalakat, amint lehetséges}}</translation>
 <translation id="3962957115499249330">Értesítést kap, amikor ez a letöltés elindul Wi-Fi-hálózaton.</translation>
 <translation id="3963007978381181125">Az összetett jelszavas titkosítás nem tartalmazza a Google Payben megadott fizetési módokat és címeket. Titkosított adatait csak az olvashatja el, aki rendelkezik az Ön összetett jelszavával. Az összetett jelszót a Google nem kapja meg, és nem is tárolja. Ha elfelejtette összetett jelszavát, vagy módosítaná ezt a beállítást, alaphelyzetbe kell állítania a szinkronizálást. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" />.</translation>
@@ -544,6 +551,7 @@
 Előfordulhat, hogy Google-fiókjában (a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> címen) még szerepelnek a böngészési előzmények egyéb formái, így például a keresések és egyéb tevékenységek más Google-szolgáltatásokból.</translation>
 <translation id="4532845899244822526">Mappa kiválasztása</translation>
 <translation id="4538018662093857852">Az Egyszerűsített mód bekapcsolása</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> lap}other{<ph name="TAB_COUNT_MANY" /> lap, <ph name="TAB_COUNT_INCOGNITO" /> inkognitó módban}}</translation>
 <translation id="4550003330909367850">A jelszó megtekintéséhez vagy idemásolásához állítson be képernyőzárat az eszközön.</translation>
 <translation id="4554077758708533499">Csatlakoztatva USB-kábellel</translation>
 <translation id="4557685098773234337">Adja hozzá ezt az oldalt a kezdőképernyőhöz, hogy gyorsabban megnyithassa</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">Ilyen sok Chrome-példány nem futhat egyszerre.</translation>
 <translation id="4908869848243824489">Discover by Google</translation>
 <translation id="4910889077668685004">Fizetési alkalmazások</translation>
+<translation id="4912413785358399818">Lap áthelyezése</translation>
 <translation id="4913161338056004800">Statisztikák alaphelyzetbe állítása</translation>
 <translation id="4913169188695071480">Frissítés leállítása</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# oldal}other{# oldal}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">Engedélyezés</translation>
 <translation id="5054455334322721892">Amikor be van jelentkezve, a <ph name="BEGIN_LINK1" />további tevékenységtípusokat<ph name="END_LINK1" /> a rendszer elmentheti a Google-fiókjába. Bármikor törölheti őket.</translation>
 <translation id="5061533557687621530">Ha az időjárásra kíváncsi, koppintson a mikrofonra, és tegye fel a következő kérdést: „What's the weather today?” (Milyen az időjárás?)</translation>
+<translation id="506254248375231072">Nincs lap</translation>
 <translation id="5087580092889165836">Kártya hozzáadása</translation>
+<translation id="5091199029769593641">Új lap megnyitásakor hamarosan látni fogja a(z) <ph name="SITE_NAME" /> webhely történeteit. A követett webhelyeket a Google-fiókjába menti a rendszer. A Discover beállításaiban kezelheti őket.</translation>
 <translation id="5091249083535528968">Bővített használati adatok</translation>
 <translation id="509429900233858213">Hiba történt.</translation>
 <translation id="510275257476243843">1 óra van hátra</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656"><ph name="PROVIDER" /> szolgáltatóval</translation>
 <translation id="5456381639095306749">Oldal letöltése</translation>
 <translation id="5458366071038729214">A követett webhelyeket itt láthatja majd</translation>
+<translation id="5468068603361015296">Mindenképpen le szeretné tölteni a következő fájlt: <ph name="FILE_NAME" />?</translation>
 <translation id="548278423535722844">Megnyitás térképalkalmazásban</translation>
 <translation id="5483197086164197190">Navigáció a Chrome-ban</translation>
 <translation id="5487521232677179737">Adatok törlése</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">Copyright <ph name="YEAR" /> Google LLC. Minden jog fenntartva.</translation>
 <translation id="5810864297166300463">Webes segítség</translation>
 <translation id="5814131985548525293">Ide írhat, vagy koppintson a hangalapú keresés ikonjára az indításhoz</translation>
+<translation id="5814749351757353073">Naprakész lehet a kedvenc webhelyeivel</translation>
 <translation id="583281660410589416">Ismeretlen</translation>
 <translation id="5833984609253377421">Link megosztása</translation>
 <translation id="5834764604050996579">QR-kód beolvasásához engedélyezze a kamera használatát a Chrome számára</translation>
@@ -824,6 +837,7 @@
 
 Egyes webhelyek például válaszolhatnak rá úgy, hogy olyan hirdetéseket jelenítenek meg, amelyek nem a már felkeresett egyéb webhelyeken alapulnak. Számos webhely ilyenkor is gyűjti és felhasználja a böngészési adatokat (például a biztonság növelése, továbbá tartalom, hirdetések és ajánlatok biztosítása, valamint jelentésekhez használt statisztika előállítása céljából).</translation>
 <translation id="624789221780392884">A frissítés készen áll</translation>
+<translation id="6264376385120300461">Letöltés mindenképpen</translation>
 <translation id="6277522088822131679">Hiba történt az oldal nyomtatásakor. Próbálja újra.</translation>
 <translation id="6278428485366576908">Téma</translation>
 <translation id="6292420053234093573">A Chrome használatával elfogadja a <ph name="BEGIN_LINK1" />Google Általános Szerződési Feltételeket<ph name="END_LINK1" />, valamint <ph name="BEGIN_LINK2" />A Google Chrome és a Chrome OS Kiegészítő Általános Szerződési Feltételeit<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">Hiba történt. Próbálja újra később.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{1 órája ellenőrizve}other{# órája ellenőrizve}}</translation>
 <translation id="6545017243486555795">Összes adat törlése</translation>
+<translation id="6546511553472444032">A fájl kártékony lehet</translation>
 <translation id="6560414384669816528">Keresés a Sogou használatával</translation>
 <translation id="656065428026159829">Továbbiak megjelenítése</translation>
 <translation id="6565959834589222080">Wi-Fi használata, ha rendelkezésre áll</translation>
 <translation id="6566259936974865419">A Chrome megspórolt Önnek <ph name="GIGABYTES" /> GB-ot</translation>
+<translation id="6569373978618239158">Új lap megnyitásakor látni fogja a(z) <ph name="SITE_NAME" /> webhely történeteit. A követett webhelyeket a Google-fiókjába menti a rendszer. A Discover beállításaiban kezelheti őket.</translation>
 <translation id="6573096386450695060">Engedélyezés mindig</translation>
 <translation id="6573431926118603307">A más eszközökön futó Chrome böngészőben megnyitott lapok itt jelennek meg.</translation>
 <translation id="6583199322650523874">Az aktuális oldal felvétele a könyvjelzők közé</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">Kilépés az inkognitó módból</translation>
 <translation id="6979737339423435258">Mindenkori</translation>
 <translation id="6981982820502123353">Kisegítő lehetőségek</translation>
+<translation id="6987047470128880212">Az inkognitó nem használható ezen az eszközön.</translation>
 <translation id="6989267951144302301">A letöltés sikertelen</translation>
 <translation id="6995899638241819463">Figyelmeztetés, ha jelszavai adatvédelmi incidens során nyilvánosságra kerülnek</translation>
 <translation id="7001056293070445572">Ez egy nagy méretű fájl (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">Előnézeti lap</translation>
 <translation id="7484997419527351112">Discover – kikapcsolva</translation>
 <translation id="7485033510383818941">A hírcsatorna tartalmának frissítéséhez húzza lefelé az oldalt</translation>
+<translation id="749294055653435199">A Google Lens nem áll rendelkezésre ezen az eszközön</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (Frissítve: <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">megtakarított adatmennyiség</translation>
 <translation id="7498271377022651285">Kérjük, várjon…</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">Most volt ellenőrizve</translation>
 <translation id="8040831032425909005">Gyorsműveletekhez tartozó Kereső modul ikonja</translation>
 <translation id="804335162455518893">Az SD-kártya nem található</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> inkognitó lap}other{<ph name="TAB_COUNT_NORMAL" /> inkognitó lap}}</translation>
 <translation id="8051695050440594747"><ph name="MEGABYTES" /> MB áll rendelkezésre</translation>
 <translation id="8058746566562539958">Megnyitás új Chrome-lapon</translation>
 <translation id="8063895661287329888">A könyvjelző hozzáadása sikertelen volt.</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">telefonján</translation>
 <translation id="8636825310635137004">Ha a többi eszközén is szeretné elérni lapjait, kapcsolja be a szinkronizálást</translation>
 <translation id="8641930654639604085">Felnőtteknek szóló webhelyek letiltásának megkísérlése</translation>
+<translation id="864544049772947936">Ablakok kezelése (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Az adatokat a Chrome beállításaiban módosíthatja</translation>
 <translation id="8656747343598256512">Jelentkezzen be erre a webhelyre és a Chrome-ba a Google-fiókjával. A szinkronizálást később is bekapcsolhatja.</translation>
 <translation id="8659579665266920523">Keresés a Chrome segítségével</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">Képek</translation>
 <translation id="926205370408745186">Chrome-beli tevékenység eltávolítása a digitális jóllét funkcióból</translation>
 <translation id="927968626442779827">Használja az Egyszerűsített módot a Google Chrome-ban</translation>
+<translation id="928550791203542716">A(z) <ph name="SITE_NAME" /> webhely követve</translation>
 <translation id="932327136139879170">Főoldal</translation>
 <translation id="938850635132480979">Hiba: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Összetett jelszó megadása</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
index 305a8e2..e388dc4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">ຊອກຫາຢ່າງວ່ອງໄວດ້ວຍສຽງຂອງທ່ານ. ເພື່ອແກ້ໄຂທາງລັດນີ້, ໃຫ້ແຕະຄ້າງໄວ້.</translation>
 <translation id="1028699632127661925">ກຳລັງສົ່ງຫາ <ph name="DEVICE_NAME" />...</translation>
 <translation id="103269572468856066">ລຶບຂໍ້ມູນຈາກເວັບໄຊ ແລະ ແອັບເຫຼົ່ານີ້ນຳບໍ?</translation>
+<translation id="1034259925032978114">ໜ້າຈໍເປີດຢູ່</translation>
 <translation id="1036348656032585052">ປິດ</translation>
 <translation id="1036727731225946849">ກຳລັງເພີ່ມ <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1045899828449635435">ລຶບຂໍ້ມູນອອກຈາກເວັບໄຊເຫຼົ່ານີ້ນຳບໍ?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">ຮັບຄວາມປອດໄພທີ່ແຂງແກ່ນທີ່ສຸດຂອງ Chrome</translation>
 <translation id="2200113223741723867">ຈັດການການແບ່ງປັນຂໍ້ມູນການນຳໃຊ້</translation>
 <translation id="2227444325776770048">ສືບຕໍ່ໃຊ້ໃນຊື່ <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">ໜ້າຈໍຫວ່າງເປົ່າ</translation>
 <translation id="2239812875700136898">ຄວບຄຸມເລື່ອງລາວຂອງທ່ານຈາກປຸ່ມຕົວເລືອກສຳລັບ Discover</translation>
 <translation id="2259659629660284697">ສົ່ງລະຫັດຜ່ານອອກ...</translation>
 <translation id="2276696007612801991">ເຂົ້າສູ່ລະບົບບັນຊີ Google ຂອງທ່ານເພື່ອກວດລະຫັດຜ່ານຂອງທ່ານ</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">ໜ້າຫຼັກຂອງ Chrome</translation>
 <translation id="3157842584138209013">ເບິ່ງວ່າທ່ານປະຢັດຂໍ້ມູນໄດ້ຫຼາຍປານໃດຈາກປຸ່ມຕົວເລືອກເພີ່ມເຕີມ</translation>
 <translation id="3166827708714933426">ທາງລັດແຖບ ແລະ ໜ້າຈໍ</translation>
+<translation id="316694332262407393">Chrome ກຳລັງເຮັດວຽກຢູ່ບ່ອນນີ້ຢູ່ກ່ອນແລ້ວ.</translation>
 <translation id="3169472444629675720">ຄົ້ນຫາ</translation>
 <translation id="3205824638308738187">ເກືອບສຳເລັດແລ້ວ!</translation>
 <translation id="3207960819495026254">ໃສ່ບຸກ​ມາກ​໌​ແລ້ວ</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">ຊ່ວຍປັບປຸງຄວາມປອດໄພໃນເວັັບ</translation>
 <translation id="3602290021589620013">ເບິ່ງຕົວຢ່າງ</translation>
 <translation id="3616113530831147358">ສຽງ</translation>
+<translation id="3622349720008044802">ຈັດການໜ້າຈໍ</translation>
 <translation id="3631987586758005671">ກຳລັງແບ່ງປັນໃສ່ <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">ສະແດງລະຫັດຜ່ານ</translation>
 <translation id="363596933471559332">ເຂົ້າສູ່ລະບົບເວັບ​ໄຊ​ໂດຍ​ອັດຕະ​ໂນ​ມັດໂດຍ​ໃຊ້​ຂໍ້​ມູນ​ປະ​ຈໍາ​ຕົວ​ທີ່​ຮັກສາ​ໄວ້. ​ເມື່ອຄຸນສົມບັດນີ້ຖືກປິດການນຳໃຊ້, ທ່ານ​ຈະ​ຖືກ​ຮ້ອງ​ຂໍ​ໃຫ້​ກວດ​ສອບ​ໃນ​ທຸກໆເທື່ອ ກ່ອນ​ທີ່​ຈະ​ລົງ​ຊື່​ເຂົ້າ​ເວັບ​ໄຊໃດ​ໜຶ່ງ.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">ການຕັ້ງຄ່າຄຳແປ</translation>
 <translation id="3738139272394829648">ສໍາຜັດເພື່ອຄົ້ນຫາ</translation>
 <translation id="3739899004075612870">ເພີ່ມບຸກມາກໃສ່ໃນ <ph name="PRODUCT_NAME" /> ແລ້ວ</translation>
+<translation id="3740525748616366977">ບໍ່ສາມາດໃຊ້ການຊອກຫາດ້ວຍສຽງຢູ່ອຸປະກອນນີ້ໄດ້</translation>
 <translation id="3749259744154402564">ບໍ່ຮອງຮັບ</translation>
 <translation id="3771001275138982843">ບໍ່ສາມາດດາວໂຫຼດການອັບເດດໄດ້</translation>
 <translation id="3771033907050503522">ແຖບບໍ່ເຜີຍຕົນຕົວ</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">ຂໍ້ມູນພື້ນຖານພ້ອມກັບຂໍ້ມູນກ່ຽວກັບເວັບໄຊທີ່ທ່ານເຂົ້າເບິ່ງ ແລະ ແອັບທີ່ທ່ານໃຊ້</translation>
 <translation id="3775705724665058594">ສົ່ງຫາອຸປະກອນຂອງທ່ານ</translation>
 <translation id="3778956594442850293">ເພີ່ມໃສ່ໜ້າຈໍຫຼັກແລ້ວ</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 ແຖບ}other{# ແຖບ}}</translation>
 <translation id="3803784507854318295">ຈັດການການຫຼິ້ນອັດຕະໂນມັດ</translation>
 <translation id="3810838688059735925">ວິ​ດີ​ໂອ</translation>
 <translation id="3810973564298564668">ຈັດການ</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">“</translation>
 <translation id="393697183122708255">ບໍ່ມີການຄົ້ນຫາສຽງທີ່ເປີດໃຊ້ງານໄວ້ຢູ່</translation>
 <translation id="395377504920307820">ໃຊ້ໂດຍບໍ່ມີບັນຊີ</translation>
+<translation id="3958287878205277013">ເພື່ອລຶບລ້າງປະຫວັດການທ່ອງເວັບແບບບໍ່ເປີດເຜີຍຕົວຕົນຈາກອຸປະກອນຂອງທ່ານ, ໃຫ້ປິດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນທັງໝົດ.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome ຈະໂຫຼດໜ້າເວັບຂອງທ່ານເມື່ອພ້ອມແລ້ວ}other{Chrome ຈະໂຫຼດໜ້າເວັບຂອງທ່ານເມື່ອພ້ອມແລ້ວ}}</translation>
 <translation id="3962957115499249330">ທ່ານຈະເຫັນການແຈ້ງເຕືອນເມື່ອການດາວໂຫຼດນີ້ເລີ່ມຕົ້ນຢູ່ Wi-Fi.</translation>
 <translation id="3963007978381181125">ການເຂົ້າລະຫັດໂດຍໃຊ້ລະຫັດຜ່ານບໍ່ຮວມເອົາວິທີການຈ່າຍເງິນ ແລະ ທີ່ຢູ່ຈາກ Google Pay. ມີແຕ່ຜູ້ທີ່ມີລະຫັດຜ່ານຂອງທ່ານເທົ່ານັ້ນທີ່ສາມາດອ່ານຂໍ້ມູນທີ່ເຂົ້າລະຫັດຂອງທ່ານໄດ້. ລະຫັດຜ່ານຈະບໍ່ຖືກສົ່ງຫາ ຫຼື ຈັດເກັບໄວ້ໂດຍ Google. ຖ້າທ່ານລືມລະຫັດຜ່ານຂອງທ່ານ ຫຼື ຕ້ອງການປ່ຽນການຕັ້ງຄ່ານີ້, ທ່ານຈະຈຳເປັນຕ້ອງຣີເຊັດການຊິ້ງຂໍ້ມູນກ່ອນ. <ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 ບັນຊີ Google ຂອງທ່ານອາດຈະມີປະຫວັດການທ່ອງເວັບຮູບແບບອື່ນ ເຊັ່ນວ່າ ການຊອກຫາ ແລະ ການເຄື່ອນໄຫວຈາກການບໍລິການອື່ນໆຂອງ Google ຢູ່ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="4532845899244822526">ເລືອກ​ໂຟລເດີ</translation>
 <translation id="4538018662093857852">ເປີດໂໝດ Lite</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> ແຖບ}other{<ph name="TAB_COUNT_MANY" /> ແຖບ, <ph name="TAB_COUNT_INCOGNITO" /> ແຖບບໍ່ເປີດເຜີຍຕົວຕົນ}}</translation>
 <translation id="4550003330909367850">ເພື່ອເບິ່ງ ຫຼື ສຳເນົາລະຫັດຜ່ານຂອງທ່ານຢູ່ບ່ອນນີ້, ກະລຸນາຕັ້ງຄ່າການລັອກໜ້າຈໍໃນອຸປະກອນນີ້.</translation>
 <translation id="4554077758708533499">ເຊື່ອມຕໍ່ກັບສາຍ USB</translation>
 <translation id="4557685098773234337">ເພື່ອມາບ່ອນນີ້ໄດ້ໄວກວ່າ, ກະລຸນາເພີ່ມໜ້ານີ້ໃສ່ໜ້າຈໍຫຼັກຂອງທ່ານ</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">ຈໍາ​ນວນຂອງຕົວຢ່າງ Chrome ທີ່ບໍ່ຮອງຮັບ​.</translation>
 <translation id="4908869848243824489">Discover ໂດຍ Google</translation>
 <translation id="4910889077668685004">ແອັບຈ່າຍເງິນ</translation>
+<translation id="4912413785358399818">ຍ້າຍແຖບ</translation>
 <translation id="4913161338056004800">ຣີເຊັດສະຖິຕິ</translation>
 <translation id="4913169188695071480">ຢຸດການໂຫຼດຄືນໃໝ່</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# ໜ້າ}other{# ໜ້າ}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">ອະ​ນຸ​ຍາດ​</translation>
 <translation id="5054455334322721892"><ph name="BEGIN_LINK1" />ການເຄື່ອນໄຫວຮູບແບບອື່ນ<ph name="END_LINK1" /> ອາດຖືກບັນທຶກໄວ້ໃນບັນຊີ Google ຂອງທ່ານເມື່ອທ່ານເຂົ້າສູ່ລະບົບ. ທ່ານສາມາດລຶບພວກມັນຕອນໃດກໍໄດ້.</translation>
 <translation id="5061533557687621530">ເພື່ອກວດສອບສະພາບອາກາດ, ໃຫ້ແຕະໃສ່ໄມແລ້ວເວົ້າວ່າ “ອາກາດມື້ນີ້ເປັນແນວໃດ?”</translation>
+<translation id="506254248375231072">ບໍ່ມີແຖບ</translation>
 <translation id="5087580092889165836">ເພີ່ມບັດ</translation>
+<translation id="5091199029769593641">ໃນອີກບໍ່ດົນ, ທ່ານຈະເຫັນຂ່າວຈາກ <ph name="SITE_NAME" /> ເມື່ອທ່ານເປີດແຖບໃໝ່. ເວັບໄຊທີ່ທ່ານຕິດຕາມແມ່ນຖືກບັນທຶກໄວ້ໃນບັນຊີ Google ຂອງທ່ານ. ທ່ານສາມາດຈັດການພວກມັນໄດ້ໃນການຕັ້ງຄ່າ Discover.</translation>
 <translation id="5091249083535528968">ຂໍ້ມູນການນຳໃຊ້ເພີ່ມເຕີມ</translation>
 <translation id="509429900233858213">ເກີດຄວາມຜິດພາດຂຶ້ນ.</translation>
 <translation id="510275257476243843">ຍັງເຫຼືອ 1 ຊົ່ວໂມງ</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">ກັບ <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">ໜ້າການດາວໂຫຼດ</translation>
 <translation id="5458366071038729214">ທ່ານຈະພົບເວັບໄຊທີ່ທ່ານຕິດຕາມຢູ່ບ່ອນນີ້</translation>
+<translation id="5468068603361015296">ທ່ານຕ້ອງການຢືນຢັນການດາວໂຫຼດ <ph name="FILE_NAME" /> ບໍ?</translation>
 <translation id="548278423535722844">ເປີດໃນແອັບແຜນທີ່</translation>
 <translation id="5483197086164197190">ໄປຍັງສ່ວນຕ່າງໆຂອງ Chrome</translation>
 <translation id="5487521232677179737">ລຶບລ້າງຂໍ້ມູນ</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">ລິຂະສິດ <ph name="YEAR" /> Google LLC. ສະຫງວນສິດທັງໝົດ.</translation>
 <translation id="5810864297166300463">ການຊ່ວຍເຫຼືອທາງເວັບ</translation>
 <translation id="5814131985548525293">ພິມຢູ່ບ່ອນນີ້ ຫຼື ແຕະໄອຄອນສຽງເພື່ອເລີ່ມຕົ້ນ</translation>
+<translation id="5814749351757353073">ຕິດຕາມເວັບໄຊທີ່ທ່ານມັກ</translation>
 <translation id="583281660410589416">ບໍ່​ຮູ້ຈັກ</translation>
 <translation id="5833984609253377421">ແບ່ງປັນລິ້ງ</translation>
 <translation id="5834764604050996579">ເພື່ອສະແກນລະຫັດ QR, ກະລຸນາອະນຸຍາດໃຫ້ Chrome ໃຊ້ກ້ອງຖ່າຍຮູບຂອງທ່ານກ່ອນ</translation>
@@ -824,6 +837,7 @@
 
 ຕົວຢ່າງ, ບາງເວັບໄຊອາດຕອບສະໜອງຕໍ່ກັບຄຳຮ້ອງຂໍນີ້ ໂດຍການສະແດງໃຫ້ທ່ານເຫັນໂຄສະນາທີ່ບໍ່ອີງໃສ່ເວັບໄຊອື່ນທີ່ທ່ານເຂົ້າເບິ່ງ. ຫຼາຍໆເວັບໄຊຈະຍັງບັນທຶກ ແລະໃຊ້ຂໍ້ມູນການທ່ອງເວັບຂອງທ່ານ — ຕົວຢ່າງ ເຊັ່ນ: ເພື່ອປັບປຸງຄວາມປອດໄພ, ເພື່ອສະໜອງເນື້ອຫາ, ໂຄສະນາ ແລະຄຳແນະນໍາຕ່າງໆ ແລະເພື່ອສ້າງສະຖິຕິການລາຍງານ.</translation>
 <translation id="624789221780392884">ອັບເດດພ້ອມແລ້ວ</translation>
+<translation id="6264376385120300461">ຢືນຢັນການດາວໂຫຼດ</translation>
 <translation id="6277522088822131679">ມີບັນຫາການພິມໜ້າ. ກະລຸນາລອງໃໝ່ອີກ.</translation>
 <translation id="6278428485366576908">ສີສັນໜ້າຕາ</translation>
 <translation id="6292420053234093573">ໂດຍການໃຊ້ Chrome, ແມ່ນຖືວ່າທ່ານເຫັນດີນຳ <ph name="BEGIN_LINK1" />ຂໍ້ກຳນົດການບໍລິການຂອງ Google<ph name="END_LINK1" /> ແລະ <ph name="BEGIN_LINK2" />ຂໍ້ກຳນົດການບໍລິການເພີ່ມເຕີມຂອງ Google Chrome ແລະ Chrome OS<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">ມີບາງຢ່າງຜິດພາດ. ລອງໃໝ່ໃນພາຍຫລັງ.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{ກວດແລ້ວເມື່ອ 1 ຊົ່ວໂມງກ່ອນ}other{ກວດແລ້ວເມື່ອ # ຊົ່ວໂມງກ່ອນ}}</translation>
 <translation id="6545017243486555795">ລຶບລ້າງທຸກຂໍ້ມູນ</translation>
+<translation id="6546511553472444032">ໄຟລ໌ອາດເປັນອັນຕະລາຍ</translation>
 <translation id="6560414384669816528">ຊອກຫາດ້ວຍ Sogou</translation>
 <translation id="656065428026159829">ເບິ່ງເພີ່ມເຕີມ</translation>
 <translation id="6565959834589222080">ຈະໃຊ້ Wi-Fi ເມື່ອມີໃຫ້ນຳໃຊ້</translation>
 <translation id="6566259936974865419">Chrome ຊ່ວຍທ່ານປະຢັດໄດ້ <ph name="GIGABYTES" /> GB</translation>
+<translation id="6569373978618239158">ຕອນນີ້ທ່ານຈະເຫັນຂ່າວຈາກ <ph name="SITE_NAME" /> ເມື່ອທ່ານເປີດແຖບໃໝ່. ເວັບໄຊທີ່ທ່ານຕິດຕາມແມ່ນຖືກບັນທຶກໄວ້ໃນບັນຊີ Google ຂອງທ່ານ. ທ່ານສາມາດຈັດການພວກມັນໄດ້ໃນການຕັ້ງຄ່າ Discover.</translation>
 <translation id="6573096386450695060">ອະນຸຍາດທຸກເທື່ອ</translation>
 <translation id="6573431926118603307">ແຖບທີ່ທ່ານໄດ້ເປີດໃນ Chrome ຢູ່ໃນອຸປະກອນອື່ນຂອງທ່ານຈະປາກົດຢູ່ບ່ອນນີ້.</translation>
 <translation id="6583199322650523874">ໝາຍຂັ້ນໜ້າປັດຈຸບັນ</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">ອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6979737339423435258">ທຸກເວລາ</translation>
 <translation id="6981982820502123353">ການເຂົ້າ​​ເຖິງ​ໄດ້</translation>
+<translation id="6987047470128880212">ບໍ່ສາມາດໃຊ້ໂໝດບໍ່ເປີດເຜີຍຕົວຢູ່ອຸປະກອນນີ້ໄດ້</translation>
 <translation id="6989267951144302301">ບໍ່ສາມາດດາວໂຫລດໄດ້</translation>
 <translation id="6995899638241819463">ເຕືອນບອກທ່ານຖ້າລະຫັດຜ່ານຮົ່ວໄຫຼໃນການລະເມີດຂໍ້ມູນ</translation>
 <translation id="7001056293070445572">ໄຟລ໌ນີ້ມີຂະໜາດໃຫຍ່ (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">ແຖບສະແດງຕົວຢ່າງ</translation>
 <translation id="7484997419527351112">Discover - ປິດຢູ່</translation>
 <translation id="7485033510383818941">ເພື່ອໂຫຼດຂໍ້ມູນເນື້ອຫາຟີດຄືນໃໝ່, ໃຫ້ດຶງໜ້າລົງ</translation>
+<translation id="749294055653435199">ບໍ່ສາມາດໃຊ້ Google Lens ຢູ່ອຸປະກອນນີ້ໄດ້</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (ອັບ​ເດດ​ແລ້ວ <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">ຂໍ້ມູນປະຢັດໄດ້</translation>
 <translation id="7498271377022651285">ກະ​ລຸ​ນາ​ລໍ​ຖ້າ...</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">ຫາກໍກວດແລ້ວຕອນນີ້</translation>
 <translation id="8040831032425909005">ໄອຄອນວິດເຈັດຊອກຫາຄຳສັ່ງດ່ວນ</translation>
 <translation id="804335162455518893">ບໍ່ພົບແຜ່ນ SD</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> ແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ}other{<ph name="TAB_COUNT_NORMAL" /> ແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ}}</translation>
 <translation id="8051695050440594747">ຍັງເຫຼືອ <ph name="MEGABYTES" /> MB</translation>
 <translation id="8058746566562539958">ເປີດໃນແຖບໃໝ່ຂອງ Chrome</translation>
 <translation id="8063895661287329888">ເພີ່ມບຸກມາກບໍ່ສຳເລັດ</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">ໂທລະສັບ</translation>
 <translation id="8636825310635137004">ເພື່ອໂຫຼດແຖບຂອງທ່ານຈາກອຸປະກອນອື່ນ, ໃຫ້ເປີດການຊິ້ງຂໍ້ມູນກ່ອນ.</translation>
 <translation id="8641930654639604085">ພະຍາຍາມບລັອກເວັບໄຊສຳລັບຜູ້ໃຫຍ່</translation>
+<translation id="864544049772947936">ຈັດການໜ້າຈໍ (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">ທ່ານສາມາດລຶບລ້າງຂໍ້ມູນໄດ້ໃນການຕັ້ງຄ່າ Chrome</translation>
 <translation id="8656747343598256512">ເຂົ້າສູ່ລະບົບເວັບໄຊນີ້ ແລະ Chrome ດ້ວຍບັນຊີ Google ຂອງທ່ານ. ທ່ານສາມາດເປີດການຊິ້ງຂໍ້ມູນໃນພາຍຫຼັງໄດ້.</translation>
 <translation id="8659579665266920523">ວິທີຊອກຫາດ້ວຍ Chrome</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">ຮູບ</translation>
 <translation id="926205370408745186">ລຶບການເຄື່ອນໄຫວໃນ Chrome ຂອງທ່ານອອກຈາກ Digital Wellbeing</translation>
 <translation id="927968626442779827">ໃຊ້ໂໝດ Lite ໃນ Google Chrome</translation>
+<translation id="928550791203542716">ກຳລັງຕິດຕາມ <ph name="SITE_NAME" /></translation>
 <translation id="932327136139879170">ບ້ານ</translation>
 <translation id="938850635132480979">ຜິດພາດ: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">ປ້ອນວະລີຜ່ານໃສ່</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
index 2a4701a5..9b3ba06a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Sparčiai ieškokite balsu. Jei norite redaguoti šį spartųjį klavišą, palieskite ir palaikykite.</translation>
 <translation id="1028699632127661925">Siunčiama į „<ph name="DEVICE_NAME" />“...</translation>
 <translation id="103269572468856066">Taip pat išvalyti duomenis iš šių svetainių ir programų?</translation>
+<translation id="1034259925032978114">Langas atidarytas</translation>
 <translation id="1036348656032585052">Išjungti</translation>
 <translation id="1036727731225946849">Pridedamas APK „<ph name="WEBAPK_NAME" />“...</translation>
 <translation id="1045899828449635435">Taip pat išvalyti duomenis iš šių svetainių?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Gaukite patikimiausią „Chrome“ apsaugą</translation>
 <translation id="2200113223741723867">Tvarkyti naudojimo duomenų bendrinimą</translation>
 <translation id="2227444325776770048">Tęsti kaip <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">Tuščias langas</translation>
 <translation id="2239812875700136898">Valdykite pasakojimus naudodami mygtuką „Discover“ parinktys“</translation>
 <translation id="2259659629660284697">Eksportuoti slaptažodžius…</translation>
 <translation id="2276696007612801991">Prisijunkite prie „Google“ paskyros, kad patikrintumėte slaptažodžius</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">Pagrindinis „Chrome“ puslapis</translation>
 <translation id="3157842584138209013">Žr., kiek duomenų sutaupėte, spustelėję mygtuką „Daugiau parinkčių“</translation>
 <translation id="3166827708714933426">Skirtukų ir langų spartieji klavišai</translation>
+<translation id="316694332262407393">„Chrome“ čia jau vykdoma.</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">Beveik baigta!</translation>
 <translation id="3207960819495026254">Pažymėta</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Padėti gerinti saugą žiniatinkl.</translation>
 <translation id="3602290021589620013">Peržiūra</translation>
 <translation id="3616113530831147358">Garsas</translation>
+<translation id="3622349720008044802">Langų tvarkymas</translation>
 <translation id="3631987586758005671">Bendrinama su „<ph name="DEVICE_NAME" />“</translation>
 <translation id="3632295766818638029">Rodyti slaptažodį</translation>
 <translation id="363596933471559332">Automatiškai prisijungti prie svetainių naudojant išsaugotus prisijungimo duomenis. Kai funkcija išjungta, kaskart prisijungiant prie svetainės prašoma patvirtinti.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Vertimo nustatymai</translation>
 <translation id="3738139272394829648">Paieška palietus</translation>
 <translation id="3739899004075612870">Pažymėta naršyklėje „<ph name="PRODUCT_NAME" />“</translation>
+<translation id="3740525748616366977">Paieška balsu šiame įrenginyje nepasiekiama.</translation>
 <translation id="3749259744154402564">Nepalaikoma</translation>
 <translation id="3771001275138982843">Nepavyko atsisiųsti naujinio</translation>
 <translation id="3771033907050503522">Inkognito skirt.</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Pagrindiniai duomenys ir informacija apie lankomas svetaines ir naudojamas programas</translation>
 <translation id="3775705724665058594">Išsiųsta į jūsų įrenginius</translation>
 <translation id="3778956594442850293">Pridėta prie pagrindinio ekrano</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{Vienas skirtukas}one{# skirtukas}few{# skirtukai}many{# skirtuko}other{# skirtukų}}</translation>
 <translation id="3803784507854318295">Tvarkyti automatinį paleidimą</translation>
 <translation id="3810838688059735925">Vaizdo</translation>
 <translation id="3810973564298564668">Valdyti</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">„</translation>
 <translation id="393697183122708255">Neįgalinta paieška balsu</translation>
 <translation id="395377504920307820">Naudoti be paskyros</translation>
+<translation id="3958287878205277013">Jei norite išvalyti naršymo inkognito režimu istoriją iš įrenginio, uždarykite visus inkognito skirtukus.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{„Chrome“ įkels puslapį, kai bus paruošta}one{„Chrome“ įkels puslapius, kai bus paruošta}few{„Chrome“ įkels puslapius, kai bus paruošta}many{„Chrome“ įkels puslapius, kai bus paruošta}other{„Chrome“ įkels puslapius, kai bus paruošta}}</translation>
 <translation id="3962957115499249330">Matysite pranešimą, kai šis atsisiuntimas prasidės naudojant „Wi-Fi“.</translation>
 <translation id="3963007978381181125">Slaptafrazės šifruotė neapima mokėjimo metodų ir adresų iš „Google Pay“. Tik jūsų slaptafrazę žinantis asmuo gali skaityti šifruotus duomenis. Slaptafrazė nesiunčiama į sistemą „Google“ ir joje nesaugoma. Pamiršę slaptafrazę arba norėdami pakeisti šį nustatymą turėsite iš naujo nustatyti sinchronizavimą. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 Adresu <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> gali būti pateikta kitų formų jūsų „Google“ paskyros naršymo istorija, pvz., paieškos ir veikla kitose „Google“ paslaugose.</translation>
 <translation id="4532845899244822526">Pasirinkti aplanką</translation>
 <translation id="4538018662093857852">Įjungti supaprastintąjį režimą</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> skirtukas}one{Skirtukų: <ph name="TAB_COUNT_MANY" />, <ph name="TAB_COUNT_INCOGNITO" /> inkognito}few{Skirtukų: <ph name="TAB_COUNT_MANY" />, <ph name="TAB_COUNT_INCOGNITO" /> inkognito}many{Skirtukų: <ph name="TAB_COUNT_MANY" />, <ph name="TAB_COUNT_INCOGNITO" /> inkognito}other{Skirtukų: <ph name="TAB_COUNT_MANY" />, <ph name="TAB_COUNT_INCOGNITO" /> inkognito}}</translation>
 <translation id="4550003330909367850">Jei norite čia peržiūrėti ar nukopijuoti slaptažodį, nustatykite ekrano užraktą šiame įrenginyje.</translation>
 <translation id="4554077758708533499">Prijungta USB laidu</translation>
 <translation id="4557685098773234337">Kad sparčiau čia patektumėte, šį puslapį pridėkite prie pagrindinio ekrano.</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">Nepalaikomas „Chrome“ atvejų skaičius.</translation>
 <translation id="4908869848243824489">„Google“ funkcija „Discover“</translation>
 <translation id="4910889077668685004">Mokėjimo programos</translation>
+<translation id="4912413785358399818">Perkelti skirtuką</translation>
 <translation id="4913161338056004800">Iš naujo nustatyti statistiką</translation>
 <translation id="4913169188695071480">Sustabdyti atnaujinimą</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# puslapis}one{# puslapis}few{# puslapiai}many{# puslapio}other{# puslapių}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">Leisti</translation>
 <translation id="5054455334322721892"><ph name="BEGIN_LINK1" />Kitos veiklos formos<ph name="END_LINK1" /> gali būti išsaugotos jūsų „Google“ paskyroje, kai esate prisijungę. Galite bet kada jas ištrinti.</translation>
 <translation id="5061533557687621530">Jei norite patikrinti orų prognozę, palieskite mikrofoną ir pasakykite „What's the weather today?“ (Koks šiandien oras?).</translation>
+<translation id="506254248375231072">Nėra skirtukų</translation>
 <translation id="5087580092889165836">Pridėti kortelę</translation>
+<translation id="5091199029769593641">Netrukus atidarę naują skirtuką matysite istorijas iš „<ph name="SITE_NAME" />“. Svetainės, kurias stebite, saugomos jūsų „Google“ paskyroje. Jas galite tvarkyti „Discover“ nustatymuose.</translation>
 <translation id="5091249083535528968">Išplėstiniai naudojimo duomenys</translation>
 <translation id="509429900233858213">Įvyko klaida.</translation>
 <translation id="510275257476243843">Liko 1 val.</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">naudojant <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">Atsisiųsti puslapį</translation>
 <translation id="5458366071038729214">Stebimas svetaines rasite čia</translation>
+<translation id="5468068603361015296">Ar vis tiek norite atsisiųsti „<ph name="FILE_NAME" />“?</translation>
 <translation id="548278423535722844">Atidaryti Žemėlapių programoje</translation>
 <translation id="5483197086164197190">Naršyti „Chrome“</translation>
 <translation id="5487521232677179737">Išvalyti duomenis</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">Autorių teisės „Google LLC.“, <ph name="YEAR" /> m. Visos teisės saugomos.</translation>
 <translation id="5810864297166300463">Žiniatinklio pagalba</translation>
 <translation id="5814131985548525293">Įveskite čia arba palieskite balso piktogramą, kad pradėtumėte</translation>
+<translation id="5814749351757353073">Stebėkite mėgstamiausias svetaines</translation>
 <translation id="583281660410589416">Nežinoma</translation>
 <translation id="5833984609253377421">Bendrinti nuorodą</translation>
 <translation id="5834764604050996579">Jei norite nuskaityti QR kodą, leiskite „Chrome“ naudoti jūsų fotoaparatą</translation>
@@ -824,6 +837,7 @@
 
 Pavyzdžiui, kai kurios svetainės gali atsakyti į šią užklausą rodydamos jums skelbimus, nepagrįstus kitomis svetainėmis, kuriose lankėtės. Daugelis svetainių vis tiek rinks ir naudos jūsų naršymo duomenis, kad, pvz., patobulintų saugą, teiktų turinį, skelbimus bei rekomendacijas ir sugeneruotų ataskaitų teikimo statistiką.</translation>
 <translation id="624789221780392884">Naujinys paruoštas</translation>
+<translation id="6264376385120300461">Vis tiek atsisiųsti</translation>
 <translation id="6277522088822131679">Spausdinant puslapį kilo problema. Bandykite dar kartą.</translation>
 <translation id="6278428485366576908">Tema</translation>
 <translation id="6292420053234093573">Naudodami „Chrome“ sutinkate su <ph name="BEGIN_LINK1" />„Google“ paslaugų teikimo sąlygomis<ph name="END_LINK1" /> ir <ph name="BEGIN_LINK2" />„Google Chrome“ bei „Chrome“ OS papildomomis paslaugų teikimo sąlygomis<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">Įvyko klaida. Vėliau bandykite dar kartą.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Tikrinta prieš 1 valandą}one{Tikrinta prieš # valandą}few{Tikrinta prieš # valandas}many{Tikrinta prieš # valandos}other{Tikrinta prieš # valandų}}</translation>
 <translation id="6545017243486555795">Išvalyti visus duomenis</translation>
+<translation id="6546511553472444032">Failas gali būti žalingas</translation>
 <translation id="6560414384669816528">Atlikti paiešką naudojant „Sogou“</translation>
 <translation id="656065428026159829">Žr. daugiau</translation>
 <translation id="6565959834589222080">„Wi-Fi“ naudojama, kai pasiekiama</translation>
 <translation id="6566259936974865419">„Chrome“ sutaupė jums <ph name="GIGABYTES" /> GB</translation>
+<translation id="6569373978618239158">Dabar atidarę naują skirtuką matysite istorijas iš „<ph name="SITE_NAME" />“. Svetainės, kurias stebite, saugomos jūsų „Google“ paskyroje. Jas galite tvarkyti „Discover“ nustatymuose.</translation>
 <translation id="6573096386450695060">Visada leisti</translation>
 <translation id="6573431926118603307">Čia bus rodomi kituose įrenginiuose atidaryti „Chrome“ skirtukai.</translation>
 <translation id="6583199322650523874">Pažymėti dabartinį puslapį</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">Išjungti inkognito režimą</translation>
 <translation id="6979737339423435258">Visas laikotarpis</translation>
 <translation id="6981982820502123353">Pritaikymas neįgaliesiems</translation>
+<translation id="6987047470128880212">Inkognito režimas šiame įrenginyje nepasiekiamas</translation>
 <translation id="6989267951144302301">Nepavyko atsisiųsti</translation>
 <translation id="6995899638241819463">Įspėti, jei slaptažodžiai buvo atskleisti įvykus duomenų saugos pažeidimui</translation>
 <translation id="7001056293070445572">Šis failas didelis (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">Peržiūros skirtukas</translation>
 <translation id="7484997419527351112">„Discover“ – išjungta</translation>
 <translation id="7485033510383818941">Jei norite atnaujinti sklaidos kanalo turinį, patraukite puslapį žemyn</translation>
+<translation id="749294055653435199">„Google Lens“ nepasiekiama šiame įrenginyje</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (atnaujinta <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">sutaupyti duomenys</translation>
 <translation id="7498271377022651285">Palaukite…</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">Ką tik patikrinta</translation>
 <translation id="8040831032425909005">Sparčiųjų veiksmų ir paieškos valdiklio piktograma</translation>
 <translation id="804335162455518893">SD kortelė nerasta</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> inkognito skirtukas}one{<ph name="TAB_COUNT_NORMAL" /> inkognito skirtukas}few{<ph name="TAB_COUNT_NORMAL" /> inkognito skirtukai}many{<ph name="TAB_COUNT_NORMAL" /> inkognito skirtuko}other{<ph name="TAB_COUNT_NORMAL" /> inkognito skirtukų}}</translation>
 <translation id="8051695050440594747">Galima <ph name="MEGABYTES" /> MB</translation>
 <translation id="8058746566562539958">Atidaryti naujame „Chrome“ skirtuke</translation>
 <translation id="8063895661287329888">Nepavyko pridėti žymės.</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">telefone</translation>
 <translation id="8636825310635137004">Jei norite pasiekti skirtukus iš kitų įrenginių, įjunkite sinchronizavimą.</translation>
 <translation id="8641930654639604085">Bandyti užblokuoti suaugusiesiems skirtas svetaines</translation>
+<translation id="864544049772947936">Tvarkyti langus (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Duomenis galite išvalyti „Chrome“ nustatymų“ skiltyje</translation>
 <translation id="8656747343598256512">Prisijunkite prie šios svetainės ir „Chrome“ naudodami „Google“ paskyrą. Sinchronizavimą galėsite įjungti vėliau.</translation>
 <translation id="8659579665266920523">Kaip ieškoti naudojant „Chrome“</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">Vaizdai</translation>
 <translation id="926205370408745186">„Chrome“ veiklos pašalinimas iš Skaitmeninės gerovės</translation>
 <translation id="927968626442779827">Naudokite supaprastintą režimą naršyklėje „Google Chrome“</translation>
+<translation id="928550791203542716">Stebima „<ph name="SITE_NAME" />“</translation>
 <translation id="932327136139879170">Kontaktinė namų informacija</translation>
 <translation id="938850635132480979">Klaida: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Įvesti slaptafrazę</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
index 0a71a25..5afc0a3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Дуу хоолойгоороо шуурхай хайгаарай. Энэ товчлолыг засахын тулд хүрээд удаан дарна уу.</translation>
 <translation id="1028699632127661925"><ph name="DEVICE_NAME" />-д илгээж байна...</translation>
 <translation id="103269572468856066">Эдгээр сайт, аппаас мөн өгөгдөл арилгах уу?</translation>
+<translation id="1034259925032978114">Цонх нээлттэй байна</translation>
 <translation id="1036348656032585052">Унтраа</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" />-г нэмж байна...</translation>
 <translation id="1045899828449635435">Эдгээр сайтаас мөн өгөгдөл арилгах уу?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Chrome-н хамгийн хүчирхэг аюулгүй байдлыг аваарай</translation>
 <translation id="2200113223741723867">Ашиглалтын өгөгдөл хуваалцахыг удирдах</translation>
 <translation id="2227444325776770048"><ph name="USER_FULL_NAME" />-р үргэлжлүүлэх</translation>
+<translation id="2230777942707397948">Хоосон цонх</translation>
 <translation id="2239812875700136898">Мэдээ, нийтлэлээ Discover-н сонголтуудын товчлуураас хянана уу</translation>
 <translation id="2259659629660284697">Нууц үгийг экспортлох...</translation>
 <translation id="2276696007612801991">Нууц үгээ шалгахын тулд Google Бүртгэлдээ нэвтэрнэ үү</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">Chrome-н нүүр хуудас</translation>
 <translation id="3157842584138209013">Бусад сонголт товчлуураас ямар хэмжээний дата хэмнэснээ харах</translation>
 <translation id="3166827708714933426">Таб, цонхны товчлол</translation>
+<translation id="316694332262407393">Энд Chrome аль хэдийн ажиллаж байна.</translation>
 <translation id="3169472444629675720">Олох</translation>
 <translation id="3205824638308738187">Бараг дууслаа!</translation>
 <translation id="3207960819495026254">Хавчуурга хадгалагдсан</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Веб дэх аюулгүй байдлыг сайжруулахад туслах</translation>
 <translation id="3602290021589620013">Мэдээллийг урьдчилж харах</translation>
 <translation id="3616113530831147358">Аудио</translation>
+<translation id="3622349720008044802">Цонхнуудыг удирдах</translation>
 <translation id="3631987586758005671"><ph name="DEVICE_NAME" />-тай хуваалцаж байна</translation>
 <translation id="3632295766818638029">Нууц үгийг харуулах</translation>
 <translation id="363596933471559332">Хадгалсан итгэмжлэлийг ашиглан вебсайтад автоматаар нэвтрэх. Энэ үйлдлийг идэвхжүүлээгүй тохиолдолд аливаа вебсайтад хандах бүрд таниас баталгаажуулалт шаардана.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Орчуулгын тохиргоо</translation>
 <translation id="3738139272394829648">Хайлт хийхийн тулд хүрнэ үү</translation>
 <translation id="3739899004075612870"><ph name="PRODUCT_NAME" />-д хавчуулсан</translation>
+<translation id="3740525748616366977">Энэ төхөөрөмж дээр дуут хайлт боломжгүй</translation>
 <translation id="3749259744154402564">Дэмждэггүй</translation>
 <translation id="3771001275138982843">Шинэчлэлтийг татаж чадсангүй</translation>
 <translation id="3771033907050503522">Мэдээний нууцлалтай цонх</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Үндсэн өгөгдөл болон таны зочилдог вебсайтууд, таны ашигладаг аппуудын талаарх мэдээлэл</translation>
 <translation id="3775705724665058594">Төхөөрөмжүүддээ илгээх</translation>
 <translation id="3778956594442850293">Үндсэн нүүрэнд нэмсэн</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 таб}other{# таб}}</translation>
 <translation id="3803784507854318295">Автоматаар тоглуулахыг удирдах</translation>
 <translation id="3810838688059735925">Видео</translation>
 <translation id="3810973564298564668">удирдах</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">“</translation>
 <translation id="393697183122708255">Идэвхжүүлсэн дуут хайлт байхгүй байна</translation>
 <translation id="395377504920307820">Бүртгэлгүйгээр ашиглах</translation>
+<translation id="3958287878205277013">Төхөөрөмжөөсөө Нууцлалтай хөтчийн түүхийг арилгахын тулд бүх нууцлалтай табыг хаана уу.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome хуудсыг бэлэн болох үед ачаална}other{Chrome хуудаснуудыг бэлэн болох үед ачаална}}</translation>
 <translation id="3962957115499249330">Энэ татан авалт Wi-Fi-р эхлэх үед та мэдэгдэл харна.</translation>
 <translation id="3963007978381181125">Нэвтрэх үгийн шифрлэлтэд Google Pay-н төлбөрийн хэрэгслүүд болон хаягуудыг агуулдаггүй. Зөвхөн таны нэвтрэх үгийг мэддэг хүн л таны шифрлэсэн өгөгдлийг унших боломжтой. Нэвтрэх үгийг Google-д илгээхгүй бөгөөд Google-с хадгалахгүй. Хэрэв та нэвтрэх үгээ мартсан эсвэл энэ тохиргоог өөрчлөх хүсэлтэй бол синкийг шинэчлэх шаардлагатай. <ph name="BEGIN_LINK" />Нэмэлт мэдээлэл авах<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 Tаны Google бүртгэл <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" />-д Google-н бусад үйлчилгээнээс үйл ажиллагаа, хайлт зэрэг өөр хэлбэрийн хайлтын түүхтэй байж болно.</translation>
 <translation id="4532845899244822526">Хавтас сонгох</translation>
 <translation id="4538018662093857852">Lite горимыг асаах</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> таб}other{<ph name="TAB_COUNT_MANY" /> таб, <ph name="TAB_COUNT_INCOGNITO" /> нууцлалтай}}</translation>
 <translation id="4550003330909367850">Нууц үгээ энд харах эсвэл хуулахын тулд энэ төхөөрөмжид дэлгэцийн түгжээ тохируулна уу.</translation>
 <translation id="4554077758708533499">USB кабелиар холбогдсон</translation>
 <translation id="4557685098773234337">Энд илүү хурдан очихын тулд энэ хуудсыг Үндсэн нүүрэндээ нэмнэ үү</translation>
@@ -608,6 +616,7 @@
 <translation id="4885273946141277891">Chrome-ийн хэд хэдэн дэмжигдээгүй тохиолдол</translation>
 <translation id="4908869848243824489">Discover by Google</translation>
 <translation id="4910889077668685004">Төлбөрийн апп</translation>
+<translation id="4912413785358399818">Таб зөөх</translation>
 <translation id="4913161338056004800">Статистик шинэчлэх</translation>
 <translation id="4913169188695071480">Дахин боловсруулахыг зогсоох</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# Хуудас}other{# Хуудас}}</translation>
@@ -633,7 +642,9 @@
 <translation id="5039804452771397117">Зөвшөөрөх</translation>
 <translation id="5054455334322721892">Таныг нэвтэрсэн үед <ph name="BEGIN_LINK1" />бусад төрлийн үйл ажиллагааг<ph name="END_LINK1" /> Google Бүртгэлд тань хадгалж магадгүй. Та тэдгээрийг хүссэн үедээ устгах боломжтой.</translation>
 <translation id="5061533557687621530">Цаг агаарыг шалгахын тулд микрофон дээр товшиж, “Өнөөдөр цаг агаар ямар байна вэ?” гэж хэлнэ үү</translation>
+<translation id="506254248375231072">Таб байхгүй</translation>
 <translation id="5087580092889165836">Карт нэмэх</translation>
+<translation id="5091199029769593641">Удахгүй та шинэ таб нээх үедээ <ph name="SITE_NAME" />-с стори харна. Таны дагадаг сайтуудыг Google бүртгэлд тань хадгалдаг. Та тэдгээрийг Discover-н тохиргоонд удирдах боломжтой.</translation>
 <translation id="5091249083535528968">Өргөтгөсөн ашиглалтын өгөгдөл</translation>
 <translation id="509429900233858213">Алдаа гарлаа.</translation>
 <translation id="510275257476243843">1 цаг үлдсэн</translation>
@@ -693,6 +704,7 @@
 <translation id="5454166040603940656"><ph name="PROVIDER" />-тэй</translation>
 <translation id="5456381639095306749">Хуудсыг татах</translation>
 <translation id="5458366071038729214">Та дагадаг сайтуудаа эндээс олно</translation>
+<translation id="5468068603361015296">Та <ph name="FILE_NAME" />-г ямартай ч татахыг хүсэж байна уу?</translation>
 <translation id="548278423535722844">Газрын зургийн апп-д нээх</translation>
 <translation id="5483197086164197190">Navigate Chrome</translation>
 <translation id="5487521232677179737">Өгөгдлийг устгах</translation>
@@ -749,6 +761,7 @@
 <translation id="5810288467834065221">Зохиогчийн эрх <ph name="YEAR" /> Google ХХК. Бүх эрх хуулиар хамгаалагдсан.</translation>
 <translation id="5810864297166300463">Вебийн тусламж</translation>
 <translation id="5814131985548525293">Эхлүүлэхийн тулд энд бичих эсвэл дуу хоолойны дүрс тэмдгийг товшино уу</translation>
+<translation id="5814749351757353073">Дуртай сайтуудаасаа хоцрохгүй байгаарай</translation>
 <translation id="583281660410589416">Үл мэдэгдэх</translation>
 <translation id="5833984609253377421">Холбоосыг хуваалцах</translation>
 <translation id="5834764604050996579">QR кодыг скан хийхийн тулд Chrome-д таны камерыг ашиглахыг зөвшөөрнө үү</translation>
@@ -823,6 +836,7 @@
 
 Жишээ нь: зарим веб хуудас тухайн хүсэлтэд таны өмнө нь зочилж байсан бусад веб хуудаснаас хамаарахгүйгээр зар сурталчилгаа үзүүлэх замаар хариу өгч болно. Ихэнх веб хуудас нь аюулгүй байдлыг сайжруулах, веб хуудасны мэдээлэл, зар, зөвлөгөөг харуулах, мөн тайлагнах статистик мэдээлэл гаргах зорилгоор таны хөтчийн мэдээллийг цуглуулан ашиглаж магадгүй.</translation>
 <translation id="624789221780392884">Шинэчлэлт хийхэд бэлэн</translation>
+<translation id="6264376385120300461">Ямартай ч татах</translation>
 <translation id="6277522088822131679">Энэ хуудсыг хэвлэхэд алдаа гарсан байна. Та дахин ачаална уу.</translation>
 <translation id="6278428485366576908">Загвар</translation>
 <translation id="6292420053234093573">Chrome-г ашигласнаар та <ph name="BEGIN_LINK1" />Google-н Үйлчилгээний нөхцөл<ph name="END_LINK1" /> ба <ph name="BEGIN_LINK2" />Google Chrome болон Chrome үйлдлийн системийн Үйлчилгээний нэмэлт нөхцөлийг<ph name="END_LINK2" /> зөвшөөрч байна.</translation>
@@ -880,10 +894,12 @@
 <translation id="6539092367496845964">Алдаа гарлаа. Дараа дахин оролдоно уу.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{1 цагийн өмнө шалгасан}other{# цагийн өмнө шалгасан}}</translation>
 <translation id="6545017243486555795">Бүх өгөгдлийг устгах</translation>
+<translation id="6546511553472444032">Файл аюултай байж магадгүй</translation>
 <translation id="6560414384669816528">Sogou-р хайх</translation>
 <translation id="656065428026159829">Дэлгэрэнгүй үзэх</translation>
 <translation id="6565959834589222080">Wi-Fi-г боломжтой үед ашигладаг</translation>
 <translation id="6566259936974865419">Chrome <ph name="GIGABYTES" /> ГБ-ыг хэмнэсэн</translation>
+<translation id="6569373978618239158">Та одоо шинэ таб нээх үедээ <ph name="SITE_NAME" />-с стори харна. Таны дагадаг сайтуудыг Google бүртгэлд тань хадгалдаг. Та тэдгээрийг Discover-н тохиргоонд удирдах боломжтой.</translation>
 <translation id="6573096386450695060">Байнга зөвшөөрөх</translation>
 <translation id="6573431926118603307">Таны бусад төхөөрөмжөөрөө Chrome-д нээсэн таб энд харагдах болно.</translation>
 <translation id="6583199322650523874">Одоогийн хуудсыг тэмдэглэх</translation>
@@ -949,6 +965,7 @@
 <translation id="696447261358045621">Нууцлалтай горимоос гарах</translation>
 <translation id="6979737339423435258">Бүх цаг</translation>
 <translation id="6981982820502123353">Хандалт</translation>
+<translation id="6987047470128880212">Нууцлалтай таб энэ төхөөрөмж дээр боломжгүй</translation>
 <translation id="6989267951144302301">Татаж чадсангүй</translation>
 <translation id="6995899638241819463">Өгөгдлийн зөрчлийн улмаас нууц үгийг задруулсан бол танд анхааруулах</translation>
 <translation id="7001056293070445572">Энэ файл том байна (<ph name="FILE_SIZE" />)</translation>
@@ -1025,6 +1042,7 @@
 <translation id="7482656565088326534">Урьдчилан үзэх таб</translation>
 <translation id="7484997419527351112">Discover - унтраасан</translation>
 <translation id="7485033510383818941">Хангамжийн контентыг сэргээхийн тулд хуудсыг доош татна уу</translation>
+<translation id="749294055653435199">Энэ төхөөрөмж дээр Google Дуран боломжгүй</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (Шинэчилсэн <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">хэмнэсэн дата</translation>
 <translation id="7498271377022651285">Түр хүлээнэ үү...</translation>
@@ -1126,6 +1144,7 @@
 <translation id="8037801708772278989">Дөнгөж сая шалгасан</translation>
 <translation id="8040831032425909005">Шуурхай үйлдлийн хайлтын виджетийн дүрс тэмдэг</translation>
 <translation id="804335162455518893">SD карт олдсонгүй</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> нууцлалтай таб}other{<ph name="TAB_COUNT_NORMAL" /> нууцлалтай таб}}</translation>
 <translation id="8051695050440594747"><ph name="MEGABYTES" /> МБ боломжтой</translation>
 <translation id="8058746566562539958">Chrome-н шинэ табад нээх</translation>
 <translation id="8063895661287329888">Хавчуургыг нэмж чадсангүй.</translation>
@@ -1224,6 +1243,7 @@
 <translation id="8621068256433641644">утас</translation>
 <translation id="8636825310635137004">Бусад төхөөрөмжөөс чихтэй хуудсаа авахын тулд синкийг асаана уу.</translation>
 <translation id="8641930654639604085">Насанд хүрэгчдэд зориулсан сайтыг блоклох</translation>
+<translation id="864544049772947936">Цонхнуудыг удирдах (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Та өгөгдлийг Chrome тохиргоонд устгаж болно</translation>
 <translation id="8656747343598256512">Google Бүртгэлээрээ энэ сайт болон Chrome-д нэвтэрнэ үү. Та синкийг дараа асааж болно.</translation>
 <translation id="8659579665266920523">Chrome-р хэрхэн хайх вэ</translation>
@@ -1312,6 +1332,7 @@
 <translation id="9219103736887031265">Зураг</translation>
 <translation id="926205370408745186">Chrome-н үйл ажиллагаагаа Дижитал хэрэглээнээс устгах</translation>
 <translation id="927968626442779827">Google Chrome дээр Lite горимыг ашиглаарай</translation>
+<translation id="928550791203542716"><ph name="SITE_NAME" />-г дагаж байна</translation>
 <translation id="932327136139879170">Нүүр хуудас</translation>
 <translation id="938850635132480979">Алдаа: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Нэвтрэх үгүүдийг оруулна уу</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
index e5cc533..442bbd1 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Zoek snel met je stem. Tik en houd vast om deze snelkoppeling te bewerken.</translation>
 <translation id="1028699632127661925">Verzenden naar <ph name="DEVICE_NAME" />…</translation>
 <translation id="103269572468856066">Ook gegevens van deze sites en apps wissen?</translation>
+<translation id="1034259925032978114">Venster is geopend</translation>
 <translation id="1036348656032585052">Uitzetten</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> toevoegen...</translation>
 <translation id="1045899828449635435">Ook gegevens van deze sites wissen?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Gebruik het hoogste beveiligingsniveau van Chrome</translation>
 <translation id="2200113223741723867">Delen van gebruiksgegevens beheren</translation>
 <translation id="2227444325776770048">Doorgaan als <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">Leeg venster</translation>
 <translation id="2239812875700136898">Beheer je artikelen met de knop 'Opties voor Discover'</translation>
 <translation id="2259659629660284697">Wachtwoorden exporteren…</translation>
 <translation id="2276696007612801991">Log in met je Google-account om je wachtwoorden te checken</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">Homepage van Chrome</translation>
 <translation id="3157842584138209013">Via de knop 'Meer opties' kun je zien hoeveel data je hebt bespaard</translation>
 <translation id="3166827708714933426">Sneltoetsen voor tabbladen en vensters</translation>
+<translation id="316694332262407393">Chrome is hier al actief.</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">Bijna klaar</translation>
 <translation id="3207960819495026254">Toegevoegd aan 'Bookmarks'</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Bijdragen aan veiliger internet</translation>
 <translation id="3602290021589620013">Voorbeeld</translation>
 <translation id="3616113530831147358">Audio</translation>
+<translation id="3622349720008044802">Vensters beheren</translation>
 <translation id="3631987586758005671">Delen met <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">Maskering van wachtwoord ongedaan maken</translation>
 <translation id="363596933471559332">Log automatisch in bij websites met de opgeslagen inloggegevens. Als de functie uitstaat, moet je je identiteit verifiëren voordat je kunt inloggen bij een website.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Vertaalinstellingen</translation>
 <translation id="3738139272394829648">Tikken om te zoeken</translation>
 <translation id="3739899004075612870">Bookmark toegevoegd in <ph name="PRODUCT_NAME" /></translation>
+<translation id="3740525748616366977">Gesproken zoekopdracht is niet beschikbaar op dit apparaat</translation>
 <translation id="3749259744154402564">Niet ondersteund</translation>
 <translation id="3771001275138982843">Kan de update niet downloaden</translation>
 <translation id="3771033907050503522">Incognitotabbladen</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Basisgegevens en informatie over de websites die je bezoekt en de apps die je gebruikt</translation>
 <translation id="3775705724665058594">Verzenden naar je apparaten</translation>
 <translation id="3778956594442850293">Toegevoegd aan startscherm</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 tabblad}other{# tabbladen}}</translation>
 <translation id="3803784507854318295">Autoplay beheren</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Beheren</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">'</translation>
 <translation id="393697183122708255">Gesproken zoekopdracht niet beschikbaar</translation>
 <translation id="395377504920307820">Gebruiken zonder account</translation>
+<translation id="3958287878205277013">Sluit alle incognitotabbladen om de incognito-browsegeschiedenis op je apparaat te wissen</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome laadt de pagina wanneer deze klaar is}other{Chrome laadt de pagina's wanneer deze klaar zijn}}</translation>
 <translation id="3962957115499249330">Je ziet een melding als deze download start via wifi.</translation>
 <translation id="3963007978381181125">Wachtwoordzinversleuteling is niet van toepassing op betaalmethoden en adressen van Google Pay. Alleen iemand met je wachtwoordzin kan je versleutelde gegevens lezen. De wachtwoordzin wordt niet verzonden naar of opgeslagen door Google. Als je je wachtwoordzin vergeet of deze instelling wilt wijzigen, moet je de synchronisatie resetten. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 Voor je Google-account kunnen andere vormen van browsegeschiedenis (zoals zoekopdrachten en activiteit uit andere Google-services) beschikbaar zijn via <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="4532845899244822526">Map kiezen</translation>
 <translation id="4538018662093857852">Lite-versie aanzetten</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> tabblad}other{<ph name="TAB_COUNT_MANY" /> tabbladen, <ph name="TAB_COUNT_INCOGNITO" /> incognitotabbladen}}</translation>
 <translation id="4550003330909367850">Als je hier je wachtwoord wilt bekijken of kopiëren, stel je schermvergrendeling in op dit apparaat.</translation>
 <translation id="4554077758708533499">Aangesloten via USB-kabel</translation>
 <translation id="4557685098773234337">Voeg deze pagina toe aan je startscherm om hier sneller te komen</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">Niet-ondersteund aantal Chrome-instanties.</translation>
 <translation id="4908869848243824489">Discover van Google</translation>
 <translation id="4910889077668685004">Betaal-apps</translation>
+<translation id="4912413785358399818">Tabblad verplaatsen</translation>
 <translation id="4913161338056004800">Statistieken resetten</translation>
 <translation id="4913169188695071480">Vernieuwen stopzetten</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# pagina}other{# pagina's}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">Toestaan</translation>
 <translation id="5054455334322721892">Er kunnen <ph name="BEGIN_LINK1" />andere vormen van activiteit<ph name="END_LINK1" /> worden opgeslagen op je Google-account als je bent ingelogd. Je kunt ze wanneer je wilt verwijderen.</translation>
 <translation id="5061533557687621530">Als je het weerbericht wilt weten, tik je op de microfoon en zeg je 'Wat voor weer wordt het vandaag?'</translation>
+<translation id="506254248375231072">Geen tabbladen</translation>
 <translation id="5087580092889165836">Pas toevoegen</translation>
+<translation id="5091199029769593641">Binnenkort zie je artikelen van <ph name="SITE_NAME" /> als je een nieuw tabblad opent. Sites die je volgt, worden opgeslagen in je Google-account. Je kunt ze beheren in de instellingen van Discover.</translation>
 <translation id="5091249083535528968">Uitgebreide gebruiksgegevens</translation>
 <translation id="509429900233858213">Er is een fout opgetreden.</translation>
 <translation id="510275257476243843">1 uur resterend</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">met <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">Pagina downloaden</translation>
 <translation id="5458366071038729214">Hier vind je de sites die je volgt</translation>
+<translation id="5468068603361015296">Wil je <ph name="FILE_NAME" /> toch downloaden?</translation>
 <translation id="548278423535722844">Openen in app voor passen</translation>
 <translation id="5483197086164197190">Navigeren in Chrome</translation>
 <translation id="5487521232677179737">Gegevens wissen</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">Copyright <ph name="YEAR" /> Google LLC. Alle rechten voorbehouden.</translation>
 <translation id="5810864297166300463">Webhulp</translation>
 <translation id="5814131985548525293">Typ hier of tik op het microfoonicoon om te starten</translation>
+<translation id="5814749351757353073">Blijf op de hoogte van je favoriete sites</translation>
 <translation id="583281660410589416">Onbekend</translation>
 <translation id="5833984609253377421">Link delen</translation>
 <translation id="5834764604050996579">Als je een QR-code wilt scannen, moet je Chrome toestemming geven om je camera te gebruiken</translation>
@@ -824,6 +837,7 @@
 
 Zo kunnen sommige websites op dit verzoek reageren door advertenties te tonen die niet zijn gebaseerd op andere websites die je hebt bezocht. Toch blijven veel websites je browsegegevens nog verzamelen en gebruiken, bijvoorbeeld om de beveiliging te verbeteren, om content, services, advertenties en aanbevelingen te leveren en om rapportagestatistieken te genereren.</translation>
 <translation id="624789221780392884">Update klaar</translation>
+<translation id="6264376385120300461">Toch downloaden</translation>
 <translation id="6277522088822131679">Er is een fout opgetreden bij het afdrukken van de pagina. Probeer het opnieuw.</translation>
 <translation id="6278428485366576908">Thema</translation>
 <translation id="6292420053234093573">Door Chrome te gebruiken, ga je akkoord met de <ph name="BEGIN_LINK1" />servicevoorwaarden van Google<ph name="END_LINK1" /> en met de <ph name="BEGIN_LINK2" />aanvullende servicevoorwaarden van Google Chrome en Chrome OS<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">Er is iets misgegaan. Probeer het later opnieuw.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{1 uur geleden gecheckt}other{# uur geleden gecheckt}}</translation>
 <translation id="6545017243486555795">Alle gegevens wissen</translation>
+<translation id="6546511553472444032">Bestand kan schadelijk zijn</translation>
 <translation id="6560414384669816528">Zoeken met Sogou</translation>
 <translation id="656065428026159829">Meer tonen</translation>
 <translation id="6565959834589222080">Wifi wordt gebruikt als dat beschikbaar is</translation>
 <translation id="6566259936974865419">Chrome bespaart je <ph name="GIGABYTES" /> GB</translation>
+<translation id="6569373978618239158">Je ziet nu artikelen van <ph name="SITE_NAME" /> als je een nieuw tabblad opent. Sites die je volgt, worden opgeslagen in je Google-account. Je kunt ze beheren in de instellingen van Discover.</translation>
 <translation id="6573096386450695060">Altijd toestaan</translation>
 <translation id="6573431926118603307">Hier zie je tabbladen die je op andere apparaten in Chrome hebt geopend.</translation>
 <translation id="6583199322650523874">Een bookmark toevoegen voor de huidige pagina</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">Incognitomodus verlaten</translation>
 <translation id="6979737339423435258">Alles</translation>
 <translation id="6981982820502123353">Toegankelijkheid</translation>
+<translation id="6987047470128880212">Incognito is niet beschikbaar op dit apparaat.</translation>
 <translation id="6989267951144302301">Kan niet downloaden</translation>
 <translation id="6995899638241819463">Waarschuwen als je wachtwoorden zijn gelekt bij een gegevenslek</translation>
 <translation id="7001056293070445572">Dit bestand is groot (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">Voorbeeldtabblad</translation>
 <translation id="7484997419527351112">Discover - uit</translation>
 <translation id="7485033510383818941">Als je de feed wilt vernieuwen, swipe je de pagina omlaag</translation>
+<translation id="749294055653435199">Google Lens is niet beschikbaar op dit apparaat</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (geüpdatet: <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">data bespaard</translation>
 <translation id="7498271377022651285">Een ogenblik geduld…</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">Zojuist gecheckt</translation>
 <translation id="8040831032425909005">Icoon voor snelle acties en zoekwidget</translation>
 <translation id="804335162455518893">SD-kaart niet gevonden</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> incognitotabblad}other{<ph name="TAB_COUNT_NORMAL" /> incognitotabbladen}}</translation>
 <translation id="8051695050440594747"><ph name="MEGABYTES" /> MB beschikbaar</translation>
 <translation id="8058746566562539958">Openen op nieuw Chrome-tabblad</translation>
 <translation id="8063895661287329888">Kan bookmark niet toevoegen.</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">telefoon</translation>
 <translation id="8636825310635137004">Zet synchronisatie aan om de tabbladen op je andere apparaten te bekijken</translation>
 <translation id="8641930654639604085">Sites met content voor volwassenen proberen te blokkeren</translation>
+<translation id="864544049772947936">Vensters beheren (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Je kunt de gegevens wissen in de Chrome-instellingen</translation>
 <translation id="8656747343598256512">Log in bij deze site en Chrome met je Google-account. Je kunt de synchronisatie later aanzetten.</translation>
 <translation id="8659579665266920523">Zoeken met Chrome</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">Afbeeldingen</translation>
 <translation id="926205370408745186">Je Chrome-activiteit verwijderen uit Digitaal welzijn</translation>
 <translation id="927968626442779827">Lite-versie van Google Chrome gebruiken</translation>
+<translation id="928550791203542716"><ph name="SITE_NAME" /> volgen</translation>
 <translation id="932327136139879170">Homepage</translation>
 <translation id="938850635132480979">Fout: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Wachtwoordzin opgeven</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
index 84c976d7..aab69069 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Szybko wyszukaj głosowo. Aby edytować ten skrót, naciśnij i przytrzymaj.</translation>
 <translation id="1028699632127661925">Przesyłam na: <ph name="DEVICE_NAME" />…</translation>
 <translation id="103269572468856066">Wyczyścić też dane z tych stron i aplikacji?</translation>
+<translation id="1034259925032978114">Okno jest otwarte</translation>
 <translation id="1036348656032585052">Wyłącz</translation>
 <translation id="1036727731225946849">Dodaję aplikację <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1045899828449635435">Wyczyścić też dane z tych stron?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Korzystaj z najlepszych zabezpieczeń Chrome</translation>
 <translation id="2200113223741723867">Zarządzanie udostępnianiem danych o korzystaniu</translation>
 <translation id="2227444325776770048">Kontynuuj jako <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">Puste okno</translation>
 <translation id="2239812875700136898">Zarządzaj wyświetlanymi wiadomościami za pomocą opcji przycisku Discover</translation>
 <translation id="2259659629660284697">Eksportuj hasła…</translation>
 <translation id="2276696007612801991">Aby sprawdzić swoje hasła, zaloguj się na konto Google</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">Strona główna Chrome</translation>
 <translation id="3157842584138209013">Sprawdź ilość zaoszczędzonych danych, używając przycisku Więcej opcji</translation>
 <translation id="3166827708714933426">Skróty kart i okien</translation>
+<translation id="316694332262407393">Przeglądarka Chrome jest już uruchomiona.</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">Prawie gotowe!</translation>
 <translation id="3207960819495026254">Dodano do zakładek</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Pomóż poprawić bezpieczeństwo w sieci</translation>
 <translation id="3602290021589620013">Podgląd</translation>
 <translation id="3616113530831147358">Dźwięk</translation>
+<translation id="3622349720008044802">Zarządzaj oknami</translation>
 <translation id="3631987586758005671">Udostępniam urządzeniu <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">Pokaż hasło</translation>
 <translation id="363596933471559332">Automatycznie loguj się na stronach, używając zapisanych danych logowania. Gdy ta funkcja jest wyłączona, przed każdym zalogowaniem się zobaczysz prośbę o weryfikację.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Ustawienia tłumaczenia</translation>
 <translation id="3738139272394829648">Dotknij, by wyszukać</translation>
 <translation id="3739899004075612870">Utworzono zakładkę w: <ph name="PRODUCT_NAME" /></translation>
+<translation id="3740525748616366977">Na tym urządzeniu wyszukiwanie głosowe jest niedostępne</translation>
 <translation id="3749259744154402564">Nieobsługiwane</translation>
 <translation id="3771001275138982843">Nie udało się pobrać aktualizacji</translation>
 <translation id="3771033907050503522">Karty incognito</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Podstawowe dane oraz informacje na temat odwiedzanych stron i używanych aplikacji</translation>
 <translation id="3775705724665058594">Wyślij na swoje urządzenia</translation>
 <translation id="3778956594442850293">Dodano do ekranu głównego</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 karta}few{# karty}many{# kart}other{# karty}}</translation>
 <translation id="3803784507854318295">Zarządzanie autoodtwarzaniem</translation>
 <translation id="3810838688059735925">Wideo</translation>
 <translation id="3810973564298564668">Zarządzaj</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">„</translation>
 <translation id="393697183122708255">Brak włączonego wyszukiwania głosowego</translation>
 <translation id="395377504920307820">Używaj bez konta</translation>
+<translation id="3958287878205277013">Aby usunąć z urządzenia historię przeglądania w trybie incognito, zamknij wszystkie karty incognito.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome wczyta stronę, gdy będzie gotowa}few{Chrome wczyta strony, gdy będą gotowe}many{Chrome wczyta strony, gdy będą gotowe}other{Chrome wczyta strony, gdy będą gotowe}}</translation>
 <translation id="3962957115499249330">Gdy rozpocznie się to pobieranie przez Wi-Fi, zobaczysz powiadomienie.</translation>
 <translation id="3963007978381181125">Szyfrowanie hasłem nie obejmuje form płatności ani adresów w Google Pay. Twoje zaszyfrowane dane może odczytać tylko ktoś znający hasło. Google nie otrzyma Twojego hasła ani nie będzie go przechowywać. Jeśli je zapomnisz lub zechcesz zmienić to ustawienie, konieczne będzie zresetowanie synchronizacji. <ph name="BEGIN_LINK" />Więcej informacji<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 Na stronie <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> na Twoim koncie Google mogą być zapisane inne rodzaje historii przeglądania, takie jak wyszukiwania lub aktywność z innych usług Google.</translation>
 <translation id="4532845899244822526">Wybierz folder</translation>
 <translation id="4538018662093857852">Włącz wersję uproszczoną</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> karta}few{<ph name="TAB_COUNT_MANY" /> karty, <ph name="TAB_COUNT_INCOGNITO" /> incognito}many{<ph name="TAB_COUNT_MANY" /> kart, <ph name="TAB_COUNT_INCOGNITO" /> incognito}other{<ph name="TAB_COUNT_MANY" /> karty, <ph name="TAB_COUNT_INCOGNITO" /> incognito}}</translation>
 <translation id="4550003330909367850">Aby wyświetlić lub skopiować hasło, ustaw blokadę ekranu na urządzeniu.</translation>
 <translation id="4554077758708533499">Podłączony za pomocą kabla USB</translation>
 <translation id="4557685098773234337">Aby móc szybciej otwierać tę stronę, dodaj ją do ekranu głównego.</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">Nieobsługiwana liczba wystąpień Chrome.</translation>
 <translation id="4908869848243824489">Discover od Google</translation>
 <translation id="4910889077668685004">Aplikacje do płatności</translation>
+<translation id="4912413785358399818">Przenieś kartę</translation>
 <translation id="4913161338056004800">Resetuj statystyki</translation>
 <translation id="4913169188695071480">Zatrzymaj odświeżanie</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# strona}few{# strony}many{# stron}other{# strony}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">Zezwalaj</translation>
 <translation id="5054455334322721892"><ph name="BEGIN_LINK1" />Inne formy aktywności<ph name="END_LINK1" /> mogą być zapisywane na Twoim koncie Google, gdy się zalogujesz. W każdej chwili możesz je usunąć.</translation>
 <translation id="5061533557687621530">Aby sprawdzić prognozę pogody, kliknij mikrofon i powiedz „Jaka jest prognoza na dzisiaj?”</translation>
+<translation id="506254248375231072">Brak kart</translation>
 <translation id="5087580092889165836">Dodaj kartę</translation>
+<translation id="5091199029769593641">Już niedługo po otwarciu nowej karty będziesz widzieć relacje ze strony <ph name="SITE_NAME" />. Strony, które obserwujesz, są zapisywane na Twoim koncie Google. Możesz nimi zarządzać w ustawieniach kart Discover.</translation>
 <translation id="5091249083535528968">Rozszerzone dane o korzystaniu</translation>
 <translation id="509429900233858213">Wystąpił błąd.</translation>
 <translation id="510275257476243843">Pozostała godzina</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">za pomocą <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">Pobierz stronę</translation>
 <translation id="5458366071038729214">Tu znajdziesz witryny, które obserwujesz</translation>
+<translation id="5468068603361015296">Czy mimo wszystko chcesz pobrać plik <ph name="FILE_NAME" />?</translation>
 <translation id="548278423535722844">Otwórz w aplikacji z mapami</translation>
 <translation id="5483197086164197190">Poruszanie się w Chrome</translation>
 <translation id="5487521232677179737">Wyczyść dane</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">Copyright <ph name="YEAR" /> Google LLC. Wszelkie prawa zastrzeżone.</translation>
 <translation id="5810864297166300463">Pomoc dotycząca sieci</translation>
 <translation id="5814131985548525293">Wpisz coś tutaj lub kliknij ikonę mikrofonu, by wyszukiwać głosem</translation>
+<translation id="5814749351757353073">Bądź na bieżąco ze swoimi ulubionymi stronami</translation>
 <translation id="583281660410589416">Nieznany</translation>
 <translation id="5833984609253377421">Udostępnij link</translation>
 <translation id="5834764604050996579">Aby zeskanować kod QR, zezwól Chrome na używanie aparatu</translation>
@@ -824,6 +837,7 @@
 
 Na przykład niektóre strony mogą na nie zareagować, wyświetlając reklamy bez związku ze stronami odwiedzonymi przez Ciebie wcześniej. Wiele stron będzie nadal gromadzić dane przeglądania i używać ich na przykład do poprawy bezpieczeństwa, pokazywania treści, reklam i rekomendacji oraz do generowania statystyk.</translation>
 <translation id="624789221780392884">Aktualizacja jest gotowa</translation>
+<translation id="6264376385120300461">Pobierz mimo to</translation>
 <translation id="6277522088822131679">Podczas drukowania strony wystąpił problem. Spróbuj ponownie.</translation>
 <translation id="6278428485366576908">Motyw</translation>
 <translation id="6292420053234093573">Korzystając z Chrome, wyrażasz zgodę na <ph name="BEGIN_LINK1" />Warunki korzystania z usług Google<ph name="END_LINK1" /> oraz <ph name="BEGIN_LINK2" />Dodatkowe warunki korzystania z Google Chrome i Chrome OS<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">Coś poszło nie tak. Spróbuj później.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Sprawdzano godzinę temu}few{Sprawdzano # godziny temu}many{Sprawdzano # godzin temu}other{Sprawdzano # godziny temu}}</translation>
 <translation id="6545017243486555795">Wyczyść wszystkie dane</translation>
+<translation id="6546511553472444032">Plik może być szkodliwy</translation>
 <translation id="6560414384669816528">Szukaj w Sogou</translation>
 <translation id="656065428026159829">Pokaż więcej</translation>
 <translation id="6565959834589222080">Sieć Wi-Fi jest używana, gdy jest dostępna</translation>
 <translation id="6566259936974865419">Chrome pozwolił Ci zaoszczędzić <ph name="GIGABYTES" /> GB</translation>
+<translation id="6569373978618239158">Po otwarciu nowej karty będziesz teraz widzieć nowe relacje ze strony <ph name="SITE_NAME" />. Strony, które obserwujesz, są zapisywane na Twoim koncie Google. Możesz nimi zarządzać w ustawieniach kart Discover.</translation>
 <translation id="6573096386450695060">Zawsze zezwalaj</translation>
 <translation id="6573431926118603307">Tutaj wyświetlą się karty otwarte w Chrome na innych urządzeniach.</translation>
 <translation id="6583199322650523874">Dodaj bieżącą stronę do zakładek</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">Wyłącz tryb incognito</translation>
 <translation id="6979737339423435258">Od początku</translation>
 <translation id="6981982820502123353">Ułatwienia dostępu</translation>
+<translation id="6987047470128880212">Na tym urządzeniu tryb incognito jest niedostępny</translation>
 <translation id="6989267951144302301">Nie udało się pobrać</translation>
 <translation id="6995899638241819463">Ostrzegaj, jeśli wskutek naruszenia bezpieczeństwa danych doszło do ujawnienia haseł</translation>
 <translation id="7001056293070445572">Plik jest duży (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">Karta podglądu</translation>
 <translation id="7484997419527351112">Discover – wyłączone</translation>
 <translation id="7485033510383818941">Aby odświeżyć treści kanału, pociągnij stronę w dół</translation>
+<translation id="749294055653435199">Na tym urządzeniu Obiektyw Google jest niedostępny</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (zaktualizowana <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">zaoszczędzonych danych</translation>
 <translation id="7498271377022651285">Czekaj…</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">Sprawdzano przed chwilą</translation>
 <translation id="8040831032425909005">Ikona widżetu skrótów i wyszukiwania</translation>
 <translation id="804335162455518893">Nie znaleziono karty SD</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> karta incognito}few{<ph name="TAB_COUNT_NORMAL" /> karty incognito}many{<ph name="TAB_COUNT_NORMAL" /> kart incognito}other{<ph name="TAB_COUNT_NORMAL" /> karty incognito}}</translation>
 <translation id="8051695050440594747">Dostępne: <ph name="MEGABYTES" /> MB</translation>
 <translation id="8058746566562539958">Otwórz w nowej karcie Chrome</translation>
 <translation id="8063895661287329888">Nie udało się dodać zakładki.</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">telefonie</translation>
 <translation id="8636825310635137004">Aby korzystać z kart ze swoich innych urządzeń, włącz synchronizację</translation>
 <translation id="8641930654639604085">Próbuj blokować strony dla dorosłych</translation>
+<translation id="864544049772947936">Zarządzaj oknami (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Dane możesz usunąć w Ustawieniach Chrome</translation>
 <translation id="8656747343598256512">Zaloguj się na swoje konto Google na tej stronie i w Chrome. Synchronizację możesz włączyć później.</translation>
 <translation id="8659579665266920523">Wyszukiwanie w Chrome</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">Grafika</translation>
 <translation id="926205370408745186">Usuwa Twoją aktywność w Chrome z Cyfrowej równowagi</translation>
 <translation id="927968626442779827">Użyj wersji uproszczonej w Google Chrome</translation>
+<translation id="928550791203542716">Obserwujesz: <ph name="SITE_NAME" /></translation>
 <translation id="932327136139879170">Strona główna</translation>
 <translation id="938850635132480979">Błąd: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Wpisz hasło</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
index 33827ae3..2e5d4e3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Caută rapid cu ajutorul vocii. Pentru a edita comanda rapidă, atinge-o lung.</translation>
 <translation id="1028699632127661925">Se trimite la <ph name="DEVICE_NAME" />...</translation>
 <translation id="103269572468856066">Ștergi și datele de la aceste site-uri și aplicații?</translation>
+<translation id="1034259925032978114">Fereastra este deschisă</translation>
 <translation id="1036348656032585052">Dezactivează</translation>
 <translation id="1036727731225946849">Se adaugă <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1045899828449635435">Ștergi și datele de la aceste site-uri?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Beneficiază de cel mai înalt nivel de securitate de la Chrome</translation>
 <translation id="2200113223741723867">Gestionează accesul la datele de utilizare</translation>
 <translation id="2227444325776770048">Continuă ca <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">Fereastră goală</translation>
 <translation id="2239812875700136898">Gestionează subiectele folosind butonul Opțiuni pentru Discover</translation>
 <translation id="2259659629660284697">Exportă parolele…</translation>
 <translation id="2276696007612801991">Conectează-te la contul Google pentru a verifica parolele</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">Pagina de pornire Chrome</translation>
 <translation id="3157842584138209013">Vezi ce volum de date ai economisit folosind butonul Mai multe opțiuni</translation>
 <translation id="3166827708714933426">Comenzi rapide pentru file și ferestre</translation>
+<translation id="316694332262407393">Chrome rulează deja aici.</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">Aproape gata!</translation>
 <translation id="3207960819495026254">Marcată</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Îmbunătățește securitatea pe web</translation>
 <translation id="3602290021589620013">Previzualizare</translation>
 <translation id="3616113530831147358">Audio</translation>
+<translation id="3622349720008044802">Gestionează ferestrele</translation>
 <translation id="3631987586758005671">Se trimite la <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">Afișează parola</translation>
 <translation id="363596933471559332">Te conectezi automat la site-uri folosind datele de conectare stocate. Când funcția este dezactivată, ți se va solicita verificarea de fiecare dată înainte de a te conecta la un site.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Setări de traducere</translation>
 <translation id="3738139272394829648">Atinge pentru a căuta</translation>
 <translation id="3739899004075612870">Marcat în <ph name="PRODUCT_NAME" /></translation>
+<translation id="3740525748616366977">Căutarea vocală nu este disponibilă pe acest dispozitiv</translation>
 <translation id="3749259744154402564">Nu se acceptă</translation>
 <translation id="3771001275138982843">Nu s-a putut descărca actualizarea</translation>
 <translation id="3771033907050503522">File incognito</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Date de bază și informații despre site-urile accesate și aplicațiile folosite</translation>
 <translation id="3775705724665058594">Trimite pe dispozitivele tale</translation>
 <translation id="3778956594442850293">S-a adăugat pe ecranul de pornire</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{O filă}few{# file}other{# de file}}</translation>
 <translation id="3803784507854318295">Gestionează redarea automată</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Gestionează</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">„</translation>
 <translation id="393697183122708255">Nu există căutare vocală activată</translation>
 <translation id="395377504920307820">Folosește fără un cont</translation>
+<translation id="3958287878205277013">Pentru a șterge istoricul de navigare incognito de pe dispozitiv, închide toate filele incognito.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome va încărca pagina când este gata}few{Chrome va încărca paginile când este gata}other{Chrome va încărca paginile când este gata}}</translation>
 <translation id="3962957115499249330">Vei primi o notificare când începe descărcarea prin Wi-Fi.</translation>
 <translation id="3963007978381181125">Criptarea expresiei de acces nu include metodele de plată și adresele din Google Pay. Numai cine are expresia ta de acces poate citi datele tale criptate. Expresia de acces nu este trimisă sau stocată la Google. Dacă îți uiți expresia de acces sau vrei să modifici această setare, va trebui să resetezi sincronizarea. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 Contul Google poate să ofere alte forme ale istoricului de navigare, cum ar fi căutările și activitatea din alte servicii Google, la <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="4532845899244822526">Alege dosarul</translation>
 <translation id="4538018662093857852">Activează modul Lite</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> filă}few{<ph name="TAB_COUNT_MANY" /> file, <ph name="TAB_COUNT_INCOGNITO" /> incognito}other{<ph name="TAB_COUNT_MANY" /> de file, <ph name="TAB_COUNT_INCOGNITO" /> incognito}}</translation>
 <translation id="4550003330909367850">Ca să vezi sau să copiezi parola aici, setează blocarea ecranului pe acest dispozitiv.</translation>
 <translation id="4554077758708533499">Conectat cu un cablu USB</translation>
 <translation id="4557685098773234337">Pentru o a accesa mai ușor, adaugă pagina pe ecranul de pornire</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">Număr de instanțe Chrome neacceptat.</translation>
 <translation id="4908869848243824489">Discover de la Google</translation>
 <translation id="4910889077668685004">Aplicații pentru plăți</translation>
+<translation id="4912413785358399818">Mută fila</translation>
 <translation id="4913161338056004800">Resetează statisticile</translation>
 <translation id="4913169188695071480">Oprește actualizarea</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{O pagină}few{# pagini}other{# pagini}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">Permite</translation>
 <translation id="5054455334322721892"><ph name="BEGIN_LINK1" />Alte tipuri de activități<ph name="END_LINK1" /> pot fi salvate în Contul Google dacă te-ai conectat. Le poți șterge oricând.</translation>
 <translation id="5061533557687621530">Pentru a afla starea vremii, atinge microfonul și rostește „Cum este vremea azi?”</translation>
+<translation id="506254248375231072">Nicio filă</translation>
 <translation id="5087580092889165836">Adaugă un card</translation>
+<translation id="5091199029769593641">În curând vei vedea articole de la <ph name="SITE_NAME" /> când deschizi o filă nouă. Site-urile pe care le urmărești sunt salvate în contul tău Google. Le poți gestiona din setările Discover.</translation>
 <translation id="5091249083535528968">Date de utilizare detaliate</translation>
 <translation id="509429900233858213">A apărut o eroare.</translation>
 <translation id="510275257476243843">1 oră rămasă</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">cu <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">Descarcă pagina</translation>
 <translation id="5458366071038729214">Aici vei vedea site-urile pe care le urmărești</translation>
+<translation id="5468068603361015296">Vrei să descarci oricum <ph name="FILE_NAME" />?</translation>
 <translation id="548278423535722844">Deschide în aplicația Maps</translation>
 <translation id="5483197086164197190">Navigarea în Chrome</translation>
 <translation id="5487521232677179737">Șterge datele</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">Drept de autor <ph name="YEAR" /> Google LLC. Toate drepturile rezervate.</translation>
 <translation id="5810864297166300463">Asistență pe web</translation>
 <translation id="5814131985548525293">Introdu text aici sau atinge pictograma microfon pentru a începe</translation>
+<translation id="5814749351757353073">Fii la curent cu site-urile preferate</translation>
 <translation id="583281660410589416">Necunoscut</translation>
 <translation id="5833984609253377421">Trimite linkul</translation>
 <translation id="5834764604050996579">Pentru a scana un cod QR, permite ca Chrome să utilizeze camera</translation>
@@ -824,6 +837,7 @@
 
 De exemplu, unele site-uri pot răspunde la această solicitare afișând anunțuri care nu se bazează pe alte site-uri accesate de tine. Numeroase site-uri vor culege și vor utiliza în continuare datele de navigare. De exemplu, pentru a îmbunătăți securitatea, pentru a oferi conținut, anunțuri și recomandări și pentru a genera statistici de raportare.</translation>
 <translation id="624789221780392884">Actualizarea este pregătită</translation>
+<translation id="6264376385120300461">Descarcă oricum</translation>
 <translation id="6277522088822131679">A apărut o problemă la printarea paginii. Încercați din nou.</translation>
 <translation id="6278428485366576908">Temă</translation>
 <translation id="6292420053234093573">Dacă folosești Chrome, ești de acord cu <ph name="BEGIN_LINK1" />Termenii și condițiile Google<ph name="END_LINK1" /> și cu <ph name="BEGIN_LINK2" />Termenii și condițiile suplimentare pentru Google Chrome și Sistemul de operare Chrome<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">A apărut o eroare. Încearcă din nou mai târziu.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{A rulat acum o oră}few{A rulat acum # ore}other{A rulat acum # de ore}}</translation>
 <translation id="6545017243486555795">Șterge toate datele</translation>
+<translation id="6546511553472444032">Fișierul poate fi dăunător</translation>
 <translation id="6560414384669816528">Caută cu Sogou</translation>
 <translation id="656065428026159829">Vezi mai multe</translation>
 <translation id="6565959834589222080">Conexiunea Wi-Fi este folosită când este disponibilă</translation>
 <translation id="6566259936974865419">Chrome a economisit <ph name="GIGABYTES" /> GB</translation>
+<translation id="6569373978618239158">Acum vei vedea articole de la <ph name="SITE_NAME" /> când deschizi o filă nouă. Site-urile pe care le urmărești sunt salvate în contul tău Google. Le poți gestiona din setările Discover.</translation>
 <translation id="6573096386450695060">Permite întotdeauna</translation>
 <translation id="6573431926118603307">Filele deschise în Chrome pe alte dispozitive vor apărea aici.</translation>
 <translation id="6583199322650523874">Marchează pagina curentă</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">Ieși din modul incognito</translation>
 <translation id="6979737339423435258">Dintotdeauna</translation>
 <translation id="6981982820502123353">Accesibilitate</translation>
+<translation id="6987047470128880212">Modul incognito nu este disponibil pe acest dispozitiv</translation>
 <translation id="6989267951144302301">Nu s-a putut descărca</translation>
 <translation id="6995899638241819463">Avertizează-mă dacă parolele au fost expuse în urma încălcării securității datelor</translation>
 <translation id="7001056293070445572">Fișierul este mare (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">Fila de previzualizare</translation>
 <translation id="7484997419527351112">Discover – dezactivat</translation>
 <translation id="7485033510383818941">Pentru a actualiza conținutul feedului, trage pagina în jos</translation>
+<translation id="749294055653435199">Google Lens nu este disponibil pe acest dispozitiv</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (Actualizată la <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">date economisite</translation>
 <translation id="7498271377022651285">Așteaptă...</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">A rulat adineauri</translation>
 <translation id="8040831032425909005">Pictograma widgetului Căutare Google pentru acțiuni rapide</translation>
 <translation id="804335162455518893">Nu s-a găsit cardul SD</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> filă incognito}few{<ph name="TAB_COUNT_NORMAL" /> file incognito}other{<ph name="TAB_COUNT_NORMAL" /> de file incognito}}</translation>
 <translation id="8051695050440594747"><ph name="MEGABYTES" /> MO disponibili</translation>
 <translation id="8058746566562539958">Deschide în filă Chrome nouă</translation>
 <translation id="8063895661287329888">Marcajul nu a putut fi adăugat.</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">telefon</translation>
 <translation id="8636825310635137004">Pentru a accesa filele de pe alte dispozitive, activează sincronizarea.</translation>
 <translation id="8641930654639604085">Încearcă să blochezi site-urile destinate adulților</translation>
+<translation id="864544049772947936">Gestionează ferestrele (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Poți șterge datele în Setările Chrome</translation>
 <translation id="8656747343598256512">Conectează-te la acest site și la Chrome cu Contul Google. Poți activa sincronizarea mai târziu.</translation>
 <translation id="8659579665266920523">Cum să cauți folosind Chrome</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">Imagini</translation>
 <translation id="926205370408745186">Elimină activitatea în Chrome din Bunăstarea digitală</translation>
 <translation id="927968626442779827">Folosește modul Lite în Google Chrome</translation>
+<translation id="928550791203542716">Urmărești <ph name="SITE_NAME" /></translation>
 <translation id="932327136139879170">Pagina de pornire</translation>
 <translation id="938850635132480979">Eroare: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Introdu expresia de acces</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
index e363ccdf24..53b75cd 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">Hitro iščite z glasom. Če želite urediti to bližnjico, pridržite.</translation>
 <translation id="1028699632127661925">Pošiljanje v napravo <ph name="DEVICE_NAME" /> ...</translation>
 <translation id="103269572468856066">Želite izbrisati tudi podatke s teh mest in iz aplikacij?</translation>
+<translation id="1034259925032978114">Okno je odprto.</translation>
 <translation id="1036348656032585052">Izklop</translation>
 <translation id="1036727731225946849">Dodajanje <ph name="WEBAPK_NAME" /> ...</translation>
 <translation id="1045899828449635435">Želite tudi izbrisati podatke s teh mest?</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">Izberite Chromovo najmočnejšo varnost</translation>
 <translation id="2200113223741723867">Upravljanje deljenja podatkov o uporabi</translation>
 <translation id="2227444325776770048">Nadaljujte kot <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">Prazno okno</translation>
 <translation id="2239812875700136898">Nadzirajte članke v možnostih za gumb Odkrivanja</translation>
 <translation id="2259659629660284697">Izvozi gesla …</translation>
 <translation id="2276696007612801991">Če želite preveriti gesla, se prijavite v račun Google</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">Chromova začetna stran</translation>
 <translation id="3157842584138209013">Če pritisnete gumb za več možnosti, si lahko ogledate, koliko prenosa podatkov ste prihranili</translation>
 <translation id="3166827708714933426">Bližnjice za zavihke in okna</translation>
+<translation id="316694332262407393">Chrome se že izvaja tu.</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">Skoraj končano!</translation>
 <translation id="3207960819495026254">Dodano med zaznamke</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">Izboljšanje varnosti v spletu</translation>
 <translation id="3602290021589620013">Predogled</translation>
 <translation id="3616113530831147358">Zvok</translation>
+<translation id="3622349720008044802">Upravljanje oken</translation>
 <translation id="3631987586758005671">Deljenje z napravo <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">Razkritje gesla</translation>
 <translation id="363596933471559332">Samodejna prijava v spletna mesta s shranjenimi poverilnicami. Ko je ta funkcija izklopljena, bo pri vsaki prijavi v spletno mesto potrebno preverjanje.</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">Nastavitve prevajanja</translation>
 <translation id="3738139272394829648">Dotaknite se za iskanje</translation>
 <translation id="3739899004075612870">Dodano med zaznamke v izdelku <ph name="PRODUCT_NAME" /></translation>
+<translation id="3740525748616366977">Glasovno iskanje ni na voljo v tej napravi.</translation>
 <translation id="3749259744154402564">Ni podprto</translation>
 <translation id="3771001275138982843">Posodobitve ni bilo mogoče prenesti</translation>
 <translation id="3771033907050503522">Incognito Tabs</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">Osnovni podatki, vključno s podatki o spletnih mestih, ki jih obiskujete, in aplikacijami, ki jih uporabljate.</translation>
 <translation id="3775705724665058594">Pošiljanje v naprave</translation>
 <translation id="3778956594442850293">Dodano na začetni zaslon</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 zavihek}one{# zavihek}two{# zavihka}few{# zavihki}other{# zavihkov}}</translation>
 <translation id="3803784507854318295">Upravljanje samodejnega predvajanja</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Upravljanje</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">»</translation>
 <translation id="393697183122708255">Glasovno iskanje ni na voljo</translation>
 <translation id="395377504920307820">Uporabi brez računa</translation>
+<translation id="3958287878205277013">Če želite izbrisati anonimno zgodovino brskanja iz naprave, zaprite vse anonimne zavihke.</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome bo naložil stran, ko bo pripravljen}one{Chrome bo naložil strani, ko bo pripravljen}two{Chrome bo naložil strani, ko bo pripravljen}few{Chrome bo naložil strani, ko bo pripravljen}other{Chrome bo naložil strani, ko bo pripravljen}}</translation>
 <translation id="3962957115499249330">Ko se ta prenos začne v omrežju Wi-Fi, bo prikazano obvestilo.</translation>
 <translation id="3963007978381181125">Šifriranje gesla ne vključuje plačilnih sredstev in naslovov iz Googla Pay. Vaše šifrirane podatke lahko bere samo oseba z vašim geslom. Geslo ni poslano Googlu in ni shranjeno v Googlu. Če ga pozabite ali želite spremeniti to nastavitev, boste morali sinhronizacijo ponastaviti. <ph name="BEGIN_LINK" />Več o tem<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 V Google Računu so morda druge vrste zgodovine brskanja, kot so iskanja in dejavnosti iz drugih Googlovih storitev, na <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" />.</translation>
 <translation id="4532845899244822526">Izbira mape</translation>
 <translation id="4538018662093857852">Vklop lahkega načina</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> zavihek}one{<ph name="TAB_COUNT_MANY" /> zavihek, št. anonimnih zavihkov: <ph name="TAB_COUNT_INCOGNITO" />}two{<ph name="TAB_COUNT_MANY" /> zavihka, št. anonimnih zavihkov: <ph name="TAB_COUNT_INCOGNITO" />}few{<ph name="TAB_COUNT_MANY" /> zavihki, št. anonimnih zavihkov: <ph name="TAB_COUNT_INCOGNITO" />}other{<ph name="TAB_COUNT_MANY" /> zavihkov, št. anonimnih zavihkov: <ph name="TAB_COUNT_INCOGNITO" />}}</translation>
 <translation id="4550003330909367850">Če si želite ogledati geslo ali ga kopirati sem, v napravi nastavite zaklepanje zaslona.</translation>
 <translation id="4554077758708533499">Povezano s kablom USB</translation>
 <translation id="4557685098773234337">Za hitrejši dostop dodajte to stran na začetni zaslon.</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">To število primerkov Chroma ni podprto.</translation>
 <translation id="4908869848243824489">Googlovo Odkrivanje</translation>
 <translation id="4910889077668685004">Aplikacije za plačevanje</translation>
+<translation id="4912413785358399818">Premakni zavihek</translation>
 <translation id="4913161338056004800">Ponastavitev statističnih podatkov</translation>
 <translation id="4913169188695071480">Ustavitev osveževanja</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# stran}one{# stran}two{# strani}few{# strani}other{# strani}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">Dovoli</translation>
 <translation id="5054455334322721892">Ko ste prijavljeni, se v računu Google morda shranjujejo <ph name="BEGIN_LINK1" />druge oblike dejavnosti<ph name="END_LINK1" />. Izbrišete jih lahko kadar koli.</translation>
 <translation id="5061533557687621530">Če želite preveriti vreme, se dotaknite mikrofona in izgovorite »What’s the weather today?« (Kakšno bo vreme danes?).</translation>
+<translation id="506254248375231072">Ni zavihkov</translation>
 <translation id="5087580092889165836">Dodaj kartico</translation>
+<translation id="5091199029769593641">Kmalu bodo prikazane novice s spletnega mesta <ph name="SITE_NAME" />, ko boste odprli nov zavihek. Spletna mesta, ki jih spremljate, se shranijo v računu Google. Upravljate jih lahko v nastavitvah Odkrivanja.</translation>
 <translation id="5091249083535528968">Razširjeni podatki o uporabi</translation>
 <translation id="509429900233858213">Napaka.</translation>
 <translation id="510275257476243843">Še 1 h</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">pri ponudniku <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">Prenos strani</translation>
 <translation id="5458366071038729214">Tukaj boste našli spletna mesta, ki jih spremljate.</translation>
+<translation id="5468068603361015296">Ali želite vseeno prenesti <ph name="FILE_NAME" />?</translation>
 <translation id="548278423535722844">Odpiranje v aplikaciji z zemljevidi</translation>
 <translation id="5483197086164197190">Premikanju po Chromu</translation>
 <translation id="5487521232677179737">Izbriši podatke</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">Copyright <ph name="YEAR" /> Google LLC. Vse pravice pridržane.</translation>
 <translation id="5810864297166300463">Spletna pomoč</translation>
 <translation id="5814131985548525293">Vnesite tukaj ali se dotaknite ikone govora, če želite začeti.</translation>
+<translation id="5814749351757353073">Bodite na tekočem s priljubljenimi spletnimi mesti</translation>
 <translation id="583281660410589416">Neznano</translation>
 <translation id="5833984609253377421">Deli povezavo z drugimi</translation>
 <translation id="5834764604050996579">Če želite optično prebrati kodo QR, Chromu omogočite uporabo fotoaparata.</translation>
@@ -824,6 +837,7 @@
 
 Nekatera spletna mesta se lahko na primer na zahtevo odzovejo tako, da prikažejo oglase, ki ne temeljijo na drugih spletnih mestih, ki ste jih obiskali. Veliko spletnih mest bo še vedno zbiralo in uporabljalo vaše podatke o brskanju, na primer za izboljšanje varnosti, zagotavljanje vsebine, oglasov in priporočil ter za pridobivanje statističnih podatkov za poročanje.</translation>
 <translation id="624789221780392884">Posodobitev je pripravljena</translation>
+<translation id="6264376385120300461">Vseeno prenesi</translation>
 <translation id="6277522088822131679">Pri tiskanju strani je prišlo do težave. Poskusite znova.</translation>
 <translation id="6278428485366576908">Tema</translation>
 <translation id="6292420053234093573">Če uporabljate Chrome, se strinjate z <ph name="BEGIN_LINK1" />Googlovimi pogoji storitve<ph name="END_LINK1" /> in <ph name="BEGIN_LINK2" />dodatnimi pogoji storitve za Google Chrome in Chrome OS<ph name="END_LINK2" />.</translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">Prišlo je do napake. Poskusite znova pozneje.</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Preverjeno pred 1 uro}one{Preverjeno pred # uro}two{Preverjeno pred # urama}few{Preverjeno pred # urami}other{Preverjeno pred # urami}}</translation>
 <translation id="6545017243486555795">Izbris vseh podatkov</translation>
+<translation id="6546511553472444032">Datoteka je morda škodljiva</translation>
 <translation id="6560414384669816528">Iskanje z iskalnikom Sogou</translation>
 <translation id="656065428026159829">Prikaži več</translation>
 <translation id="6565959834589222080">Wi-Fi se uporablja, ko je na voljo</translation>
 <translation id="6566259936974865419">S Chromom ste prihranili <ph name="GIGABYTES" /> GB</translation>
+<translation id="6569373978618239158">Poslej bodo prikazane novice s spletnega mesta <ph name="SITE_NAME" />, ko boste odprli nov zavihek. Spletna mesta, ki jih spremljate, se shranijo v računu Google. Upravljate jih lahko v nastavitvah Odkrivanja.</translation>
 <translation id="6573096386450695060">Vedno dovoli</translation>
 <translation id="6573431926118603307">Zavihki, ki ste jih odprli v Chromu v drugih napravah, bodo prikazani tukaj.</translation>
 <translation id="6583199322650523874">Dodajanje trenutne strani med zaznamke</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">Izklop anonimnega načina</translation>
 <translation id="6979737339423435258">Od začetka</translation>
 <translation id="6981982820502123353">Dostopnost</translation>
+<translation id="6987047470128880212">Anonimni način ni na voljo v tej napravi.</translation>
 <translation id="6989267951144302301">Ni bilo mogoče prenesti</translation>
 <translation id="6995899638241819463">Posvari, če so gesla razkrita zaradi podatkovne kršitve</translation>
 <translation id="7001056293070445572">Datoteka je velika (<ph name="FILE_SIZE" />).</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">Zavihek za predogled</translation>
 <translation id="7484997419527351112">Odkrivanje – izklopljeno</translation>
 <translation id="7485033510383818941">Če želite osvežiti vsebino vira, povlecite stran navzdol.</translation>
+<translation id="749294055653435199">Google Lens ni na voljo v tej napravi.</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (Posodobljeno: <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">prihranjenega prenosa podatkov</translation>
 <translation id="7498271377022651285">Počakajte …</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">Pravkar preverjeno</translation>
 <translation id="8040831032425909005">Ikona za hitra dejanja pripomočka za iskanje</translation>
 <translation id="804335162455518893">Kartice SD ni bilo mogoče najti</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> anonimni zavihek}one{<ph name="TAB_COUNT_NORMAL" /> anonimni zavihek}two{<ph name="TAB_COUNT_NORMAL" /> anonimna zavihka}few{<ph name="TAB_COUNT_NORMAL" /> anonimni zavihki}other{<ph name="TAB_COUNT_NORMAL" /> anonimnih zavihkov}}</translation>
 <translation id="8051695050440594747"><ph name="MEGABYTES" /> MB na voljo</translation>
 <translation id="8058746566562539958">Odpiranje na novem zavihku v Chromu</translation>
 <translation id="8063895661287329888">Zaznamka ni bilo mogoče dodati.</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">telefonu</translation>
 <translation id="8636825310635137004">Če želite dostopati do zavihkov iz drugih naprav, vklopite sinhronizacijo.</translation>
 <translation id="8641930654639604085">Poskusi blokirati spletna mesta za odrasle</translation>
+<translation id="864544049772947936">Upravljanje oken (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">Podatke lahko izbrišete v Chromovih nastavitvah</translation>
 <translation id="8656747343598256512">Prijavite se na tem spletnem mestu in v Chrome z računom Google. Sinhronizacijo lahko vklopite pozneje.</translation>
 <translation id="8659579665266920523">Kako iskati s Chromom</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">Slike</translation>
 <translation id="926205370408745186">Odstranitev dejavnosti v Chromu iz Digitalne dobrobiti</translation>
 <translation id="927968626442779827">Uporabite lahki način v Google Chromu</translation>
+<translation id="928550791203542716">Spremljate <ph name="SITE_NAME" /></translation>
 <translation id="932327136139879170">Domov</translation>
 <translation id="938850635132480979">Napaka: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">Vnesite geslo</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
index fadff01..c3489a7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -222,6 +222,7 @@
 <translation id="2433507940547922241">தோற்றம்</translation>
 <translation id="2435457462613246316">கடவுச்சொல்லைக் காண்பி</translation>
 <translation id="2450083983707403292"><ph name="FILE_NAME" />ஐ மீண்டும் பதிவிறக்கவா?</translation>
+<translation id="2450209325949418501">அறிவிப்புகளுக்குச் சென்று பதிவிறக்கத்தின் நிலையைப் பார்க்கலாம்</translation>
 <translation id="2450907520913474542">பக்கத்தை விட்டு வெளியேறாமலேயே இணையதளங்களில் தலைப்புகளைப் பற்றித் தெரிந்துகொள்ளலாம். 'தேடுவதற்குத் தொடு' அம்சமானது சொல்லையும் அதன் சூழலையும் Google தேடலுக்கு அனுப்பி விளக்கங்கள், படங்கள், தேடல் முடிவுகள் மற்றும் பிற விவரங்களை வழங்குகிறது.
 
 தேடுவதற்கு ஏதேனும் ஒரு சொல்லைத் தொட்டுப் பிடிக்கவும். உங்கள் தேடுதலை துல்லியமாக்க அதிகமான அல்லது குறைவான வார்த்தைகளைத் தேர்ந்தெடுக்கவும். உங்கள் தேடலைத் திருத்த, பேனலைத் திறந்து, புதிய தாவலைத் திறக்கும் ஐகானைத் தட்டி தேடல் பெட்டியில் உங்கள் மாற்றங்களைச் செய்யவும்.</translation>
@@ -392,6 +393,7 @@
 தளங்களுக்குப் பாதிப்பு ஏற்படாத வகையில் இந்தச் சேவைகளைச் செயல்படுத்துவதற்கான சிறந்த வழிகளை உருவாக்கி, பொது இணையத்தின் செயல்பாட்டைத் தனியுரிமை சாண்ட்பாக்ஸ் பாதுகாக்கிறது. அத்துடன் இணையத்தில் உலாவும்போது நீங்கள் மறைமுகமாகக் கண்காணிக்கப்படாத வகையில் இது உங்களையும் பாதுகாக்கிறது.
 
 தனியுரிமை சாண்ட்பாக்ஸ் இன்னும் உருவாக்கத்தில் உள்ளது, மேலும் குறிப்பிட்ட பிராந்தியங்களில் கிடைக்கிறது. மூன்றாம் தரப்புக் குக்கீகள் போன்ற தற்போதைய இணையத் தொழில்நுட்பங்களைத் தொடர்ந்து பயன்படுத்தினாலும் தளங்கள் இப்போது தனியுரிமை சாண்ட்பாக்ஸைப் பயன்படுத்தலாம். <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation>
+<translation id="3469665409713263828">{FILE_COUNT,plural, =1{1 பதிவிறக்கம் திட்டமிடப்பட்டுள்ளது}other{# பதிவிறக்கங்கள் திட்டமிடப்பட்டுள்ளன}}</translation>
 <translation id="3478363558367712427">உங்கள் தேடல் இன்ஜினை தேர்வுசெய்யலாம்</translation>
 <translation id="3493531032208478708">பரிந்துரைக்கப்படும் உள்ளடக்கம் பற்றி <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
@@ -653,6 +655,7 @@
 <translation id="5199929503336119739">பணி சுயவிவரம்</translation>
 <translation id="5201464744567315552">இந்தப் பதிவிறக்கம் <ph name="TIME" />க்குத் தொடங்கும்போது அறிவிப்பைப் பெறுவீர்கள்.</translation>
 <translation id="5204967432542742771">கடவுச்சொல்</translation>
+<translation id="5206168361184759344">{FILE_COUNT,plural, =1{ஃபைலைப் பதிவிறக்குகிறது…}other{# ஃபைல்களைப் பதிவிறக்குகிறது…}}</translation>
 <translation id="5210286577605176222">முந்தைய தாவலுக்குச் செல்லும்</translation>
 <translation id="5210365745912300556">தாவலை மூடுக</translation>
 <translation id="5213672942202814946">குரல் தேடலைப் பயன்படுத்துதல்</translation>
@@ -813,6 +816,7 @@
 <translation id="6159729262978459665">ஒத்திசைக்கப்பட்ட சாதனங்கள் அனைத்திலிருந்தும் இதுவரையான செயல்பாடுகள் பற்றிய தகவல்களை அழிக்கும்.</translation>
 <translation id="6186394685773237175">களவாடப்பட்ட கடவுச்சொற்கள் எதுவும் இல்லை</translation>
 <translation id="6192907950379606605">பட விளக்கங்களைப் பெறு</translation>
+<translation id="6203593061661911168">வைஃபையுடன் இணைக்கப்பட்டதும் பதிவிறக்கம் தொடங்கும்</translation>
 <translation id="6210748933810148297"><ph name="EMAIL" /> இல்லையா?</translation>
 <translation id="6211386937064921208">இந்தப் பக்கத்தின் மாதிரிக்காட்சி</translation>
 <translation id="6221633008163990886">உங்கள் கடவுச்சொற்களை ஏற்ற, அன்லாக் செய்யவும்</translation>
@@ -869,6 +873,7 @@
 <translation id="6489610539826642779">வாசிப்புப் பட்டியல் <ph name="BEGIN_NEW" />புதிது<ph name="END_NEW" /></translation>
 <translation id="6490496612063106490">ஹைலைட் செய்யப்பட்ட உரைக்கான இணைப்பு</translation>
 <translation id="6496823230996795692">முதல்முறையாக <ph name="APP_NAME" />ஐப் பயன்படுத்த, இணையத்துடன் இணைக்கவும்.</translation>
+<translation id="650224091954855786">{FILE_COUNT,plural, =1{ஃபைல் பதிவிறக்கப்பட்டது}other{# பதிவிறக்கங்கள் முடிந்தன}}</translation>
 <translation id="6508722015517270189">Chromeஐ மீண்டும் தொடங்கவும்</translation>
 <translation id="6527303717912515753">பகிர்</translation>
 <translation id="6532866250404780454">Chromeமில் நீங்கள் பார்க்கும் தளங்களைக் காட்டாது. தளத்தில் உள்ள அத்தனை டைமர்களும் நீக்கப்படும்.</translation>
@@ -1062,6 +1067,7 @@
 <translation id="7707922173985738739">மொபைல் டேட்டாவைப் பயன்படுத்து</translation>
 <translation id="7725024127233776428">நீங்கள் புக்மார்க் செய்த பக்கங்கள் இங்கு தோன்றும்</translation>
 <translation id="7757787379047923882">உரை <ph name="DEVICE_NAME" /> இலிருந்து பகிரப்பட்டுள்ளது</translation>
+<translation id="7760558538939385512">(<ph name="MEGABYTES" />)\n<ph name="URL" /></translation>
 <translation id="7761849928583394409">தேதியையும் நேரத்தையும் தேர்வுசெய்யுங்கள்</translation>
 <translation id="7762668264895820836">SD கார்டு <ph name="SD_CARD_NUMBER" /></translation>
 <translation id="7764225426217299476">முகவரியைச் சேர்</translation>
@@ -1258,6 +1264,7 @@
 <translation id="8912362522468806198">Google கணக்கு</translation>
 <translation id="8920114477895755567">பெற்றோர்களின் விவரங்களுக்காகக் காத்திருக்கிறது.</translation>
 <translation id="8922289737868596582">பக்கங்களை ஆஃப்லைனில் பயன்படுத்த, மேலும் விருப்பங்கள் பொத்தானுக்குச் சென்று, அவற்றைப் பதிவிறக்கவும்</translation>
+<translation id="892496902842311796"><ph name="LANG" /> மொழி தயாராக உள்ளது</translation>
 <translation id="8928626432984354940">புக்மார்க் கோப்புறைகளின் பட்டியல் பாதித் திரையில் காட்டப்படுகிறது</translation>
 <translation id="8937267401510745927">பணிகளை நிறைவுசெய்ய உங்களுக்கு உதவும் வகையில் நீங்கள் Assistantடைப் பயன்படுத்தும் தளங்களின் URLகளையும் உள்ளடக்கங்களையும் Assistant மூலம் சமர்ப்பிக்கும் தகவல்களையும் Google பெறும். இந்தத் தகவல்கள் உங்கள் Google கணக்கில் சேமிக்கப்படலாம். Chrome அமைப்புகளுக்குச் சென்று Assistantடை முடக்கலாம்.</translation>
 <translation id="8937772741022875483">உங்கள் Chrome செயல்பாட்டை டிஜிட்டல் வெல்பீயிங்கிலிருந்து நீக்கவா?</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
index 7847f083..118dfe90 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -222,6 +222,7 @@
 <translation id="2433507940547922241">కనిపించే తీరు</translation>
 <translation id="2435457462613246316">పాస్‌వర్డ్‌ను చూపించు</translation>
 <translation id="2450083983707403292">మీరు <ph name="FILE_NAME" /> డౌన్‌లోడ్‌ని మళ్లీ ప్రారంభించాలనుకుంటున్నారా?</translation>
+<translation id="2450209325949418501">మీ నోటిఫికేషన్‌లలో మీరు డౌన్‌లోడ్ స్టేటస్‌ను చూడవచ్చు</translation>
 <translation id="2450907520913474542">పేజీ వదిలిపెట్టకుండానే వెబ్‌సైట్‌లలోని అంశాల గురించి తెలుసుకోండి. 'వెతకడానికి తాకండి' అనే ఫీచర్ ద్వారా, ఏదైనా ఒక పదాన్ని, దానికి సంబంధించిన సందర్భాన్ని Google శోధనకు పంపవచ్చు. దీని వల్ల, ఆ పదానికి సంబంధించిన నిర్వచనాలు, ఫోటోలు, శోధన ఫలితాలు, ఇతర వివరాలు పొందవచ్చు.
 
 ఏదైనా పదంపై తాకి &amp; అలాగే నొక్కి ఉంచడం ద్వారా, దానిని వెతకండి. మీ శోధనను మెరుగుపరచడానికి, మరిన్ని లేదా తక్కువ పదాలను ఎంచుకోండి. మీ శోధనను ఎడిట్ చేయడానికి, ప్యానెల్‌ను తెరిచి, చిహ్నంపై ట్యాప్ చేయడం ద్వారా కొత్త ట్యాబ్‌లో తెరిచి, శోధన పెట్టెలో మీ మార్పులు చేయండి.</translation>
@@ -392,6 +393,7 @@
 సైట్‌లను విచ్ఛిన్నం చేయకుండా, అలాగే వెబ్‌లో రహస్యంగా ట్రాక్ చేయబడకుండా మిమ్మల్ని నిరోధిస్తూ, ఈ సర్వీస్‌లను అమలు చేయడానికి మెరుగైన మార్గాలను క్రియేట్ చేయడం ద్వారా గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్ ఓపెన్ వెబ్ యొక్క ప్రాముఖ్యతను రక్షిస్తుంది.
 
 గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్ ఇప్పటికీ యాక్టివ్ డెవలప్‌మెంట్‌లో ఉంది, అలాగే ఎంచుకున్న ప్రాంతాలలో అందుబాటులో ఉంది. ప్రస్తుతానికి, థర్డ్-పార్టీ కుక్కీల వంటి ప్రస్తుత వెబ్ టెక్నాలజీలను ఉపయోగించడం కొనసాగిస్తూ సైట్‌లు గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్‌ను ట్రై చేయవచ్చు. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
+<translation id="3469665409713263828">{FILE_COUNT,plural, =1{1 డౌన్‌లోడ్ షెడ్యూల్ చేయబడింది}other{# డౌన్‌లోడ్‌లు షెడ్యూల్ చేయబడ్డాయి}}</translation>
 <translation id="3478363558367712427">మీరు మీ శోధన ఇంజిన్‌ను ఎంచుకోవచ్చు</translation>
 <translation id="3493531032208478708">సూచించిన కంటెంట్ గురించి <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
 <translation id="3499246418971111862">chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
@@ -653,6 +655,7 @@
 <translation id="5199929503336119739">కార్యాలయ ప్రొఫైల్</translation>
 <translation id="5201464744567315552"><ph name="TIME" />కు డౌన్‌లోడ్ ప్రారంభమయినప్పుడు మీకు నోటిఫికేషన్ కనిపిస్తుంది.</translation>
 <translation id="5204967432542742771">పాస్‌వర్డ్‌ని నమోదు చేయండి</translation>
+<translation id="5206168361184759344">{FILE_COUNT,plural, =1{ఫైల్‌ను డౌన్‌లోడ్ చేస్తోంది…}other{# ఫైల్‌లను డౌన్‌లోడ్ చేస్తోంది…}}</translation>
 <translation id="5210286577605176222">మునుపటి ట్యాబ్‌కు వెళ్లండి</translation>
 <translation id="5210365745912300556">ట్యాబ్‌ను మూసివేయి</translation>
 <translation id="5213672942202814946">వాయిస్ సెర్చ్‌ను ఉపయోగించండి</translation>
@@ -813,6 +816,7 @@
 <translation id="6159729262978459665">సింక్ అయి ఉన్న పరికరాలన్నిటి నుండి హిస్టరీని క్లియర్ చేస్తుంది.</translation>
 <translation id="6186394685773237175">చోరీకి గురైన పాస్‌వర్డ్‌లు ఏవీ కనుగొనబడలేదు</translation>
 <translation id="6192907950379606605">ఇమేజ్ వివరణలను పొందండి</translation>
+<translation id="6203593061661911168">Wi-Fi ఆన్ చేసినప్పుడు, డౌన్‌లోడ్ ప్రారంభమవుతుంది</translation>
 <translation id="6210748933810148297"><ph name="EMAIL" /> కాదా?</translation>
 <translation id="6211386937064921208">ఈ పేజీని ప్రివ్యూ చేస్తోంది</translation>
 <translation id="6221633008163990886">మీ పాస్‌వర్డ్‌లను ఎగుమతి చేయడానికి అన్‌లాక్ చేయండి</translation>
@@ -869,6 +873,7 @@
 <translation id="6489610539826642779">చదవాల్సిన లిస్ట్ <ph name="BEGIN_NEW" />కొత్తది<ph name="END_NEW" /></translation>
 <translation id="6490496612063106490">హైలైట్ చేయబడిన టెక్స్ట్‌కు లింక్</translation>
 <translation id="6496823230996795692">మొదటి సారి <ph name="APP_NAME" />ని ఉపయోగించడానికి, దయచేసి ఇంటర్నెట్‌కు కనెక్ట్ చేయండి.</translation>
+<translation id="650224091954855786">{FILE_COUNT,plural, =1{ఫైల్ డౌన్‌లోడ్ చేయబడింది}other{# డౌన్‌లోడ్‌లు పూర్తయ్యాయి}}</translation>
 <translation id="6508722015517270189">Chromeను పునఃప్రారంభించండి</translation>
 <translation id="6527303717912515753">భాగస్వామ్యం చేయి</translation>
 <translation id="6532866250404780454">మీరు Chromeలో సందర్శించిన సైట్‌లు చూపబడవు. అన్ని సైట్ టైమర్‌లు తొలగించబడతాయి.</translation>
@@ -1062,6 +1067,7 @@
 <translation id="7707922173985738739">మొబైల్ డేటాను ఉపయోగిస్తుంది</translation>
 <translation id="7725024127233776428">మీరు బుక్‌మార్క్ చేసే పేజీలు ఇక్కడ కనిపిస్తాయి</translation>
 <translation id="7757787379047923882"><ph name="DEVICE_NAME" /> నుండి షేర్ చేయబడిన వచనం</translation>
+<translation id="7760558538939385512">(<ph name="MEGABYTES" />)\n<ph name="URL" /></translation>
 <translation id="7761849928583394409">తేదీ, సమయం ఎంచుకోండి</translation>
 <translation id="7762668264895820836">SD కార్డ్ <ph name="SD_CARD_NUMBER" /></translation>
 <translation id="7764225426217299476">చిరునామాను జోడించు</translation>
@@ -1258,6 +1264,7 @@
 <translation id="8912362522468806198">Google ఖాతా</translation>
 <translation id="8920114477895755567">తల్లిదండ్రుల వివరాల కోసం వేచి ఉంది.</translation>
 <translation id="8922289737868596582">మరిన్ని ఎంపికలు బటన్ నుండి పేజీలను డౌన్‌లోడ్ చేసుకోవడం ద్వారా వాటిని ఆఫ్‌లైన్‌లో ఉపయోగించండి</translation>
+<translation id="892496902842311796"><ph name="LANG" /> సిద్ధంగా ఉంది</translation>
 <translation id="8928626432984354940">సగం ఎత్తులో తెరవబడిన బుక్‌మార్క్ ఫోల్డర్‌ల లిస్ట్</translation>
 <translation id="8937267401510745927">టాస్క్‌లు పూర్తి చేయడంలో మీకు సహాయపడటానికి, మీరు Assistantను ఉపయోగించే సైట్‌ల URLలు అలాగే వాటిలోని కంటెంట్‌ను, వీటితో పాటు మీరు Assistant ద్వారా సమర్పించే సమాచారాన్ని Google పొందుతుంది. ఈ సమాచారం మీ Google ఖాతాలో స్టోర్ చేయబడవచ్చు. మీరు Assistantను Chrome సెట్టింగ్‌లలో ఆఫ్ చేయవచ్చు.</translation>
 <translation id="8937772741022875483">డిజిటల్ సంక్షేమం నుండి మీ Chrome కార్యకలాపం తీసివేయాలా?</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
index 50d7703..1ff57352 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -4,6 +4,7 @@
 <translation id="1016498331642356377">ค้นหาด้วยเสียงอย่างรวดเร็ว หากต้องการแก้ไขทางลัดนี้ ให้แตะค้างไว้</translation>
 <translation id="1028699632127661925">กำลังส่งไปที่ <ph name="DEVICE_NAME" />...</translation>
 <translation id="103269572468856066">ล้างข้อมูลเว็บไซต์และแอปเหล่านี้ด้วยไหม</translation>
+<translation id="1034259925032978114">หน้าต่างเปิดอยู่</translation>
 <translation id="1036348656032585052">ปิด</translation>
 <translation id="1036727731225946849">กำลังเพิ่ม <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1045899828449635435">ล้างข้อมูลเว็บไซต์เหล่านี้ด้วยไหม</translation>
@@ -187,6 +188,7 @@
 <translation id="2195339740518523951">ให้ Chrome รักษาความปลอดภัยอย่างเข้มงวดที่สุด</translation>
 <translation id="2200113223741723867">จัดการการแชร์ข้อมูลการใช้งาน</translation>
 <translation id="2227444325776770048">ดำเนินการต่อในชื่อ <ph name="USER_FULL_NAME" /></translation>
+<translation id="2230777942707397948">หน้าต่างว่าง</translation>
 <translation id="2239812875700136898">ควบคุมเรื่องราวของคุณจากปุ่ม "ตัวเลือกสำหรับ Discover"</translation>
 <translation id="2259659629660284697">ส่งออกรหัสผ่าน…</translation>
 <translation id="2276696007612801991">ลงชื่อเข้าใช้บัญชี Google เพื่อตรวจสอบรหัสผ่าน</translation>
@@ -338,6 +340,7 @@
 <translation id="314939179385989105">หน้าแรกของ Chrome</translation>
 <translation id="3157842584138209013">ดูปริมาณอินเทอร์เน็ตที่คุณประหยัดไปได้จากปุ่มตัวเลือกเพิ่มเติม</translation>
 <translation id="3166827708714933426">แป้นพิมพ์ลัดสำหรับแท็บและหน้าต่าง</translation>
+<translation id="316694332262407393">Chrome ทำงานอยู่แล้วที่นี่</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3205824638308738187">เกือบเสร็จแล้ว!</translation>
 <translation id="3207960819495026254">บุ๊กมาร์กแล้ว</translation>
@@ -416,6 +419,7 @@
 <translation id="3587596251841506391">ช่วยปรับปรุงความปลอดภัยในอินเทอร์เน็ต</translation>
 <translation id="3602290021589620013">ดูตัวอย่าง</translation>
 <translation id="3616113530831147358">เสียง</translation>
+<translation id="3622349720008044802">จัดการหน้าต่าง</translation>
 <translation id="3631987586758005671">กำลังแชร์กับ <ph name="DEVICE_NAME" /></translation>
 <translation id="3632295766818638029">เปิดเผยรหัสผ่าน</translation>
 <translation id="363596933471559332">ลงชื่อเข้าใช้เว็บไซต์โดยอัตโนมัติโดยใช้ข้อมูลเข้าสู่ระบบที่เก็บไว้ เมื่อฟีเจอร์นี้ปิดอยู่ ระบบจะขอให้คุณยืนยันทุกครั้งก่อนลงชื่อเข้าใช้เว็บไซต์</translation>
@@ -431,6 +435,7 @@
 <translation id="3737319253362202215">การตั้งค่าการแปล</translation>
 <translation id="3738139272394829648">แตะเพื่อค้นหา</translation>
 <translation id="3739899004075612870">บุ๊กมาร์กไว้ใน <ph name="PRODUCT_NAME" /> แล้ว</translation>
+<translation id="3740525748616366977">การค้นหาด้วยเสียงไม่พร้อมใช้งานในอุปกรณ์นี้</translation>
 <translation id="3749259744154402564">ไม่รองรับ</translation>
 <translation id="3771001275138982843">ดาวน์โหลดอัปเดตไม่ได้</translation>
 <translation id="3771033907050503522">แท็บที่ไม่ระบุตัวตน</translation>
@@ -439,6 +444,7 @@
 <translation id="3773856050682458546">ข้อมูลเบื้องต้นรวมถึงข้อมูลเกี่ยวกับเว็บไซต์ที่คุณเข้าชมและแอปที่คุณใช้</translation>
 <translation id="3775705724665058594">ส่งไปยังอุปกรณ์</translation>
 <translation id="3778956594442850293">เพิ่มในหน้าจอหลักแล้ว</translation>
+<translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 แท็บ}other{# แท็บ}}</translation>
 <translation id="3803784507854318295">จัดการการเล่นอัตโนมัติ</translation>
 <translation id="3810838688059735925">วิดีโอ</translation>
 <translation id="3810973564298564668">จัดการ</translation>
@@ -459,6 +465,7 @@
 <translation id="3934366560681368531">"</translation>
 <translation id="393697183122708255">ไม่มีการเปิดใช้การค้นหาด้วยเสียง</translation>
 <translation id="395377504920307820">ใช้โดยไม่มีบัญชี</translation>
+<translation id="3958287878205277013">ปิดแท็บที่ไม่ระบุตัวตนทั้งหมดเพื่อล้างประวัติการท่องเว็บแบบไม่ระบุตัวตนออกจากอุปกรณ์</translation>
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{Chrome จะโหลดหน้าเว็บเมื่อพร้อม}other{Chrome จะโหลดหน้าเว็บเมื่อพร้อม}}</translation>
 <translation id="3962957115499249330">คุณจะเห็นการแจ้งเตือนเมื่อการดาวน์โหลดนี้เริ่มขณะใช้ Wi-Fi</translation>
 <translation id="3963007978381181125">การเข้ารหัสลับด้วยรหัสผ่านจะไม่รวมข้อมูลวิธีการชำระเงินและที่อยู่จาก Google Pay เฉพาะผู้ที่มีรหัสผ่านของคุณเท่านั้นจึงจะอ่านข้อมูลที่เข้ารหัสได้ Google จะไม่ได้รับหรือจัดเก็บรหัสผ่านนี้ คุณจะต้องรีเซ็ตการซิงค์หากลืมรหัสผ่านหรือต้องการเปลี่ยนแปลงการตั้งค่านี้ <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
@@ -544,6 +551,7 @@
 บัญชี Google ของคุณอาจมีประวัติการท่องเว็บในรูปแบบอื่นๆ เช่น การค้นหาและกิจกรรมจากบริการอื่นๆ ของ Google ที่ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="4532845899244822526">เลือกโฟลเดอร์</translation>
 <translation id="4538018662093857852">เปิดโหมด Lite</translation>
+<translation id="4547551584605870320">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> แท็บ}other{<ph name="TAB_COUNT_MANY" /> แท็บ <ph name="TAB_COUNT_INCOGNITO" /> แท็บที่ไม่ระบุตัวตน}}</translation>
 <translation id="4550003330909367850">หากต้องการดูหรือคัดลอกรหัสผ่านที่นี่ ให้ตั้งค่าการล็อกหน้าจอในอุปกรณ์นี้</translation>
 <translation id="4554077758708533499">เชื่อมต่อด้วยสาย USB แล้ว</translation>
 <translation id="4557685098773234337">หากต้องการไปที่นี่ให้เร็วขึ้น ให้เพิ่มหน้านี้ในหน้าจอหลัก</translation>
@@ -609,6 +617,7 @@
 <translation id="4885273946141277891">อินสแตนซ์ของ Chrome เกินจำนวนที่สนับสนุน</translation>
 <translation id="4908869848243824489">Discover โดย Google</translation>
 <translation id="4910889077668685004">แอปชำระเงิน</translation>
+<translation id="4912413785358399818">ย้ายแท็บ</translation>
 <translation id="4913161338056004800">รีเซ็ตสถิติ</translation>
 <translation id="4913169188695071480">หยุดรีเฟรช</translation>
 <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# หน้า}other{# หน้า}}</translation>
@@ -634,7 +643,9 @@
 <translation id="5039804452771397117">อนุญาต</translation>
 <translation id="5054455334322721892">ระบบอาจบันทึก<ph name="BEGIN_LINK1" />กิจกรรมรูปแบบอื่น<ph name="END_LINK1" />ในบัญชี Google เมื่อคุณลงชื่อเข้าใช้ คุณลบข้อมูลนี้ได้ทุกเมื่อ</translation>
 <translation id="5061533557687621530">หากต้องการดูข้อมูลสภาพอากาศ ให้แตะไมค์แล้วพูดว่า "สภาพอากาศวันนี้เป็นอย่างไร"</translation>
+<translation id="506254248375231072">ไม่มีแท็บ</translation>
 <translation id="5087580092889165836">เพิ่มบัตร</translation>
+<translation id="5091199029769593641">เร็วๆ นี้คุณจะเห็นเรื่องราวจาก <ph name="SITE_NAME" /> เมื่อเปิดแท็บใหม่ ระบบจะบันทึกเว็บไซต์ที่คุณติดตามไว้ในบัญชี Google โดยคุณจัดการเว็บไซต์เหล่านี้ได้ในการตั้งค่า Discover</translation>
 <translation id="5091249083535528968">ข้อมูลการใช้งานเพิ่มเติม</translation>
 <translation id="509429900233858213">มีข้อผิดพลาดเกิดขึ้น</translation>
 <translation id="510275257476243843">เหลือ 1 ชั่วโมง</translation>
@@ -694,6 +705,7 @@
 <translation id="5454166040603940656">กับ <ph name="PROVIDER" /></translation>
 <translation id="5456381639095306749">ดาวน์โหลดหน้า</translation>
 <translation id="5458366071038729214">คุณจะเห็นเว็บไซต์ที่ติดตามที่นี่</translation>
+<translation id="5468068603361015296">คุณต้องการดาวน์โหลด <ph name="FILE_NAME" /> ต่อไปไหม</translation>
 <translation id="548278423535722844">เปิดในแอปแผนที่</translation>
 <translation id="5483197086164197190">ไปยังส่วนต่างๆ ของ Chrome</translation>
 <translation id="5487521232677179737">ล้างข้อมูล</translation>
@@ -750,6 +762,7 @@
 <translation id="5810288467834065221">ลิขสิทธิ์ <ph name="YEAR" /> Google LLC สงวนลิขสิทธิ์</translation>
 <translation id="5810864297166300463">ความช่วยเหลือบนเว็บ</translation>
 <translation id="5814131985548525293">พิมพ์ที่นี่หรือแตะไอคอนไมโครโฟนเพื่อเริ่มต้นใช้งาน</translation>
+<translation id="5814749351757353073">ติดตามเว็บไซต์ที่คุณชื่นชอบ</translation>
 <translation id="583281660410589416">ไม่รู้จัก</translation>
 <translation id="5833984609253377421">แชร์ลิงก์</translation>
 <translation id="5834764604050996579">อนุญาตให้ Chrome ใช้กล้องเพื่อสแกนคิวอาร์โค้ด</translation>
@@ -824,6 +837,7 @@
 
 ตัวอย่างเช่น บางเว็บไซต์อาจตอบสนองต่อคำขอนี้โดยแสดงให้คุณเห็นโฆษณาที่ไม่ได้อิงอยู่กับเว็บไซต์อื่นๆ ที่คุณเข้าชม เว็บไซต์จำนวนมากจะยังคงรวบรวมและใช้ข้อมูลการท่องเว็บของคุณเพื่อปรับปรุงความปลอดภัย เพื่อแสดงเนื้อหา โฆษณา และคำแนะนำ และเพื่อสร้างสถิติในการรายงาน เป็นต้น</translation>
 <translation id="624789221780392884">พร้อมอัปเดต</translation>
+<translation id="6264376385120300461">ดาวน์โหลดต่อไป</translation>
 <translation id="6277522088822131679">เกิดปัญหาในการพิมพ์หน้านี้ โปรดลองอีกครั้ง</translation>
 <translation id="6278428485366576908">ธีม</translation>
 <translation id="6292420053234093573">การใช้ Chrome หมายความว่า คุณยอมรับ<ph name="BEGIN_LINK1" />ข้อกำหนดในการให้บริการของ Google<ph name="END_LINK1" /> และ<ph name="BEGIN_LINK2" />ข้อกำหนดในการให้บริการเพิ่มเติมของ Google Chrome และ Chrome OS<ph name="END_LINK2" /></translation>
@@ -881,10 +895,12 @@
 <translation id="6539092367496845964">เกิดข้อผิดพลาด ลองอีกครั้งภายหลัง</translation>
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{ตรวจสอบเมื่อ 1 ชั่วโมงที่ผ่านมา}other{ตรวจสอบเมื่อ # ชั่วโมงที่ผ่านมา}}</translation>
 <translation id="6545017243486555795">ล้างข้อมูลทั้งหมด</translation>
+<translation id="6546511553472444032">ไฟล์อาจเป็นอันตราย</translation>
 <translation id="6560414384669816528">ค้นหาด้วย Sogou</translation>
 <translation id="656065428026159829">ดูเพิ่มเติม</translation>
 <translation id="6565959834589222080">ระบบจะใช้ Wi-Fi เมื่อพร้อมใช้งาน</translation>
 <translation id="6566259936974865419">Chrome ได้ประหยัดพื้นที่ให้คุณไป <ph name="GIGABYTES" /> GB</translation>
+<translation id="6569373978618239158">ตอนนี้คุณจะเห็นเรื่องราวจาก <ph name="SITE_NAME" /> เมื่อเปิดแท็บใหม่ ระบบจะบันทึกเว็บไซต์ที่คุณติดตามไว้ในบัญชี Google โดยคุณจัดการเว็บไซต์เหล่านี้ได้ในการตั้งค่า Discover</translation>
 <translation id="6573096386450695060">อนุญาตเสมอ</translation>
 <translation id="6573431926118603307">แท็บที่คุณเปิดไว้ใน Chrome ในอุปกรณ์เครื่องอื่นๆ จะปรากฏที่นี่</translation>
 <translation id="6583199322650523874">บุ๊กมาร์กหน้าปัจจุบัน</translation>
@@ -950,6 +966,7 @@
 <translation id="696447261358045621">ออกจากโหมดไม่ระบุตัวตน</translation>
 <translation id="6979737339423435258">ตั้งแต่ต้น</translation>
 <translation id="6981982820502123353">การช่วยเหลือพิเศษ</translation>
+<translation id="6987047470128880212">แท็บที่ไม่ระบุตัวตนไม่พร้อมใช้งานในอุปกรณ์นี้</translation>
 <translation id="6989267951144302301">ดาวน์โหลดไม่ได้</translation>
 <translation id="6995899638241819463">เตือนคุณในกรณีที่รหัสผ่านรั่วไหลจากการละเมิดข้อมูล</translation>
 <translation id="7001056293070445572">ไฟล์นี้มีขนาดใหญ่ (<ph name="FILE_SIZE" />)</translation>
@@ -1026,6 +1043,7 @@
 <translation id="7482656565088326534">แท็บแสดงตัวอย่าง</translation>
 <translation id="7484997419527351112">Discover - ปิดอยู่</translation>
 <translation id="7485033510383818941">ดึงหน้าเว็บลงเพื่อรีเฟรชเนื้อหาฟีด</translation>
+<translation id="749294055653435199">Google Lens ไม่พร้อมใช้งานในอุปกรณ์นี้</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (อัปเดตเมื่อ <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494974237137038751">อินเทอร์เน็ตที่ประหยัดได้</translation>
 <translation id="7498271377022651285">โปรดรอสักครู่…</translation>
@@ -1127,6 +1145,7 @@
 <translation id="8037801708772278989">เพิ่งตรวจสอบเมื่อสักครู่นี้</translation>
 <translation id="8040831032425909005">ไอคอนวิดเจ็ต Search ของการใช้งานแบบลัด</translation>
 <translation id="804335162455518893">ไม่พบการ์ด SD</translation>
+<translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> แท็บที่ไม่ระบุตัวตน}other{<ph name="TAB_COUNT_NORMAL" /> แท็บที่ไม่ระบุตัวตน}}</translation>
 <translation id="8051695050440594747">สามารถใช้งานได้ <ph name="MEGABYTES" /> MB</translation>
 <translation id="8058746566562539958">เปิดในแท็บใหม่ของ Chrome</translation>
 <translation id="8063895661287329888">เพิ่มบุ๊กมาร์กไม่สำเร็จ</translation>
@@ -1225,6 +1244,7 @@
 <translation id="8621068256433641644">โทรศัพท์</translation>
 <translation id="8636825310635137004">เปิดการซิงค์เพื่อรับแท็บจากอุปกรณ์เครื่องอื่นๆ ของคุณ</translation>
 <translation id="8641930654639604085">พยายามบล็อกไซต์สำหรับผู้ใหญ่</translation>
+<translation id="864544049772947936">จัดการหน้าต่าง (<ph name="INSTANCE_COUNTS" />)</translation>
 <translation id="8655129584991699539">คุณล้างข้อมูลได้ในการตั้งค่า Chrome</translation>
 <translation id="8656747343598256512">ลงชื่อเข้าใช้เว็บไซต์นี้และ Chrome ด้วยบัญชี Google คุณเปิดการซิงค์ภายหลังได้</translation>
 <translation id="8659579665266920523">วิธีค้นหาด้วย Chrome</translation>
@@ -1313,6 +1333,7 @@
 <translation id="9219103736887031265">ภาพ</translation>
 <translation id="926205370408745186">นำกิจกรรม Chrome ออกจากไลฟ์สไตล์ดิจิทัล</translation>
 <translation id="927968626442779827">ใช้โหมด Lite ใน Google Chrome</translation>
+<translation id="928550791203542716">กำลังติดตาม <ph name="SITE_NAME" /></translation>
 <translation id="932327136139879170">หน้าแรก</translation>
 <translation id="938850635132480979">ข้อผิดพลาด: <ph name="ERROR_CODE" /></translation>
 <translation id="939598580284253335">ป้อนข้อความรหัสผ่าน</translation>
diff --git a/chrome/browser/ui/ash/calendar/calendar_keyed_service.cc b/chrome/browser/ui/ash/calendar/calendar_keyed_service.cc
index b219cbf..3108210 100644
--- a/chrome/browser/ui/ash/calendar/calendar_keyed_service.cc
+++ b/chrome/browser/ui/ash/calendar/calendar_keyed_service.cc
@@ -16,7 +16,6 @@
 #include "components/signin/public/identity_manager/consent_level.h"
 #include "components/signin/public/identity_manager/identity_manager.h"
 #include "google_apis/common/auth_service.h"
-#include "google_apis/common/request_sender.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 
 using google_apis::RequestSender;
@@ -56,9 +55,11 @@
                                            const AccountId& account_id)
     : profile_(profile), account_id_(account_id), calendar_client_(profile) {
   identity_manager_ = IdentityManagerFactory::GetForProfile(profile_);
-  Shell::Get()->calendar_controller()->RegisterClientForUser(account_id_,
-                                                             &calendar_client_);
-
+  // Instance check for tests.
+  if (Shell::HasInstance()) {
+    Shell::Get()->calendar_controller()->RegisterClientForUser(
+        account_id_, &calendar_client_);
+  }
   Initialize();
 }
 
@@ -85,6 +86,10 @@
       /*custom_user_agent=*/std::string(), kCalendarTrafficAnnotation);
 }
 
+void CalendarKeyedService::SetUrlForTesting(const std::string& url) {
+  url_generator_.SetBaseUrlForTesting(url);  // IN-TEST
+}
+
 void CalendarKeyedService::Shutdown() {
   if (Shell::HasInstance()) {
     Shell::Get()->calendar_controller()->RegisterClientForUser(
diff --git a/chrome/browser/ui/ash/calendar/calendar_keyed_service.h b/chrome/browser/ui/ash/calendar/calendar_keyed_service.h
index 63a35ed..60ebf74 100644
--- a/chrome/browser/ui/ash/calendar/calendar_keyed_service.h
+++ b/chrome/browser/ui/ash/calendar/calendar_keyed_service.h
@@ -15,6 +15,7 @@
 #include "google_apis/calendar/calendar_api_requests.h"
 #include "google_apis/calendar/calendar_api_url_generator.h"
 #include "google_apis/common/auth_service_interface.h"
+#include "google_apis/common/request_sender.h"
 #include "google_apis/gaia/core_account_id.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 
@@ -70,6 +71,14 @@
 
   CalendarClient* client() { return &calendar_client_; }
 
+  void set_sender_for_testing(
+      std::unique_ptr<google_apis::RequestSender> test_sender) {
+    sender_ = std::move(test_sender);
+  }
+
+  // The `url` will be set as the `url_generator_`'s base url.
+  void SetUrlForTesting(const std::string& url);
+
  private:
   // KeyedService:
   void Shutdown() override;
diff --git a/chrome/browser/ui/ash/calendar/calendar_keyed_service_unittest.cc b/chrome/browser/ui/ash/calendar/calendar_keyed_service_unittest.cc
index aba2498..4e7655d 100644
--- a/chrome/browser/ui/ash/calendar/calendar_keyed_service_unittest.cc
+++ b/chrome/browser/ui/ash/calendar/calendar_keyed_service_unittest.cc
@@ -16,6 +16,13 @@
 #include "components/account_id/account_id.h"
 #include "components/sync_preferences/pref_service_syncable.h"
 #include "components/user_manager/scoped_user_manager.h"
+#include "google_apis/common/api_error_codes.h"
+#include "google_apis/common/dummy_auth_service.h"
+#include "google_apis/common/test_util.h"
+#include "net/test/embedded_test_server/embedded_test_server.h"
+#include "net/test/embedded_test_server/http_response.h"
+#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
+#include "services/network/test/test_shared_url_loader_factory.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace ash {
@@ -23,6 +30,7 @@
 
 const char kPrimaryProfileName[] = "primary_profile";
 const char kSecondaryProfileName[] = "secondary_profile";
+const char kTestUserAgent[] = "test-user-agent";
 
 }  // namespace
 
@@ -74,6 +82,56 @@
   FakeChromeUserManager* fake_user_manager_;
 };
 
+class CalendarKeyedServiceIOTest : public testing::Test {
+ public:
+  CalendarKeyedServiceIOTest()
+      : test_shared_loader_factory_(
+            base::MakeRefCounted<network::TestSharedURLLoaderFactory>(
+                /*network_service=*/nullptr,
+                /*is_trusted=*/true)) {}
+
+  CalendarKeyedServiceIOTest(const CalendarKeyedServiceIOTest& other) = delete;
+  CalendarKeyedServiceIOTest& operator=(
+      const CalendarKeyedServiceIOTest& other) = delete;
+  ~CalendarKeyedServiceIOTest() override = default;
+
+  void SetUp() override {
+    request_sender_ = std::make_unique<google_apis::RequestSender>(
+        std::make_unique<google_apis::DummyAuthService>(),
+        test_shared_loader_factory_,
+        task_environment_.GetMainThreadTaskRunner(), kTestUserAgent,
+        TRAFFIC_ANNOTATION_FOR_TESTS);
+
+    test_server_.RegisterRequestHandler(base::BindRepeating(
+        &CalendarKeyedServiceIOTest::HandleRequest, base::Unretained(this)));
+    ASSERT_TRUE(test_server_.Start());
+  }
+
+  void TearDown() override {
+    // Deleting the sender here will delete all request objects.
+    request_sender_.reset();
+
+    // Wait for any DeleteSoon tasks to run.
+    task_environment_.RunUntilIdle();
+  }
+
+  content::BrowserTaskEnvironment task_environment_{
+      base::test::TaskEnvironment::MainThreadType::IO};
+  net::EmbeddedTestServer test_server_;
+  std::unique_ptr<google_apis::RequestSender> request_sender_;
+  scoped_refptr<network::TestSharedURLLoaderFactory>
+      test_shared_loader_factory_;
+
+  // Returns the mock calendar event list.
+  std::unique_ptr<net::test_server::HttpResponse> HandleRequest(
+      const net::test_server::HttpRequest& request) {
+    // Return the response from the event json file. The json file path is:
+    // google_apis/test/data/calendar/events.json
+    return google_apis::test_util::CreateHttpResponseFromFile(
+        google_apis::test_util::GetTestFilePath("calendar/events.json"));
+  }
+};
+
 // Calendar service does not support guest user.
 TEST_F(CalendarKeyedServiceTest, GuestUserProfile) {
   // Construct a guest session profile.
@@ -134,4 +192,44 @@
             secondary_calendar_service->client());
 }
 
+TEST_F(CalendarKeyedServiceIOTest, GetEventList) {
+  // Creating the service with some testing profile and account id. Since in
+  // this test we are using the IO thread, the service can not be created from
+  // the factory.
+  std::unique_ptr<TestingProfile> profile_ = std::make_unique<TestingProfile>();
+  auto calendar_service = std::make_unique<CalendarKeyedService>(
+      profile_.get(), AccountId::FromUserEmail("test@email.com"));
+
+  calendar_service->set_sender_for_testing(std::move(request_sender_));
+  calendar_service->SetUrlForTesting(test_server_.base_url().spec());
+
+  // The error code should be overwritten by `HTTP_SUCCESS` after the
+  // `GetEventList` call.
+  google_apis::ApiErrorCode error = google_apis::OTHER_ERROR;
+
+  // This events should be the mock response after the `GetEventList` call.
+  std::unique_ptr<google_apis::calendar::EventList> events;
+
+  base::Time start;
+  base::Time end;
+  ASSERT_TRUE(base::Time::FromString("13 Jun 2021 10:00 GMT", &start));
+  ASSERT_TRUE(base::Time::FromString("16 Jun 2021 10:00 GMT", &end));
+
+  {
+    base::RunLoop run_loop;
+    calendar_service->GetEventList(
+        google_apis::test_util::CreateQuitCallback(
+            &run_loop,
+            google_apis::test_util::CreateCopyResultCallback(&error, &events)),
+        start, end);
+    run_loop.Run();
+  }
+
+  EXPECT_EQ(google_apis::HTTP_SUCCESS, error);
+  const google_apis::calendar::CalendarEvent& event = *events->items()[0];
+  EXPECT_EQ(event.summary(), "Mobile weekly team meeting ");
+  EXPECT_EQ(event.id(), "or8221sirt4ogftest");
+  EXPECT_EQ(events->time_zone(), "America/Los_Angeles");
+}
+
 }  // namespace ash
diff --git a/chrome/browser/ui/ash/projector/projector_client_impl_browsertest.cc b/chrome/browser/ui/ash/projector/projector_client_impl_browsertest.cc
index 0bbd7cf..3a6ac23c 100644
--- a/chrome/browser/ui/ash/projector/projector_client_impl_browsertest.cc
+++ b/chrome/browser/ui/ash/projector/projector_client_impl_browsertest.cc
@@ -112,6 +112,18 @@
     loop.RunUntilIdle();
   }
 
+  // This test helper verifies that navigating to the |url| doesn't result in a
+  // 404 error.
+  void VerifyUrlValid(const char* url) {
+    GURL gurl(url);
+    EXPECT_TRUE(gurl.is_valid());
+    ui_test_utils::NavigateToURL(browser(), gurl);
+    content::WebContents* tab =
+        browser()->tab_strip_model()->GetActiveWebContents();
+    EXPECT_EQ(tab->GetController().GetLastCommittedEntry()->GetPageType(),
+              content::PAGE_TYPE_NORMAL);
+  }
+
  protected:
   std::unique_ptr<ProjectorController::ScopedInstanceResetterForTest>
       scoped_resetter_;
@@ -133,14 +145,12 @@
 
 // This test verifies that the selfie cam WebUI URL is valid.
 IN_PROC_BROWSER_TEST_F(ProjectorClientTest, SelfieCamUrlValid) {
-  GURL selfie_cam_url(std::string(chromeos::kChromeUITrustedProjectorAppUrl) +
-                      "selfie_cam/selfie_cam.html");
-  EXPECT_TRUE(selfie_cam_url.is_valid());
-  ui_test_utils::NavigateToURL(browser(), selfie_cam_url);
-  content::WebContents* tab =
-      browser()->tab_strip_model()->GetActiveWebContents();
-  EXPECT_EQ(tab->GetController().GetLastCommittedEntry()->GetPageType(),
-            content::PAGE_TYPE_NORMAL);
+  VerifyUrlValid(chromeos::kChromeUITrustedProjectorSelfieCamUrl);
+}
+
+// This test verifies that the Projector app WebUI URL is valid.
+IN_PROC_BROWSER_TEST_F(ProjectorClientTest, PlayerUrlValid) {
+  VerifyUrlValid(chromeos::kChromeUITrustedProjectorPlayerUrl);
 }
 
 // TODO(crbug/1199396): Add a test to verify the selfie cam turns off when the
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
index 8ecfd7cc..5d40aa3 100644
--- a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
+++ b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
@@ -42,6 +42,10 @@
 
 namespace {
 constexpr int kArcAppWindowIconSize = extension_misc::EXTENSION_ICON_MEDIUM;
+constexpr char kArcPaymentAppPackage[] = "org.chromium.arc.payment_app";
+constexpr char kArcPaymentAppInvokePaymentAppActivity[] =
+    "org.chromium.arc.payment_app.InvokePaymentAppActivity";
+
 }  // namespace
 
 AppServiceAppWindowArcTracker::AppServiceAppWindowArcTracker(
@@ -196,7 +200,15 @@
 
   // Hide from shelf if there already is some task representing the window.
   if (GetTaskIdSharingLogicalWindow(task_id) != arc::kNoTaskId)
-    task_id_to_arc_app_window_info_[task_id]->set_hidden_from_shelf(true);
+    task_id_to_arc_app_window_info_[task_id]->set_window_hidden_from_shelf(
+        true);
+
+  // Hide any activities created from the ARC Payment activitity from the shelf
+  // (they become overlays of TWA apps already on the shelf)
+  if ((package_name == kArcPaymentAppPackage) &&
+      (activity_name == kArcPaymentAppInvokePaymentAppActivity)) {
+    task_id_to_arc_app_window_info_[task_id]->set_task_hidden_from_shelf();
+  }
 
   CheckAndAttachControllers();
 
@@ -260,7 +272,8 @@
   if (!it->second->logical_window_id().empty()) {
     const int other_id = GetTaskIdSharingLogicalWindow(task_id);
     if (other_id != arc::kNoTaskId)
-      task_id_to_arc_app_window_info_[other_id]->set_hidden_from_shelf(false);
+      task_id_to_arc_app_window_info_[other_id]->set_window_hidden_from_shelf(
+          false);
   }
 
   aura::Window* const window = it->second.get()->window();
@@ -393,7 +406,8 @@
   else if (session_id.has_value())
     AttachControllerToSession(*session_id);
 
-  app_service_controller_->AddWindowToShelf(window, shelf_id);
+  if (!info->task_hidden_from_shelf())
+    app_service_controller_->AddWindowToShelf(window, shelf_id);
   AppWindowBase* app_window = app_service_controller_->GetAppWindow(window);
   if (app_window)
     app_window->SetDescription(info->title(), info->icon());
@@ -448,6 +462,9 @@
 void AppServiceAppWindowArcTracker::AttachControllerToTask(int task_id) {
   ArcAppWindowInfo* const app_window_info =
       task_id_to_arc_app_window_info_[task_id].get();
+  if (app_window_info->task_hidden_from_shelf())
+    return;
+
   const arc::ArcAppShelfId& app_shelf_id = app_window_info->app_shelf_id();
   if (base::Contains(app_shelf_group_to_controller_map_, app_shelf_id)) {
     app_shelf_group_to_controller_map_[app_shelf_id]->AddTaskId(task_id);
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_browsertest.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_browsertest.cc
index 6bf6877..25c404e 100644
--- a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_browsertest.cc
+++ b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_browsertest.cc
@@ -75,9 +75,13 @@
 
 constexpr char kTestAppName[] = "Test ARC App";
 constexpr char kTestAppName2[] = "Test ARC App 2";
+constexpr char kTestPaymentAppName[] = "Test ARC Payment App";
 constexpr char kTestAppPackage[] = "test.arc.app.package";
 constexpr char kTestAppActivity[] = "test.arc.app.package.activity";
 constexpr char kTestAppActivity2[] = "test.arc.gitapp.package.activity2";
+constexpr char kTestPaymentAppPackage[] = "org.chromium.arc.payment_app";
+constexpr char kTestPaymentAppActivity[] =
+    "org.chromium.arc.payment_app.InvokePaymentAppActivity";
 
 ash::ShelfAction SelectItem(
     const ash::ShelfID& id,
@@ -95,9 +99,14 @@
   return ArcAppListPrefs::GetAppId(package_name, kTestAppActivity2);
 }
 
+std::string GetTestPaymentAppId(const std::string& package_name) {
+  return ArcAppListPrefs::GetAppId(package_name, kTestPaymentAppActivity);
+}
+
 std::vector<arc::mojom::AppInfoPtr> GetTestAppsList(
     const std::string& package_name,
-    bool multi_app) {
+    bool multi_app,
+    bool payment_app) {
   std::vector<arc::mojom::AppInfoPtr> apps;
 
   arc::mojom::AppInfoPtr app(arc::mojom::AppInfo::New());
@@ -116,6 +125,15 @@
     apps.push_back(std::move(app));
   }
 
+  if (payment_app) {
+    app = arc::mojom::AppInfo::New();
+    app->name = kTestPaymentAppName;
+    app->package_name = package_name;
+    app->activity = kTestPaymentAppActivity;
+    app->sticky = false;
+    apps.push_back(std::move(app));
+  }
+
   return apps;
 }
 
@@ -615,8 +633,11 @@
     run_loop.Run();
   }
 
-  void InstallTestApps(const std::string& package_name, bool multi_app) {
-    app_host()->OnAppListRefreshed(GetTestAppsList(package_name, multi_app));
+  void InstallTestApps(const std::string& package_name,
+                       bool multi_app,
+                       bool payment_app) {
+    app_host()->OnAppListRefreshed(
+        GetTestAppsList(package_name, multi_app, payment_app));
 
     std::unique_ptr<ArcAppListPrefs::AppInfo> app_info =
         app_prefs()->GetApp(GetTestApp1Id(package_name));
@@ -628,6 +649,12 @@
       ASSERT_TRUE(app_info2);
       EXPECT_TRUE(app_info2->ready);
     }
+    if (payment_app) {
+      std::unique_ptr<ArcAppListPrefs::AppInfo> payment_app_info =
+          app_prefs()->GetApp(GetTestPaymentAppId(package_name));
+      ASSERT_TRUE(payment_app_info);
+      EXPECT_TRUE(payment_app_info->ready);
+    }
   }
 
   void SendPackageAdded(const std::string& package_name, bool package_synced) {
@@ -676,7 +703,7 @@
 IN_PROC_BROWSER_TEST_F(AppServiceAppWindowArcAppBrowserTest, ArcAppsWindow) {
   // Install app to remember existing apps.
   StartInstance();
-  InstallTestApps(kTestAppPackage, true);
+  InstallTestApps(kTestAppPackage, true, false);
   SendPackageAdded(kTestAppPackage, false);
 
   // Create the window for app1.
@@ -772,7 +799,7 @@
 IN_PROC_BROWSER_TEST_F(AppServiceAppWindowArcAppBrowserTest, LogicalWindowId) {
   // Install app to remember existing apps.
   StartInstance();
-  InstallTestApps(kTestAppPackage, true);
+  InstallTestApps(kTestAppPackage, true, false);
   SendPackageAdded(kTestAppPackage, false);
 
   // Create the windows for the app.
@@ -841,6 +868,46 @@
   EXPECT_EQ(0u, windows.size());
 }
 
+// Test what happens when ARC is used to launch a payment task for a PWA app,
+// as the ARC task should not be shown on the shelf.
+IN_PROC_BROWSER_TEST_F(AppServiceAppWindowArcAppBrowserTest, PaymentApp) {
+  // Install app to remember existing apps.
+  StartInstance();
+  InstallTestApps(kTestPaymentAppPackage, false, true);
+  SendPackageAdded(kTestPaymentAppPackage, false);
+
+  // Create the windows for the payment app.
+  views::Widget* payment_window = CreateExoWindow("org.chromium.arc.1");
+
+  // Simulate task creation so the app is marked as running/open.
+  const std::string payment_app_id =
+      GetTestPaymentAppId(kTestPaymentAppPackage);
+  std::unique_ptr<ArcAppListPrefs::AppInfo> info =
+      app_prefs()->GetApp(payment_app_id);
+  app_host()->OnTaskCreated(1, info->package_name, info->activity, info->name,
+                            info->intent_uri, /*session_id=*/0);
+
+  // There should NOT be an entry on the shelf for the payment task
+  EXPECT_FALSE(controller_->GetItem(ash::ShelfID(payment_app_id)));
+
+  // The payment window should still show up in the instance registry.
+  auto windows =
+      app_service_proxy_->InstanceRegistry().GetWindows(payment_app_id);
+  EXPECT_EQ(1u, windows.size());
+
+  // The payment window should be hidden
+  auto is_hidden = [](aura::Window* w) {
+    return w->GetProperty(ash::kHideInShelfKey);
+  };
+  EXPECT_EQ(1, std::count_if(windows.begin(), windows.end(), is_hidden));
+
+  // No windows should remain if we close the payment window
+  payment_window->CloseNow();
+  app_host()->OnTaskDestroyed(1);
+  windows = app_service_proxy_->InstanceRegistry().GetWindows(payment_app_id);
+  EXPECT_EQ(0u, windows.size());
+}
+
 class AppServiceAppWindowSystemWebAppBrowserTest
     : public AppServiceAppWindowWebAppBrowserTest,
       public WithCrosapiParam {};
diff --git a/chrome/browser/ui/ash/shelf/arc_app_window_info.cc b/chrome/browser/ui/ash/shelf/arc_app_window_info.cc
index 1102fcc..33c8bb0d 100644
--- a/chrome/browser/ui/ash/shelf/arc_app_window_info.cc
+++ b/chrome/browser/ui/ash/shelf/arc_app_window_info.cc
@@ -50,9 +50,9 @@
   icon_ = icon;
 }
 
-void ArcAppWindowInfo::set_hidden_from_shelf(bool hidden) {
-  if (hidden_from_shelf_ != hidden) {
-    hidden_from_shelf_ = hidden;
+void ArcAppWindowInfo::set_window_hidden_from_shelf(bool hidden) {
+  if (window_hidden_from_shelf_ != hidden) {
+    window_hidden_from_shelf_ = hidden;
     UpdateWindowProperties();
   }
 }
@@ -61,9 +61,10 @@
   aura::Window* const win = window();
   if (!win)
     return;
-  win->SetProperty(ash::kHideInDeskMiniViewKey, hidden_from_shelf_);
-  win->SetProperty(ash::kHideInOverviewKey, hidden_from_shelf_);
-  win->SetProperty(ash::kHideInShelfKey, hidden_from_shelf_);
+  bool hidden = window_hidden_from_shelf_ || task_hidden_from_shelf_;
+  win->SetProperty(ash::kHideInDeskMiniViewKey, hidden);
+  win->SetProperty(ash::kHideInOverviewKey, hidden);
+  win->SetProperty(ash::kHideInShelfKey, hidden);
 }
 
 void ArcAppWindowInfo::set_window(aura::Window* window) {
@@ -102,3 +103,14 @@
 const std::string& ArcAppWindowInfo::logical_window_id() const {
   return logical_window_id_;
 }
+
+void ArcAppWindowInfo::set_task_hidden_from_shelf() {
+  if (!task_hidden_from_shelf_) {
+    task_hidden_from_shelf_ = true;
+    UpdateWindowProperties();
+  }
+}
+
+bool ArcAppWindowInfo::task_hidden_from_shelf() const {
+  return task_hidden_from_shelf_;
+}
diff --git a/chrome/browser/ui/ash/shelf/arc_app_window_info.h b/chrome/browser/ui/ash/shelf/arc_app_window_info.h
index b94695a..489bc20 100644
--- a/chrome/browser/ui/ash/shelf/arc_app_window_info.h
+++ b/chrome/browser/ui/ash/shelf/arc_app_window_info.h
@@ -29,7 +29,9 @@
 
   void set_window(aura::Window* window);
 
-  void set_hidden_from_shelf(bool hidden);
+  void set_window_hidden_from_shelf(bool hidden);
+
+  void set_task_hidden_from_shelf();
 
   aura::Window* window();
 
@@ -47,15 +49,19 @@
 
   const std::string& logical_window_id() const;
 
+  bool task_hidden_from_shelf() const;
+
  private:
-  // Updates window properties depending on the hidden_from_shelf_ setting.
+  // Updates window properties depending on the window_hidden_from_shelf_ and
+  // task_hidden_from_shelf_ settings.
   void UpdateWindowProperties();
 
   const arc::ArcAppShelfId app_shelf_id_;
   const std::string launch_intent_;
   const std::string package_name_;
   const std::string logical_window_id_;
-  bool hidden_from_shelf_ = false;
+  bool window_hidden_from_shelf_ = false;
+  bool task_hidden_from_shelf_ = false;
   // Keeps overridden window title.
   std::string title_;
   // Keeps overridden window icon.
diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model.cc b/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
index a1e88bc..5a6004e7 100644
--- a/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
+++ b/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
@@ -200,8 +200,8 @@
       item_id(item_id) {}
 
 ContentSettingBubbleModel::ListItem::ListItem(const ListItem& other) = default;
-ContentSettingBubbleModel::ListItem& ContentSettingBubbleModel::ListItem::
-operator=(const ListItem& other) = default;
+ContentSettingBubbleModel::ListItem&
+ContentSettingBubbleModel::ListItem::operator=(const ListItem& other) = default;
 
 ContentSettingSimpleBubbleModel::ContentSettingSimpleBubbleModel(
     Delegate* delegate,
@@ -216,7 +216,7 @@
 }
 
 ContentSettingSimpleBubbleModel*
-    ContentSettingSimpleBubbleModel::AsSimpleBubbleModel() {
+ContentSettingSimpleBubbleModel::AsSimpleBubbleModel() {
   return this;
 }
 
@@ -329,8 +329,7 @@
     set_custom_link(l10n_util::GetStringUTF16(custom_link_id));
 }
 
-void ContentSettingSimpleBubbleModel::OnCustomLinkClicked() {
-}
+void ContentSettingSimpleBubbleModel::OnCustomLinkClicked() {}
 
 // ContentSettingMixedScriptBubbleModel ----------------------------------------
 
@@ -517,9 +516,7 @@
     Delegate* delegate,
     WebContents* web_contents,
     ContentSettingsType content_type)
-    : ContentSettingSimpleBubbleModel(delegate,
-                                      web_contents,
-                                      content_type),
+    : ContentSettingSimpleBubbleModel(delegate, web_contents, content_type),
       block_setting_(CONTENT_SETTING_BLOCK) {
   SetRadioGroup();
 }
@@ -1506,14 +1503,11 @@
   AddListItem(CreateUrlListItem(0 /* id */, blocked_url));
 }
 
-// ContentSettingNotificationsBubbleModel ----------------------------------
-ContentSettingNotificationsBubbleModel::ContentSettingNotificationsBubbleModel(
+// ContentSettingQuietRequestBubbleModel ----------------------------------
+ContentSettingQuietRequestBubbleModel::ContentSettingQuietRequestBubbleModel(
     Delegate* delegate,
     WebContents* web_contents)
     : ContentSettingBubbleModel(delegate, web_contents) {
-  set_title(l10n_util::GetStringUTF16(
-      IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_TITLE));
-
   // TODO(crbug.com/1030633): This block is more defensive than it needs to be
   // because ContentSettingImageModelBrowserTest exercises it without setting up
   // the correct PermissionRequestManager state. Fix that.
@@ -1522,8 +1516,25 @@
   auto quiet_ui_reason = manager->ReasonForUsingQuietUi();
   if (!quiet_ui_reason)
     return;
+  CHECK_GT(manager->Requests().size(), 0u);
+  DCHECK_EQ(manager->Requests().size(), 1u);
+  const permissions::RequestType request_type =
+      manager->Requests()[0]->request_type();
+  int bubble_title_string_id = 0;
+  switch (request_type) {
+    case permissions::RequestType::kNotifications:
+      bubble_title_string_id = IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_TITLE;
+      break;
+    case permissions::RequestType::kGeolocation:
+      bubble_title_string_id = IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_TITLE;
+      break;
+    default:
+      NOTREACHED();
+  }
+  set_title(l10n_util::GetStringUTF16(bubble_title_string_id));
   switch (*quiet_ui_reason) {
     case QuietUiReason::kEnabledInPrefs:
+      DCHECK_EQ(request_type, permissions::RequestType::kNotifications);
       set_message(l10n_util::GetStringUTF16(
           IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_DESCRIPTION));
       set_done_button_text(l10n_util::GetStringUTF16(
@@ -1533,6 +1544,7 @@
           base::UserMetricsAction("Notifications.Quiet.AnimatedIconClicked"));
       break;
     case QuietUiReason::kTriggeredByCrowdDeny:
+      DCHECK_EQ(request_type, permissions::RequestType::kNotifications);
       set_message(l10n_util::GetStringUTF16(
           IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_CROWD_DENY_DESCRIPTION));
       set_done_button_text(l10n_util::GetStringUTF16(
@@ -1543,6 +1555,7 @@
       break;
     case QuietUiReason::kTriggeredDueToAbusiveRequests:
     case QuietUiReason::kTriggeredDueToAbusiveContent:
+      DCHECK_EQ(request_type, permissions::RequestType::kNotifications);
       set_message(l10n_util::GetStringUTF16(
           IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_ABUSIVE_DESCRIPTION));
       // TODO(crbug.com/1082738): It is rather confusing to have the `Cancel`
@@ -1557,10 +1570,27 @@
           base::UserMetricsAction("Notifications.Quiet.StaticIconClicked"));
       break;
     case QuietUiReason::kPredictedVeryUnlikelyGrant:
-      set_message(l10n_util::GetStringUTF16(
-          IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_PREDICTION_SERVICE_DESCRIPTION));
-      set_done_button_text(l10n_util::GetStringUTF16(
-          IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_ALLOW_BUTTON));
+      int bubble_message_string_id = 0;
+      int bubble_done_button_string_id = 0;
+      switch (request_type) {
+        case permissions::RequestType::kNotifications:
+          bubble_message_string_id =
+              IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_PREDICTION_SERVICE_DESCRIPTION;
+          bubble_done_button_string_id =
+              IDS_NOTIFICATIONS_QUIET_PERMISSION_BUBBLE_ALLOW_BUTTON;
+          break;
+        case permissions::RequestType::kGeolocation:
+          bubble_message_string_id =
+              IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_PREDICTION_SERVICE_DESCRIPTION;
+          bubble_done_button_string_id =
+              IDS_GEOLOCATION_QUIET_PERMISSION_BUBBLE_ALLOW_BUTTON;
+          break;
+        default:
+          NOTREACHED();
+      }
+      set_message(l10n_util::GetStringUTF16(bubble_message_string_id));
+      set_done_button_text(
+          l10n_util::GetStringUTF16(bubble_done_button_string_id));
       set_show_learn_more(false);
       base::RecordAction(
           base::UserMetricsAction("Notifications.Quiet.AnimatedIconClicked"));
@@ -1568,28 +1598,54 @@
   }
 }
 
-ContentSettingNotificationsBubbleModel::
-    ~ContentSettingNotificationsBubbleModel() = default;
+ContentSettingQuietRequestBubbleModel::
+    ~ContentSettingQuietRequestBubbleModel() = default;
 
-ContentSettingNotificationsBubbleModel*
-ContentSettingNotificationsBubbleModel::AsNotificationsBubbleModel() {
+ContentSettingQuietRequestBubbleModel*
+ContentSettingQuietRequestBubbleModel::AsQuietRequestBubbleModel() {
   return this;
 }
 
-void ContentSettingNotificationsBubbleModel::OnManageButtonClicked() {
-  if (delegate())
-    delegate()->ShowContentSettingsPage(ContentSettingsType::NOTIFICATIONS);
-
-  base::RecordAction(
-      base::UserMetricsAction("Notifications.Quiet.ManageClicked"));
+void ContentSettingQuietRequestBubbleModel::OnManageButtonClicked() {
+  permissions::PermissionRequestManager* manager =
+      permissions::PermissionRequestManager::FromWebContents(web_contents());
+  CHECK_GT(manager->Requests().size(), 0u);
+  DCHECK_EQ(manager->Requests().size(), 1u);
+  const permissions::RequestType request_type =
+      manager->Requests()[0]->request_type();
+  if (delegate()) {
+    switch (request_type) {
+      case permissions::RequestType::kNotifications:
+        delegate()->ShowContentSettingsPage(ContentSettingsType::NOTIFICATIONS);
+        base::RecordAction(base::UserMetricsAction(
+            "Permissions.Prompt.QuietBubble.Notifications.ManageClicked"));
+        break;
+      case permissions::RequestType::kGeolocation:
+        delegate()->ShowContentSettingsPage(ContentSettingsType::GEOLOCATION);
+        base::RecordAction(base::UserMetricsAction(
+            "Permissions.Prompt.QuietBubble.Geolocation.ManageClicked"));
+        break;
+      default:
+        NOTREACHED();
+    }
+  }
 }
 
-void ContentSettingNotificationsBubbleModel::OnLearnMoreClicked() {
-  if (delegate())
+void ContentSettingQuietRequestBubbleModel::OnLearnMoreClicked() {
+  if (delegate()) {
+    // We only show learn more button for Notification quiet ui dialog when it
+    // is triggered due to abusive requests or contents. We don't have any learn
+    // more button for the geolocation quiet ui dialogs.
+    DCHECK_EQ(
+        permissions::PermissionRequestManager::FromWebContents(web_contents())
+            ->Requests()[0]
+            ->request_type(),
+        permissions::RequestType::kNotifications);
     delegate()->ShowLearnMorePage(ContentSettingsType::NOTIFICATIONS);
+  }
 }
 
-void ContentSettingNotificationsBubbleModel::OnDoneButtonClicked() {
+void ContentSettingQuietRequestBubbleModel::OnDoneButtonClicked() {
   permissions::PermissionRequestManager* manager =
       permissions::PermissionRequestManager::FromWebContents(web_contents());
 
@@ -1600,8 +1656,11 @@
     case QuietUiReason::kTriggeredByCrowdDeny:
     case QuietUiReason::kPredictedVeryUnlikelyGrant:
       manager->Accept();
-      base::RecordAction(
-          base::UserMetricsAction("Notifications.Quiet.ShowForSiteClicked"));
+      base::RecordAction(base::UserMetricsAction(
+          manager->Requests()[0]->request_type() ==
+                  permissions::RequestType::kNotifications
+              ? "Permissions.Prompt.QuietBubble.Notifications.AllowClicked"
+              : "Permissions.Prompt.QuietBubble.Geolocation.AllowClicked"));
       break;
     case QuietUiReason::kTriggeredDueToAbusiveRequests:
     case QuietUiReason::kTriggeredDueToAbusiveContent:
@@ -1612,7 +1671,7 @@
   }
 }
 
-void ContentSettingNotificationsBubbleModel::OnCancelButtonClicked() {
+void ContentSettingQuietRequestBubbleModel::OnCancelButtonClicked() {
   permissions::PermissionRequestManager* manager =
       permissions::PermissionRequestManager::FromWebContents(web_contents());
 
@@ -1696,8 +1755,7 @@
   DCHECK(web_contents_);
 }
 
-ContentSettingBubbleModel::~ContentSettingBubbleModel() {
-}
+ContentSettingBubbleModel::~ContentSettingBubbleModel() {}
 
 ContentSettingBubbleModel::RadioGroup::RadioGroup() : default_item(0) {}
 
@@ -1722,19 +1780,19 @@
 ContentSettingBubbleModel::BubbleContent::~BubbleContent() {}
 
 ContentSettingSimpleBubbleModel*
-    ContentSettingBubbleModel::AsSimpleBubbleModel() {
+ContentSettingBubbleModel::AsSimpleBubbleModel() {
   // In general, bubble models might not inherit from the simple bubble model.
   return nullptr;
 }
 
 ContentSettingMediaStreamBubbleModel*
-    ContentSettingBubbleModel::AsMediaStreamBubbleModel() {
+ContentSettingBubbleModel::AsMediaStreamBubbleModel() {
   // In general, bubble models might not inherit from the media bubble model.
   return nullptr;
 }
 
-ContentSettingNotificationsBubbleModel*
-ContentSettingBubbleModel::AsNotificationsBubbleModel() {
+ContentSettingQuietRequestBubbleModel*
+ContentSettingBubbleModel::AsQuietRequestBubbleModel() {
   return nullptr;
 }
 
diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model.h b/chrome/browser/ui/content_settings/content_setting_bubble_model.h
index 2bfba81..adc00c9 100644
--- a/chrome/browser/ui/content_settings/content_setting_bubble_model.h
+++ b/chrome/browser/ui/content_settings/content_setting_bubble_model.h
@@ -54,7 +54,7 @@
 //   ContentSettingMediaStreamBubbleModel        - media (camera and mic)
 //   ContentSettingSubresourceFilterBubbleModel  - filtered subresources
 //   ContentSettingDownloadsBubbleModel          - automatic downloads
-//   ContentSettingNotificationsBubbleModel      - notifications
+//   ContentSettingQuietRequestBubbleModel       - quiet ui prompts
 
 // Forward declaration necessary for downcasts.
 class ContentSettingSimpleBubbleModel;
@@ -62,7 +62,7 @@
 class ContentSettingSubresourceFilterBubbleModel;
 class ContentSettingDownloadsBubbleModel;
 class ContentSettingFramebustBlockBubbleModel;
-class ContentSettingNotificationsBubbleModel;
+class ContentSettingQuietRequestBubbleModel;
 
 // This model provides data for ContentSettingBubble, and also controls
 // the action triggered when the allow / block radio buttons are triggered.
@@ -215,8 +215,8 @@
   virtual ContentSettingFramebustBlockBubbleModel*
   AsFramebustBlockBubbleModel();
 
-  // Cast this bubble into ContentSettingNotificationsBubbleModel if possible.
-  virtual ContentSettingNotificationsBubbleModel* AsNotificationsBubbleModel();
+  // Cast this bubble into ContentSettingQuietRequestBubbleModel if possible.
+  virtual ContentSettingQuietRequestBubbleModel* AsQuietRequestBubbleModel();
 
  protected:
   // |web_contents| must outlive this.
@@ -401,16 +401,16 @@
 };
 
 // The model of a bubble that acts as a quiet permission request prompt for
-// notifications. In contrast to other bubbles (which display the current
-// permission state after the user makes the initial decision), this is shown
-// before the user makes the first ever permission decisions.
-class ContentSettingNotificationsBubbleModel
-    : public ContentSettingBubbleModel {
+// the notification and geolocation permissions. In contrast to other bubbles
+// (which display the current permission state after the user makes the initial
+// decision), this is shown before the user makes the first ever permission
+// decisions.
+class ContentSettingQuietRequestBubbleModel : public ContentSettingBubbleModel {
  public:
-  ContentSettingNotificationsBubbleModel(Delegate* delegate,
-                                         content::WebContents* web_contents);
+  ContentSettingQuietRequestBubbleModel(Delegate* delegate,
+                                        content::WebContents* web_contents);
 
-  ~ContentSettingNotificationsBubbleModel() override;
+  ~ContentSettingQuietRequestBubbleModel() override;
 
  private:
   void SetManageText();
@@ -420,9 +420,9 @@
   void OnLearnMoreClicked() override;
   void OnDoneButtonClicked() override;
   void OnCancelButtonClicked() override;
-  ContentSettingNotificationsBubbleModel* AsNotificationsBubbleModel() override;
+  ContentSettingQuietRequestBubbleModel* AsQuietRequestBubbleModel() override;
 
-  DISALLOW_COPY_AND_ASSIGN(ContentSettingNotificationsBubbleModel);
+  DISALLOW_COPY_AND_ASSIGN(ContentSettingQuietRequestBubbleModel);
 };
 
 // The model for the deceptive content bubble.
diff --git a/chrome/browser/ui/content_settings/content_setting_image_model.cc b/chrome/browser/ui/content_settings/content_setting_image_model.cc
index 7e5e7460e..e449337 100644
--- a/chrome/browser/ui/content_settings/content_setting_image_model.cc
+++ b/chrome/browser/ui/content_settings/content_setting_image_model.cc
@@ -1018,8 +1018,8 @@
 ContentSettingNotificationsImageModel::CreateBubbleModelImpl(
     ContentSettingBubbleModel::Delegate* delegate,
     WebContents* web_contents) {
-  return std::make_unique<ContentSettingNotificationsBubbleModel>(delegate,
-                                                                  web_contents);
+  return std::make_unique<ContentSettingQuietRequestBubbleModel>(delegate,
+                                                                 web_contents);
 }
 
 // Base class ------------------------------------------------------------------
diff --git a/chrome/browser/ui/passwords/settings/password_manager_presenter.cc b/chrome/browser/ui/passwords/settings/password_manager_presenter.cc
index db37aff..bd8b60a5 100644
--- a/chrome/browser/ui/passwords/settings/password_manager_presenter.cc
+++ b/chrome/browser/ui/passwords/settings/password_manager_presenter.cc
@@ -34,14 +34,12 @@
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
 #include "components/autofill/core/common/form_data.h"
-#include "components/password_manager/core/browser/form_fetcher_impl.h"
+#include "components/password_manager/core/browser/move_password_to_account_store_helper.h"
 #include "components/password_manager/core/browser/password_feature_manager.h"
 #include "components/password_manager/core/browser/password_form.h"
-#include "components/password_manager/core/browser/password_form_metrics_recorder.h"
 #include "components/password_manager/core/browser/password_list_sorter.h"
 #include "components/password_manager/core/browser/password_manager_client.h"
 #include "components/password_manager/core/browser/password_manager_metrics_util.h"
-#include "components/password_manager/core/browser/password_save_manager_impl.h"
 #include "components/password_manager/core/browser/password_sync_util.h"
 #include "components/password_manager/core/browser/password_ui_utils.h"
 #include "components/password_manager/core/browser/ui/plaintext_reason.h"
@@ -198,42 +196,6 @@
 
 }  // namespace
 
-PasswordManagerPresenter::MovePasswordToAccountStoreHelper::
-    MovePasswordToAccountStoreHelper(
-        const password_manager::PasswordForm& form,
-        password_manager::PasswordManagerClient* client,
-        base::OnceClosure done_callback)
-    : form_(form),
-      client_(client),
-      done_callback_(std::move(done_callback)),
-      form_fetcher_(password_manager::FormFetcherImpl::CreateFormFetcherImpl(
-          password_manager::PasswordFormDigest(form),
-          client,
-          /*should_migrate_http_passwords=*/true)) {
-  form_fetcher_->Fetch();
-  form_fetcher_->AddConsumer(this);
-}
-
-PasswordManagerPresenter::MovePasswordToAccountStoreHelper::
-    ~MovePasswordToAccountStoreHelper() {
-  form_fetcher_->RemoveConsumer(this);
-}
-
-void PasswordManagerPresenter::MovePasswordToAccountStoreHelper::
-    OnFetchCompleted() {
-  auto save_manager =
-      password_manager::PasswordSaveManagerImpl::CreatePasswordSaveManagerImpl(
-          client_);
-  save_manager->Init(client_, form_fetcher_.get(), /*metrics_recorder=*/nullptr,
-                     /*votes_uploader=*/nullptr);
-  save_manager->CreatePendingCredentials(form_, {}, {}, /*is_http_auth=*/false,
-                                         /*is_credential_api_save=*/false);
-  save_manager->MoveCredentialsToAccountStore(
-      password_manager::metrics_util::MoveToAccountStoreTrigger::
-          kExplicitlyTriggeredInSettings);
-  std::move(done_callback_).Run();
-}
-
 PasswordManagerPresenter::PasswordManagerPresenter(
     PasswordUIView* password_view)
     : password_view_(password_view) {
@@ -406,12 +368,12 @@
         move_to_account_helpers_.insert(move_to_account_helpers_.begin(),
                                         nullptr);
     // The presenter outlives the helper so it's safe to use base::Unretained.
-    *helper_it = std::make_unique<
-        PasswordManagerPresenter::MovePasswordToAccountStoreHelper>(
-        form, client,
-        base::BindOnce(
-            &PasswordManagerPresenter::OnMovePasswordToAccountCompleted,
-            base::Unretained(this), helper_it));
+    *helper_it =
+        std::make_unique<password_manager::MovePasswordToAccountStoreHelper>(
+            form, client,
+            base::BindOnce(
+                &PasswordManagerPresenter::OnMovePasswordToAccountCompleted,
+                base::Unretained(this), helper_it));
   }
 }
 
diff --git a/chrome/browser/ui/passwords/settings/password_manager_presenter.h b/chrome/browser/ui/passwords/settings/password_manager_presenter.h
index 9672efcf..59d48f12 100644
--- a/chrome/browser/ui/passwords/settings/password_manager_presenter.h
+++ b/chrome/browser/ui/passwords/settings/password_manager_presenter.h
@@ -16,7 +16,6 @@
 #include "base/callback_forward.h"
 #include "base/macros.h"
 #include "build/build_config.h"
-#include "components/password_manager/core/browser/form_fetcher.h"
 #include "components/password_manager/core/browser/password_store.h"
 #include "components/password_manager/core/browser/password_store_consumer.h"
 #include "components/password_manager/core/browser/ui/credential_provider_interface.h"
@@ -24,9 +23,9 @@
 #include "components/prefs/pref_member.h"
 #include "components/undo/undo_manager.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
-#include "ui/shell_dialogs/select_file_dialog.h"
 
 namespace password_manager {
+class MovePasswordToAccountStoreHelper;
 class PasswordManagerClient;
 struct PasswordForm;
 }  // namespace password_manager
@@ -129,27 +128,6 @@
   void RemoveLogin(const password_manager::PasswordForm& form);
 
  private:
-  // Used for moving a form from the profile store to the account store.
-  class MovePasswordToAccountStoreHelper
-      : public password_manager::FormFetcher::Consumer {
-   public:
-    // Starts moving |form|. |done_callback| is run when done.
-    MovePasswordToAccountStoreHelper(
-        const password_manager::PasswordForm& form,
-        password_manager::PasswordManagerClient* client,
-        base::OnceClosure done_callback);
-    ~MovePasswordToAccountStoreHelper() override;
-
-   private:
-    // FormFetcher::Consumer.
-    void OnFetchCompleted() override;
-
-    password_manager::PasswordForm form_;
-    password_manager::PasswordManagerClient* const client_;
-    base::OnceClosure done_callback_;
-    std::unique_ptr<password_manager::FormFetcher> form_fetcher_;
-  };
-
   // Convenience typedef for a map containing PasswordForms grouped into
   // equivalence classes. Each equivalence class corresponds to one entry shown
   // in the UI, and deleting an UI entry will delete all PasswordForms that are
@@ -160,8 +138,8 @@
       std::map<std::string,
                std::vector<std::unique_ptr<password_manager::PasswordForm>>>;
 
-  using MovePasswordToAccountStoreHelperList =
-      std::list<std::unique_ptr<MovePasswordToAccountStoreHelper>>;
+  using MovePasswordToAccountStoreHelperList = std::list<
+      std::unique_ptr<password_manager::MovePasswordToAccountStoreHelper>>;
 
   // Attempts to remove the entries corresponding to |index| from |form_map|.
   // This will also add a corresponding undo operation to |undo_manager_|.
diff --git a/chrome/browser/ui/view_ids.h b/chrome/browser/ui/view_ids.h
index ed6c3e5..76b6815 100644
--- a/chrome/browser/ui/view_ids.h
+++ b/chrome/browser/ui/view_ids.h
@@ -24,6 +24,7 @@
   VIEW_ID_WINDOW_ICON,
   VIEW_ID_WINDOW_TITLE,
   VIEW_ID_WEB_APP_FRAME_TOOLBAR,
+  VIEW_ID_WEB_APP_ORIGIN_TEXT,
 
   // Tabs within a window/tab strip, counting from the left.
   VIEW_ID_TAB_0,
diff --git a/chrome/browser/ui/views/certificate_viewer_win.cc b/chrome/browser/ui/views/certificate_viewer_win.cc
index 2fa586c..1e5fbcc3 100644
--- a/chrome/browser/ui/views/certificate_viewer_win.cc
+++ b/chrome/browser/ui/views/certificate_viewer_win.cc
@@ -15,6 +15,7 @@
 #include "base/threading/thread.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "chrome/browser/ui/cryptuiapi_shim.h"
+#include "crypto/scoped_capi_types.h"
 #include "net/cert/x509_certificate.h"
 #include "net/cert/x509_util_win.h"
 #include "ui/aura/window.h"
@@ -57,7 +58,7 @@
                           const scoped_refptr<net::X509Certificate>& cert) {
     // Create a new cert context and store containing just the certificate
     // and its intermediate certificates.
-    net::ScopedPCCERT_CONTEXT cert_list(
+    crypto::ScopedPCCERT_CONTEXT cert_list(
         net::x509_util::CreateCertContextWithChain(cert.get()));
     // Perhaps this should show an error instead of silently failing, but it's
     // probably not even possible to get here with a cert that can't be
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc
index 005d131..ec7f46d2 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc
@@ -475,7 +475,7 @@
   AppMenu* GetAppMenu() { return web_app_menu_button_->app_menu(); }
 
   SkColor GetActiveColor() const {
-    return web_app_frame_toolbar_->active_foreground_color_;
+    return *web_app_frame_toolbar_->active_foreground_color_;
   }
 
   bool GetPaintingAsActive() const {
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 197914a..dec9e3a 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -102,7 +102,6 @@
 #include "chrome/browser/ui/views/frame/top_container_loading_bar.h"
 #include "chrome/browser/ui/views/frame/top_container_view.h"
 #include "chrome/browser/ui/views/frame/web_contents_close_handler.h"
-#include "chrome/browser/ui/views/frame/web_footer_experiment_view.h"
 #include "chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.h"
 #include "chrome/browser/ui/views/global_media_controls/media_toolbar_button_view.h"
 #include "chrome/browser/ui/views/hats/hats_next_web_dialog.h"
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc
index 097309c..63b1adf 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc
@@ -26,6 +26,7 @@
 #include "content/public/common/content_features.h"
 #include "content/public/test/browser_test.h"
 #include "ui/base/hit_test.h"
+#include "ui/compositor/scoped_animation_duration_scale_mode.h"
 #include "ui/gfx/color_utils.h"
 #include "ui/views/test/test_views.h"
 #include "ui/views/view_utils.h"
@@ -53,11 +54,9 @@
     Browser* app_browser =
         web_app::LaunchWebAppBrowser(browser()->profile(), app_id);
 
+    browser_view_ = BrowserView::GetBrowserViewForBrowser(app_browser);
     views::NonClientFrameView* frame_view =
-        BrowserView::GetBrowserViewForBrowser(app_browser)
-            ->GetWidget()
-            ->non_client_view()
-            ->frame_view();
+        browser_view_->GetWidget()->non_client_view()->frame_view();
 
     // Not all platform configurations use OpaqueBrowserFrameView for their
     // browser windows, see |CreateBrowserNonClientFrameView()|.
@@ -101,9 +100,14 @@
               theme_mode == ThemeMode::kDefault);
   }
 
+  BrowserView* browser_view_ = nullptr;
   OpaqueBrowserFrameView* opaque_browser_frame_view_ = nullptr;
   WebAppFrameToolbarView* web_app_frame_toolbar_ = nullptr;
 
+  // Disable animations.
+  ui::ScopedAnimationDurationScaleMode scoped_animation_duration_scale_mode_{
+      ui::ScopedAnimationDurationScaleMode::ZERO_DURATION};
+
  private:
   DISALLOW_COPY_AND_ASSIGN(WebAppOpaqueBrowserFrameViewTest);
 };
@@ -189,6 +193,66 @@
   EXPECT_EQ(title_bar_height, GetRestoredTitleBarHeight());
 }
 
+// Tests for the appearance of the origin text in the titlebar. The origin text
+// shows and then hides both when the window is first opened and any time the
+// titlebar's appearance changes.
+IN_PROC_BROWSER_TEST_F(WebAppOpaqueBrowserFrameViewTest, OriginTextVisibility) {
+  if (!InstallAndLaunchWebApp())
+    return;
+
+  views::View* web_app_origin_text =
+      web_app_frame_toolbar_->GetViewByID(VIEW_ID_WEB_APP_ORIGIN_TEXT);
+  // Keep track of the number of times the view is made visible or hidden.
+  int visible_count = 0, hidden_count = 0;
+  auto visibility_change_counter = [](views::View* view, int* visible_count,
+                                      int* hidden_count) {
+    if (view->GetVisible())
+      (*visible_count)++;
+    else
+      (*hidden_count)++;
+  };
+  auto subscription = web_app_origin_text->AddVisibleChangedCallback(
+      base::BindRepeating(visibility_change_counter, web_app_origin_text,
+                          &visible_count, &hidden_count));
+
+  // Starts off visible, then animates out.
+  {
+    EXPECT_TRUE(web_app_origin_text->GetVisible());
+    base::RunLoop view_hidden_runloop;
+    auto subscription = web_app_origin_text->AddVisibleChangedCallback(
+        view_hidden_runloop.QuitClosure());
+    view_hidden_runloop.Run();
+    EXPECT_EQ(0, visible_count);
+    EXPECT_EQ(1, hidden_count);
+    EXPECT_FALSE(web_app_origin_text->GetVisible());
+  }
+
+  // The app changes the theme. The origin text should show again and then hide.
+  {
+    base::RunLoop view_hidden_runloop;
+    base::RunLoop view_shown_runloop;
+    auto quit_runloop = base::BindLambdaForTesting(
+        [&web_app_origin_text, &view_hidden_runloop, &view_shown_runloop]() {
+          if (web_app_origin_text->GetVisible())
+            view_shown_runloop.Quit();
+          else
+            view_hidden_runloop.Quit();
+        });
+    auto subscription =
+        web_app_origin_text->AddVisibleChangedCallback(quit_runloop);
+    ASSERT_TRUE(ExecJs(
+        browser_view_->GetActiveWebContents()->GetMainFrame(),
+        "var meta = document.head.appendChild(document.createElement('meta'));"
+        "meta.name = 'theme-color';"
+        "meta.content = '#123456';"));
+    view_shown_runloop.Run();
+    EXPECT_EQ(1, visible_count);
+    view_hidden_runloop.Run();
+    EXPECT_EQ(2, hidden_count);
+    EXPECT_FALSE(web_app_origin_text->GetVisible());
+  }
+}
+
 class WebAppOpaqueBrowserFrameViewWindowControlsOverlayTest
     : public InProcessBrowserTest {
  public:
diff --git a/chrome/browser/ui/views/frame/web_footer_experiment_view.cc b/chrome/browser/ui/views/frame/web_footer_experiment_view.cc
deleted file mode 100644
index 0b3562e..0000000
--- a/chrome/browser/ui/views/frame/web_footer_experiment_view.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/views/frame/web_footer_experiment_view.h"
-
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/task_manager/web_contents_tags.h"
-#include "chrome/common/webui_url_constants.h"
-#include "components/startup_metric_utils/browser/startup_metric_utils.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-
-WebFooterExperimentView::WebFooterExperimentView(Profile* profile)
-    : WebView(profile), metrics_collector_(GetWebContents()) {
-  startup_metric_utils::RecordWebFooterCreation(base::TimeTicks::Now());
-  LoadInitialURL(GURL(chrome::kChromeUIWebFooterExperimentURL));
-  task_manager::WebContentsTags::CreateForTabContents(web_contents());
-}
-
-WebFooterExperimentView::FirstPaintMetricsCollector::FirstPaintMetricsCollector(
-    content::WebContents* web_contents)
-    : WebContentsObserver(web_contents) {}
-
-WebFooterExperimentView::FirstPaintMetricsCollector::
-    ~FirstPaintMetricsCollector() = default;
-
-void WebFooterExperimentView::FirstPaintMetricsCollector::
-    DidFirstVisuallyNonEmptyPaint() {
-  startup_metric_utils::RecordWebFooterDidFirstVisuallyNonEmptyPaint(
-      base::TimeTicks::Now());
-}
-
-BEGIN_METADATA(WebFooterExperimentView, views::WebView)
-END_METADATA
diff --git a/chrome/browser/ui/views/frame/web_footer_experiment_view.h b/chrome/browser/ui/views/frame/web_footer_experiment_view.h
deleted file mode 100644
index 1a456d9..0000000
--- a/chrome/browser/ui/views/frame/web_footer_experiment_view.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_WEB_FOOTER_EXPERIMENT_VIEW_H_
-#define CHROME_BROWSER_UI_VIEWS_FRAME_WEB_FOOTER_EXPERIMENT_VIEW_H_
-
-#include "content/public/browser/web_contents_observer.h"
-#include "ui/base/metadata/metadata_header_macros.h"
-#include "ui/views/controls/webview/webview.h"
-
-class Profile;
-
-class WebFooterExperimentView : public views::WebView {
- public:
-  METADATA_HEADER(WebFooterExperimentView);
-  explicit WebFooterExperimentView(Profile* profile);
-  WebFooterExperimentView(const WebFooterExperimentView&) = delete;
-  WebFooterExperimentView& operator=(const WebFooterExperimentView&) = delete;
-
- private:
-  class FirstPaintMetricsCollector : public content::WebContentsObserver {
-   public:
-    explicit FirstPaintMetricsCollector(content::WebContents* web_contents);
-    FirstPaintMetricsCollector(const FirstPaintMetricsCollector&) = delete;
-    FirstPaintMetricsCollector& operator=(const FirstPaintMetricsCollector&) =
-        delete;
-    ~FirstPaintMetricsCollector() override;
-
-   private:
-    // content::WebContentsObserver:
-    void DidFirstVisuallyNonEmptyPaint() override;
-  };
-
-  FirstPaintMetricsCollector metrics_collector_;
-};
-
-#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_WEB_FOOTER_EXPERIMENT_VIEW_H_
diff --git a/chrome/browser/ui/views/location_bar/permission_quiet_chip.cc b/chrome/browser/ui/views/location_bar/permission_quiet_chip.cc
index 297ba95..2db6539 100644
--- a/chrome/browser/ui/views/location_bar/permission_quiet_chip.cc
+++ b/chrome/browser/ui/views/location_bar/permission_quiet_chip.cc
@@ -36,26 +36,30 @@
     permissions::PermissionPrompt::Delegate* delegate) {
   DCHECK(delegate);
 
-  if (delegate->Requests()[0]->request_type() ==
-      permissions::RequestType::kNotifications) {
-    return vector_icons::kNotificationsOffIcon;
+  switch (delegate->Requests()[0]->request_type()) {
+    case permissions::RequestType::kNotifications:
+      return vector_icons::kNotificationsOffIcon;
+    case permissions::RequestType::kGeolocation:
+      return vector_icons::kLocationOffIcon;
+    default:
+      NOTREACHED();
+      return gfx::kNoneIcon;
   }
-
-  NOTREACHED();
-  return gfx::kNoneIcon;
 }
 
 std::u16string GetPermissionMessage(
     permissions::PermissionPrompt::Delegate* delegate) {
   DCHECK(delegate);
 
-  if (delegate->Requests()[0]->request_type() ==
-      permissions::RequestType::kNotifications) {
-    return l10n_util::GetStringUTF16(IDS_NOTIFICATIONS_OFF_EXPLANATORY_TEXT);
+  switch (delegate->Requests()[0]->request_type()) {
+    case permissions::RequestType::kNotifications:
+      return l10n_util::GetStringUTF16(IDS_NOTIFICATIONS_OFF_EXPLANATORY_TEXT);
+    case permissions::RequestType::kGeolocation:
+      return l10n_util::GetStringUTF16(IDS_GEOLOCATION_OFF_EXPLANATORY_TEXT);
+    default:
+      NOTREACHED();
+      return std::u16string();
   }
-
-  NOTREACHED();
-  return std::u16string();
 }
 
 }  // namespace
@@ -92,7 +96,7 @@
 
   if (web_contents) {
     quiet_request_bubble_ = new ContentSettingBubbleContents(
-        std::make_unique<ContentSettingNotificationsBubbleModel>(
+        std::make_unique<ContentSettingQuietRequestBubbleModel>(
             lbv->GetContentSettingBubbleModelDelegate(), web_contents),
         web_contents, lbv, views::BubbleBorder::TOP_LEFT);
     quiet_request_bubble_->SetHighlightedButton(button());
diff --git a/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc b/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc
index 9308982..d6cb1ff4 100644
--- a/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc
+++ b/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc
@@ -19,11 +19,8 @@
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/sad_tab_helper.h"
-#include "chrome/browser/ui/tab_modal_confirm_dialog.h"
-#include "chrome/browser/ui/tab_modal_confirm_dialog_delegate.h"
 #include "chrome/browser/ui/tab_sharing/tab_sharing_infobar_delegate.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
-#include "chrome/grit/generated_resources.h"
 #include "components/infobars/content/content_infobar_manager.h"
 #include "components/infobars/core/infobar.h"
 #include "components/url_formatter/elide_url.h"
@@ -35,8 +32,6 @@
 #include "extensions/common/constants.h"
 #include "net/base/url_util.h"
 #include "services/network/public/cpp/is_potentially_trustworthy.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/ui_base_types.h"
 #include "ui/gfx/color_palette.h"
 #include "ui/views/border.h"
 
@@ -181,23 +176,6 @@
 
 }  // namespace
 
-class CaptureTerminatedDialogDelegate : public TabModalConfirmDialogDelegate {
- public:
-  explicit CaptureTerminatedDialogDelegate(content::WebContents* web_contents)
-      : TabModalConfirmDialogDelegate(web_contents) {}
-  ~CaptureTerminatedDialogDelegate() override = default;
-  std::u16string GetTitle() override {
-    return l10n_util::GetStringUTF16(
-        IDS_TAB_CAPTURE_TERMINATED_BY_POLICY_TITLE);
-  }
-
-  std::u16string GetDialogMessage() override {
-    return l10n_util::GetStringUTF16(IDS_TAB_CAPTURE_TERMINATED_BY_POLICY_TEXT);
-  }
-
-  int GetDialogButtons() const override { return ui::DIALOG_BUTTON_OK; }
-};
-
 // static
 std::unique_ptr<TabSharingUI> TabSharingUI::Create(
     GlobalRenderFrameHostId capturer,
@@ -239,8 +217,7 @@
     shared_tab_origin_observer_ = std::make_unique<SameOriginObserver>(
         shared_tab_, capturer_origin_,
         base::BindRepeating(&TabSharingUIViews::StopCaptureDueToPolicy,
-                            base::Unretained(this)),
-        /*check_before_commit=*/false);
+                            base::Unretained(this)));
   }
 }
 
@@ -574,6 +551,5 @@
   StopSharing();
   // We use |contents| rather than |shared_tab_| here because |shared_tab_| is
   // cleared by the call to StopSharing().
-  TabModalConfirmDialog::Create(
-      std::make_unique<CaptureTerminatedDialogDelegate>(contents), contents);
+  capture_policy::ShowCaptureTerminatedDialog(contents);
 }
diff --git a/chrome/browser/ui/views/translate/translate_bubble_view_interactive_uitest.cc b/chrome/browser/ui/views/translate/translate_bubble_view_interactive_uitest.cc
index fbd179ca..4d1f537 100644
--- a/chrome/browser/ui/views/translate/translate_bubble_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/translate/translate_bubble_view_interactive_uitest.cc
@@ -6,6 +6,7 @@
 
 #include "base/bind.h"
 #include "base/command_line.h"
+#include "base/i18n/base_i18n_switches.h"
 #include "base/macros.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/bind.h"
@@ -83,7 +84,9 @@
 }
 }  // namespace
 
-class TranslateBubbleViewUITest : public InProcessBrowserTest {
+class TranslateBubbleViewUITest
+    : public InProcessBrowserTest,
+      public ::testing::WithParamInterface<std::string> {
  public:
   TranslateBubbleViewUITest() = default;
   ~TranslateBubbleViewUITest() override = default;
@@ -101,6 +104,17 @@
     command_line->AppendSwitchASCII(
         switches::kTranslateScriptURL,
         embedded_test_server()->GetURL("/mock_translate_script.js").spec());
+    if (GetParam() == "RightToLeft") {
+      command_line->AppendSwitchASCII(::switches::kForceUIDirection,
+                                      ::switches::kForceDirectionRTL);
+      command_line->AppendSwitchASCII(::switches::kForceTextDirection,
+                                      ::switches::kForceDirectionRTL);
+    } else if (GetParam() == "Incognito") {
+      command_line->AppendSwitch(::switches::kIncognito);
+    } else if (GetParam() == "Theme") {
+      command_line->AppendSwitchASCII(::switches::kInstallAutogeneratedTheme,
+                                      "121,0,0");
+    }
   }
 
   void SetUpOnMainThread() override {
@@ -145,6 +159,9 @@
   void NavigateAndWaitForLanguageDetection(const GURL& url,
                                            const std::string& expected_lang) {
     ui_test_utils::NavigateToURL(browser(), url);
+    if (GetParam() == "MultipleBubble") {
+      chrome::GenerateQRCodeFromPageAction(browser());
+    }
 
     while (expected_lang !=
            ChromeTranslateClient::FromWebContents(
@@ -162,7 +179,7 @@
 // Verify that source language tab is selected and highlighted by
 // default, and by selecting target language the page gets translated into
 // target language and reverted to source language.
-IN_PROC_BROWSER_TEST_F(TranslateBubbleViewUITest, ClickLanguageTab) {
+IN_PROC_BROWSER_TEST_P(TranslateBubbleViewUITest, ClickLanguageTab) {
   UNCALLED_MOCK_CALLBACK(ui::InteractionSequence::AbortedCallback, aborted);
 
   // P1.Opened/Navigate to non english page > Hit on translate bubble icon.
@@ -247,7 +264,7 @@
 }
 
 // Verify the "Choose another language" option from 3 dot menu.
-IN_PROC_BROWSER_TEST_F(TranslateBubbleViewUITest, ChooseAnotherLanguage) {
+IN_PROC_BROWSER_TEST_P(TranslateBubbleViewUITest, ChooseAnotherLanguage) {
   UNCALLED_MOCK_CALLBACK(ui::InteractionSequence::AbortedCallback, aborted);
 
   // P1. Opened/Navigate to non english page.
@@ -355,7 +372,7 @@
 }
 
 // Verify the "Page is not in (source language)" option from 3 dot menu.
-IN_PROC_BROWSER_TEST_F(TranslateBubbleViewUITest,
+IN_PROC_BROWSER_TEST_P(TranslateBubbleViewUITest,
                        ClickPageNotInSourceLanguage) {
   UNCALLED_MOCK_CALLBACK(ui::InteractionSequence::AbortedCallback, aborted);
 
@@ -474,7 +491,7 @@
 }
 
 // Verify the error handling OR network interruption.
-IN_PROC_BROWSER_TEST_F(TranslateBubbleViewUITest, NetworkInterruption) {
+IN_PROC_BROWSER_TEST_P(TranslateBubbleViewUITest, NetworkInterruption) {
   UNCALLED_MOCK_CALLBACK(ui::InteractionSequence::AbortedCallback, aborted);
 
   bool offline = false;
@@ -581,4 +598,15 @@
       ->RunSynchronouslyForTesting();
 }
 
+INSTANTIATE_TEST_SUITE_P(All,
+                         TranslateBubbleViewUITest,
+                         ::testing::Values("Default",
+                                           "RightToLeft",
+                                           "Incognito",
+                                           "MultipleBubble",
+                                           "Theme"),
+                         [](const ::testing::TestParamInfo<std::string>& inf) {
+                           return inf.param;
+                         });
+
 }  // namespace translate
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.cc b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.cc
index 194e6e6..728dd1c 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.cc
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.cc
@@ -95,26 +95,35 @@
 }
 
 void WebAppFrameToolbarView::UpdateCaptionColors() {
-  const BrowserNonClientFrameView* frame_view =
-      browser_view_->frame()->GetFrameView();
-  DCHECK(frame_view);
+  // We want to behave differently if this is an update to the color (as opposed
+  // to the first time it's being set). Specifically, updates should pulse the
+  // origin into view.
+  bool color_previously_set = active_background_color_.has_value();
+  if (color_previously_set) {
+    SkColor old_active_background_color = *active_background_color_;
+    SkColor old_active_foreground_color = *active_foreground_color_;
+    SkColor old_inactive_background_color = *inactive_background_color_;
+    SkColor old_inactive_foreground_color = *inactive_foreground_color_;
+    UpdateCachedColors();
 
-  active_background_color_ =
-      frame_view->GetFrameColor(BrowserFrameActiveState::kActive);
-  active_foreground_color_ =
-      frame_view->GetCaptionColor(BrowserFrameActiveState::kActive);
-  inactive_background_color_ =
-      frame_view->GetFrameColor(BrowserFrameActiveState::kInactive);
-  inactive_foreground_color_ =
-      frame_view->GetCaptionColor(BrowserFrameActiveState::kInactive);
-  UpdateChildrenColor();
+    if (old_active_background_color == active_background_color_ &&
+        old_active_foreground_color == active_foreground_color_ &&
+        old_inactive_background_color == inactive_background_color_ &&
+        old_inactive_foreground_color == inactive_foreground_color_) {
+      return;
+    }
+  } else {
+    UpdateCachedColors();
+  }
+
+  UpdateChildrenColor(/*color_changed=*/color_previously_set);
 }
 
 void WebAppFrameToolbarView::SetPaintAsActive(bool active) {
   if (paint_as_active_ == active)
     return;
   paint_as_active_ = active;
-  UpdateChildrenColor();
+  UpdateChildrenColor(/*color_changed=*/false);
   OnPropertyChanged(&paint_as_active_, views::kPropertyEffectsNone);
 }
 
@@ -260,8 +269,8 @@
 void WebAppFrameToolbarView::OnWindowControlsOverlayEnabledChanged() {
   if (browser_view_->IsWindowControlsOverlayEnabled()) {
     SetBackground(views::CreateSolidBackground(
-        paint_as_active_ ? active_background_color_
-                         : inactive_background_color_));
+        paint_as_active_ ? *active_background_color_
+                         : *inactive_background_color_));
 
     // BrowserView paints to a layer, so this view must do the same to ensure
     // that it paints on top of the BrowserView.
@@ -304,14 +313,32 @@
       ->get_content_setting_views();
 }
 
-void WebAppFrameToolbarView::UpdateChildrenColor() {
-  const SkColor foreground_color =
-      paint_as_active_ ? active_foreground_color_ : inactive_foreground_color_;
+void WebAppFrameToolbarView::UpdateCachedColors() {
+  const BrowserNonClientFrameView* frame_view =
+      browser_view_->frame()->GetFrameView();
+  DCHECK(frame_view);
+
+  active_background_color_ =
+      frame_view->GetFrameColor(BrowserFrameActiveState::kActive);
+  active_foreground_color_ =
+      frame_view->GetCaptionColor(BrowserFrameActiveState::kActive);
+  inactive_background_color_ =
+      frame_view->GetFrameColor(BrowserFrameActiveState::kInactive);
+  inactive_foreground_color_ =
+      frame_view->GetCaptionColor(BrowserFrameActiveState::kInactive);
+}
+
+void WebAppFrameToolbarView::UpdateChildrenColor(bool color_changed) {
+  const SkColor foreground_color = paint_as_active_
+                                       ? *active_foreground_color_
+                                       : *inactive_foreground_color_;
   if (left_container_)
     left_container_->SetIconColor(foreground_color);
-  const SkColor background_color =
-      paint_as_active_ ? active_background_color_ : inactive_background_color_;
-  right_container_->SetColors(foreground_color, background_color);
+  const SkColor background_color = paint_as_active_
+                                       ? *active_background_color_
+                                       : *inactive_background_color_;
+  right_container_->SetColors(foreground_color, background_color,
+                              color_changed);
 
   if (browser_view_->IsWindowControlsOverlayEnabled()) {
     SetBackground(views::CreateSolidBackground(background_color));
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.h b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.h
index e6f037b..3ca516f59 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.h
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.h
@@ -59,7 +59,9 @@
   // Sets own bounds within the available_space.
   void LayoutForWindowControlsOverlay(gfx::Rect available_space);
 
-  SkColor active_color_for_testing() const { return active_foreground_color_; }
+  absl::optional<SkColor> active_color_for_testing() const {
+    return active_foreground_color_;
+  }
 
   // ToolbarButtonProvider:
   ExtensionsToolbarContainer* GetExtensionsToolbarContainer() override;
@@ -106,17 +108,22 @@
   const std::vector<ContentSettingImageView*>&
   GetContentSettingViewsForTesting() const;
 
-  void UpdateChildrenColor();
+  void UpdateCachedColors();
+
+  // `color_changed` is true if this is called after an update to the window's
+  // color. It will be false if this is called when the color is initially set
+  // for the window.
+  void UpdateChildrenColor(bool color_changed);
 
   // The containing browser view.
   BrowserView* const browser_view_;
 
   // Button and text colors.
   bool paint_as_active_ = true;
-  SkColor active_background_color_ = gfx::kPlaceholderColor;
-  SkColor active_foreground_color_ = gfx::kPlaceholderColor;
-  SkColor inactive_background_color_ = gfx::kPlaceholderColor;
-  SkColor inactive_foreground_color_ = gfx::kPlaceholderColor;
+  absl::optional<SkColor> active_background_color_;
+  absl::optional<SkColor> active_foreground_color_;
+  absl::optional<SkColor> inactive_background_color_;
+  absl::optional<SkColor> inactive_foreground_color_;
 
   // All remaining members are owned by the views hierarchy.
 
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_origin_text.cc b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_origin_text.cc
index 0697d95..2c731d0 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_origin_text.cc
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_origin_text.cc
@@ -7,6 +7,7 @@
 #include "base/bind.h"
 #include "base/i18n/rtl.h"
 #include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/view_ids.h"
 #include "chrome/browser/ui/views/chrome_typography.h"
 #include "chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h"
 #include "chrome/browser/ui/web_applications/app_browser_controller.h"
@@ -29,6 +30,7 @@
 WebAppOriginText::WebAppOriginText(Browser* browser) {
   DCHECK(web_app::AppBrowserController::IsWebApp(browser));
 
+  SetID(VIEW_ID_WEB_APP_ORIGIN_TEXT);
   SetLayoutManager(std::make_unique<views::FillLayout>());
 
   label_ = std::make_unique<views::Label>(
@@ -44,6 +46,9 @@
   label_->SetPaintToLayer();
   label_->layer()->SetFillsBoundsOpaquely(false);
   label_->layer()->SetOpacity(0);
+  label_->layer()->GetAnimator()->AddObserver(this);
+  label_->layer()->GetAnimator()->set_preemption_strategy(
+      ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
   AddChildView(label_);
 
   // Clip child views to this view.
@@ -54,21 +59,27 @@
 
 WebAppOriginText::~WebAppOriginText() = default;
 
-void WebAppOriginText::SetTextColor(SkColor color) {
+void WebAppOriginText::SetTextColor(SkColor color, bool show_text) {
   label_->SetEnabledColor(color);
+  if (show_text)
+    StartFadeAnimation();
 }
 
 void WebAppOriginText::StartFadeAnimation() {
-  ui::Layer* label_layer = label_->layer();
+  SetVisible(true);
 
-  // Current state will become the first animation keyframe.
-  DCHECK_EQ(label_layer->opacity(), 0);
+  ui::Layer* label_layer = label_->layer();
+  // If a fade animation is already in progress, just skip straight to visible.
+  bool animation_already_in_progress =
+      label_layer->GetAnimator()->is_animating();
 
   auto opacity_sequence = std::make_unique<ui::LayerAnimationSequence>();
 
   // Fade in.
   auto opacity_keyframe = ui::LayerAnimationElement::CreateOpacityElement(
-      1, WebAppToolbarButtonContainer::kOriginFadeInDuration);
+      1, animation_already_in_progress
+             ? base::TimeDelta()
+             : WebAppToolbarButtonContainer::kOriginFadeInDuration);
   opacity_keyframe->set_tween_type(kTweenType);
   opacity_sequence->AddElement(std::move(opacity_keyframe));
 
@@ -84,16 +95,11 @@
 
   label_layer->GetAnimator()->StartAnimation(opacity_sequence.release());
 
-  base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE,
-      base::BindOnce(&WebAppOriginText::AnimationComplete,
-                     weak_factory_.GetWeakPtr()),
-      WebAppToolbarButtonContainer::OriginTotalDuration());
-
   NotifyAccessibilityEvent(ax::mojom::Event::kValueChanged, true);
 }
 
-void WebAppOriginText::AnimationComplete() {
+void WebAppOriginText::OnLayerAnimationEnded(
+    ui::LayerAnimationSequence* sequence) {
   SetVisible(false);
 }
 
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_origin_text.h b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_origin_text.h
index 846d6dd..2359436 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_origin_text.h
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_origin_text.h
@@ -8,6 +8,7 @@
 #include "base/memory/weak_ptr.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/base/metadata/metadata_header_macros.h"
+#include "ui/compositor/layer_animation_observer.h"
 #include "ui/views/view.h"
 
 class Browser;
@@ -17,7 +18,7 @@
 }
 
 // A URL's origin text with a fade in/out animation.
-class WebAppOriginText : public views::View {
+class WebAppOriginText : public views::View, public ui::LayerAnimationObserver {
  public:
   METADATA_HEADER(WebAppOriginText);
   explicit WebAppOriginText(Browser* browser);
@@ -25,7 +26,8 @@
   WebAppOriginText& operator=(const WebAppOriginText&) = delete;
   ~WebAppOriginText() override;
 
-  void SetTextColor(SkColor color);
+  // If `show_text` is true, the text will be shown for a few seconds.
+  void SetTextColor(SkColor color, bool show_text_);
 
   // Fades the text in and out.
   void StartFadeAnimation();
@@ -33,12 +35,17 @@
   // views::View:
   void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
 
+  // ui::LayerAnimationObserver:
+  void OnLayerAnimationStarted(ui::LayerAnimationSequence* sequence) override {}
+  void OnLayerAnimationEnded(ui::LayerAnimationSequence* sequence) override;
+  void OnLayerAnimationAborted(ui::LayerAnimationSequence* sequence) override {}
+  void OnLayerAnimationScheduled(
+      ui::LayerAnimationSequence* sequence) override {}
+
  private:
   // Owned by the views hierarchy.
   views::Label* label_ = nullptr;
 
-  void AnimationComplete();
-
   base::WeakPtrFactory<WebAppOriginText> weak_factory_{this};
 };
 
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.cc b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.cc
index baeb174..3d21fb9 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.cc
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.cc
@@ -164,14 +164,16 @@
 }
 
 void WebAppToolbarButtonContainer::SetColors(SkColor foreground_color,
-                                             SkColor background_color) {
+                                             SkColor background_color,
+                                             bool color_changed) {
   foreground_color_ = foreground_color;
   background_color_ = background_color;
-  if (web_app_origin_text_)
-    web_app_origin_text_->SetTextColor(foreground_color_);
-  if (window_controls_overlay_toggle_button_) {
-    window_controls_overlay_toggle_button_->SetColor(foreground_color_);
+  if (web_app_origin_text_) {
+    web_app_origin_text_->SetTextColor(foreground_color_,
+                                       /*show_text=*/color_changed);
   }
+  if (window_controls_overlay_toggle_button_)
+    window_controls_overlay_toggle_button_->SetColor(foreground_color_);
 
   if (content_settings_container_)
     content_settings_container_->SetIconColor(foreground_color_);
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
index 1fbf4f17..a3698a53 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
@@ -57,7 +57,9 @@
 
   void UpdateStatusIconsVisibility();
 
-  void SetColors(SkColor foreground_color, SkColor background_color);
+  void SetColors(SkColor foreground_color,
+                 SkColor background_color,
+                 bool color_changed);
 
   views::FlexRule GetFlexRule() const;
 
diff --git a/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc
index d70e9bc..e5bb0b25 100644
--- a/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc
@@ -6,7 +6,6 @@
 
 #include <memory>
 
-#include "base/feature_list.h"
 #include "base/no_destructor.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
@@ -68,7 +67,7 @@
   register_config(std::make_unique<HelpAppUntrustedUIConfig>());
   register_config(
       std::make_unique<chromeos::HelpAppKidsMagazineUntrustedUIConfig>());
-  if (base::FeatureList::IsEnabled(ash::features::kProjector))
+  if (ash::features::IsProjectorEnabled())
     register_config(std::make_unique<chromeos::UntrustedProjectorUIConfig>());
 #if !defined(OFFICIAL_BUILD)
   register_config(
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
index f153f25..cc66a93b 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -144,7 +144,6 @@
 #include "chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_ui.h"
 #include "chrome/browser/ui/webui/system_info_ui.h"
 #include "chrome/browser/ui/webui/tab_search/tab_search_ui.h"
-#include "chrome/browser/ui/webui/web_footer_experiment_ui.h"
 #include "media/base/media_switches.h"
 #endif  // defined(OS_ANDROID)
 
@@ -713,8 +712,6 @@
     return &NewWebUI<SyncFileSystemInternalsUI>;
   if (url.host_piece() == chrome::kChromeUISystemInfoHost)
     return &NewWebUI<SystemInfoUI>;
-  if (url.host_piece() == chrome::kChromeUIWebFooterExperimentHost)
-    return &NewWebUI<WebFooterExperimentUI>;
   // Inline login UI is available on all platforms except Android.
   if (url.host_piece() == chrome::kChromeUIChromeSigninHost)
     return &NewWebUI<InlineLoginUI>;
@@ -850,7 +847,7 @@
       !profile->IsOffTheRecord()) {
     return &NewWebUI<nearby_share::NearbyShareDialogUI>;
   }
-  if (base::FeatureList::IsEnabled(ash::features::kProjector) &&
+  if (ash::features::IsProjectorEnabled() &&
       url.host_piece() == chromeos::kChromeUIProjectorAppHost) {
     return &NewWebUI<chromeos::TrustedProjectorUI>;
   }
diff --git a/chrome/browser/ui/webui/chromeos/projector/selfie_cam_bubble_manager.cc b/chrome/browser/ui/webui/chromeos/projector/selfie_cam_bubble_manager.cc
index 4e3d26b7..df677ad 100644
--- a/chrome/browser/ui/webui/chromeos/projector/selfie_cam_bubble_manager.cc
+++ b/chrome/browser/ui/webui/chromeos/projector/selfie_cam_bubble_manager.cc
@@ -53,8 +53,6 @@
 // Margin of the bubble with respect to the context window.
 constexpr int kMinAnchorMarginDip = 15;
 
-constexpr char kSelfieCamResource[] = "selfie_cam/selfie_cam.html";
-
 std::unique_ptr<views::MdTextButton> BuildButton(
     views::Button::PressedCallback callback,
     const int tooltip_text_id,
@@ -288,12 +286,9 @@
   if (IsVisible())
     return;
 
-  std::string selfie_cam_url =
-      std::string(chromeos::kChromeUITrustedProjectorAppUrl) +
-      kSelfieCamResource;
-
   auto contents_wrapper = std::make_unique<SelfieCamBubbleContentsWrapper>(
-      GURL(selfie_cam_url), profile, IDS_SELFIE_CAM_TITLE);
+      GURL(chromeos::kChromeUITrustedProjectorSelfieCamUrl), profile,
+      IDS_SELFIE_CAM_TITLE);
   // Need to reload the web contents here because the view isn't visible unless
   // ShowUI is called from the JS side.  By reloading, we trigger the JS to
   // eventually call ShowUI().
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index 5f2738f..0c5fd2d 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -702,8 +702,8 @@
       ResetSettingsHandler::ShouldShowResetProfileBanner(profile));
   bool is_reset_shortcuts_feature_enabled = false;
 #if defined(OS_WIN)
-  is_reset_shortcuts_feature_enabled =
-      base::FeatureList::IsEnabled(safe_browsing::kResetShortcutsFeature);
+  // TODO(crbug/1234599): Remove this flag from the JS.
+  is_reset_shortcuts_feature_enabled = true;
 #endif
   html_source->AddBoolean("showExplanationWithBulletPoints",
                           is_reset_shortcuts_feature_enabled);
@@ -1608,6 +1608,10 @@
   static constexpr webui::LocalizedString kLocalizedStrings[] = {
       {"privacyReviewLabel", IDS_SETTINGS_PRIVACY_REVIEW_LABEL},
       {"privacyReviewSublabel", IDS_SETTINGS_PRIVACY_REVIEW_SUBLABEL},
+      {"privacyReviewPromoTitle", IDS_SETTINGS_PRIVACY_REVIEW_PROMO_TITLE},
+      {"privacyReviewPromoBody", IDS_SETTINGS_PRIVACY_REVIEW_PROMO_BODY},
+      {"privacyReviewPromoStartButton",
+       IDS_SETTINGS_PRIVACY_REVIEW_PROMO_START_BUTTON},
       {"privacyReviewNextButton", IDS_SETTINGS_PRIVACY_REVIEW_NEXT_BUTTON},
       {"privacyReviewFeatureDescriptionHeader",
        IDS_SETTINGS_PRIVACY_REVIEW_FEATURE_DESCRIPTION_HEADER},
diff --git a/chrome/browser/ui/webui/web_footer_experiment_ui.cc b/chrome/browser/ui/webui/web_footer_experiment_ui.cc
deleted file mode 100644
index 8c6bc41..0000000
--- a/chrome/browser/ui/webui/web_footer_experiment_ui.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/webui/web_footer_experiment_ui.h"
-
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/webui/managed_ui_handler.h"
-#include "chrome/browser/ui/webui/theme_source.h"
-#include "chrome/common/webui_url_constants.h"
-#include "chrome/grit/browser_resources.h"
-#include "content/public/browser/web_ui_data_source.h"
-
-WebFooterExperimentUI::WebFooterExperimentUI(content::WebUI* web_ui)
-    : WebUIController(web_ui) {
-  Profile* profile = Profile::FromWebUI(web_ui);
-
-  content::WebUIDataSource* source = content::WebUIDataSource::Create(
-      chrome::kChromeUIWebFooterExperimentHost);
-  source->AddResourcePath("index.html", IDR_WEB_FOOTER_EXPERIMENT_HTML);
-  source->SetDefaultResource(IDR_WEB_FOOTER_EXPERIMENT_HTML);
-  ManagedUIHandler::Initialize(web_ui, source);
-  content::WebUIDataSource::Add(profile, source);
-}
-
-WebFooterExperimentUI::~WebFooterExperimentUI() = default;
diff --git a/chrome/browser/ui/webui/web_footer_experiment_ui.h b/chrome/browser/ui/webui/web_footer_experiment_ui.h
deleted file mode 100644
index 7dda354b..0000000
--- a/chrome/browser/ui/webui/web_footer_experiment_ui.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_WEBUI_WEB_FOOTER_EXPERIMENT_UI_H_
-#define CHROME_BROWSER_UI_WEBUI_WEB_FOOTER_EXPERIMENT_UI_H_
-
-#include "base/macros.h"
-#include "content/public/browser/web_ui_controller.h"
-
-class WebFooterExperimentUI : public content::WebUIController {
- public:
-  explicit WebFooterExperimentUI(content::WebUI* web_ui);
-  ~WebFooterExperimentUI() override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(WebFooterExperimentUI);
-};
-
-#endif  // CHROME_BROWSER_UI_WEBUI_WEB_FOOTER_EXPERIMENT_UI_H_
diff --git a/chrome/browser/web_applications/system_web_apps/system_web_app_data.proto b/chrome/browser/web_applications/system_web_apps/system_web_app_data.proto
index ee0cd4d..bf3b5aa 100644
--- a/chrome/browser/web_applications/system_web_apps/system_web_app_data.proto
+++ b/chrome/browser/web_applications/system_web_apps/system_web_app_data.proto
@@ -30,6 +30,7 @@
     SHIMLESS_RMA = 17;
     DEMO_MODE = 18;
     OS_FEEDBACK = 19;
+    PROJECTOR = 20;
   };
 
   optional SystemAppType system_app_type = 1;
diff --git a/chrome/browser/web_applications/system_web_apps/system_web_app_manager.cc b/chrome/browser/web_applications/system_web_apps/system_web_app_manager.cc
index 0bd22de..fe48b16 100644
--- a/chrome/browser/web_applications/system_web_apps/system_web_app_manager.cc
+++ b/chrome/browser/web_applications/system_web_apps/system_web_app_manager.cc
@@ -75,6 +75,7 @@
 #include "chrome/browser/ash/web_applications/os_settings_web_app_info.h"
 #include "chrome/browser/ash/web_applications/personalization_app/personalization_app_info.h"
 #include "chrome/browser/ash/web_applications/print_management_web_app_info.h"
+#include "chrome/browser/ash/web_applications/projector_system_web_app_info.h"
 #include "chrome/browser/ash/web_applications/scanning_system_web_app_info.h"
 #include "chrome/browser/ash/web_applications/shimless_rma_system_web_app_info.h"
 #include "chrome/browser/ash/web_applications/shortcut_customization_system_web_app_info.h"
@@ -136,6 +137,8 @@
   info_vec.emplace_back(std::make_unique<OSFeedbackAppDelegate>(profile));
   info_vec.emplace_back(
       std::make_unique<FileManagerSystemAppDelegate>(profile));
+  info_vec.emplace_back(
+      std::make_unique<ProjectorSystemWebAppDelegate>(profile));
 
 #if !defined(OFFICIAL_BUILD)
   info_vec.emplace_back(std::make_unique<TelemetrySystemAppDelegate>(profile));
diff --git a/chrome/browser/web_applications/system_web_apps/system_web_app_types.h b/chrome/browser/web_applications/system_web_apps/system_web_app_types.h
index 0373c81..d45fb20 100644
--- a/chrome/browser/web_applications/system_web_apps/system_web_app_types.h
+++ b/chrome/browser/web_applications/system_web_apps/system_web_app_types.h
@@ -70,6 +70,18 @@
   // contact: cros-telemetry@google.com
   OS_FEEDBACK = 19,
 
+  // Projector (go/projector-player-dd) aims to make it simple for teachers and
+  // students to record and share instructional videos on a Chromebook. This app
+  // enables teachers to create a library of custom-tailored instructional
+  // content that students can search and view at home.
+  //
+  // Source: //chromeos/components/projector_app/
+  // Contact: cros-projector@google.com
+  // Buganizer component: b/components/1080013
+  // This app is only included in Chrome-branded builds. Non-official builds
+  // will have a mock page.
+  PROJECTOR = 20,
+
   // When adding a new System App, remember to:
   //
   // 1. Add a corresponding histogram suffix in WebAppSystemAppInternalName
@@ -105,7 +117,7 @@
   //
   // 7. Have one of System Web App Platform owners review the CL.
   //    See: //chromeos/components/system_apps/PLATFORM_OWNERS
-  kMaxValue = OS_FEEDBACK
+  kMaxValue = PROJECTOR
 };
 
 }  // namespace web_app
diff --git a/chrome/browser/win/conflicts/module_info_util.cc b/chrome/browser/win/conflicts/module_info_util.cc
index 885ec37..5c35771b 100644
--- a/chrome/browser/win/conflicts/module_info_util.cc
+++ b/chrome/browser/win/conflicts/module_info_util.cc
@@ -24,64 +24,34 @@
 #include "base/win/pe_image_reader.h"
 #include "base/win/scoped_handle.h"
 #include "base/win/wincrypt_shim.h"
+#include "crypto/scoped_capi_types.h"
 
 // This must be after wincrypt and wintrust.
 #include <mscat.h>
 
 namespace {
 
-// Helper for scoped tracking an HCERTSTORE.
-struct ScopedHCERTSTORETraits {
-  static HCERTSTORE InvalidValue() { return nullptr; }
-  static void Free(HCERTSTORE store) { ::CertCloseStore(store, 0); }
-};
-using ScopedHCERTSTORE =
-    base::ScopedGeneric<HCERTSTORE, ScopedHCERTSTORETraits>;
-
-// Helper for scoped tracking an HCRYPTMSG.
-struct ScopedHCRYPTMSGTraits {
-  static HCRYPTMSG InvalidValue() { return nullptr; }
-  static void Free(HCRYPTMSG message) { ::CryptMsgClose(message); }
-};
-using ScopedHCRYPTMSG = base::ScopedGeneric<HCRYPTMSG, ScopedHCRYPTMSGTraits>;
-
-// Helper for scoped tracking an PCCERT_CONTEXT.
-struct ScopedPCCERT_CONTEXTTraits {
-  static PCCERT_CONTEXT InvalidValue() { return nullptr; }
-  static void Free(PCCERT_CONTEXT context) {
-    ::CertFreeCertificateContext(context);
-  }
-};
-using ScopedPCCERT_CONTEXT =
-    base::ScopedGeneric<PCCERT_CONTEXT, ScopedPCCERT_CONTEXTTraits>;
-
 // Returns the "Subject" field from the digital signature in the provided
 // binary, if any is present. Returns an empty string on failure.
 std::u16string GetSubjectNameInFile(const base::FilePath& filename) {
-  ScopedHCERTSTORE store;
-  ScopedHCRYPTMSG message;
-
   // Find the crypto message for this filename.
-  {
-    HCERTSTORE temp_store = nullptr;
-    HCRYPTMSG temp_message = nullptr;
-    bool result =
-        !!CryptQueryObject(CERT_QUERY_OBJECT_FILE, filename.value().c_str(),
-                           CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED,
-                           CERT_QUERY_FORMAT_FLAG_BINARY, 0, nullptr, nullptr,
-                           nullptr, &temp_store, &temp_message, nullptr);
-    store.reset(temp_store);
-    message.reset(temp_message);
-    if (!result)
-      return std::u16string();
+  crypto::ScopedHCERTSTORE store;
+  crypto::ScopedHCRYPTMSG message;
+  if (!CryptQueryObject(
+          CERT_QUERY_OBJECT_FILE, filename.value().c_str(),
+          CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED,
+          CERT_QUERY_FORMAT_FLAG_BINARY, 0, nullptr, nullptr, nullptr,
+          crypto::ScopedHCERTSTORE::Receiver(store).get(),
+          crypto::ScopedHCRYPTMSG::Receiver(message).get(), nullptr)) {
+    return std::u16string();
   }
 
   // Determine the size of the signer info data.
   DWORD signer_info_size = 0;
-  bool result = !!CryptMsgGetParam(message.get(), CMSG_SIGNER_INFO_PARAM, 0,
-                                   nullptr, &signer_info_size);
-  if (!result)
+  if (!CryptMsgGetParam(message.get(), CMSG_SIGNER_INFO_PARAM, 0, nullptr,
+                        &signer_info_size)) {
     return std::u16string();
+  }
 
   // Allocate enough space to hold the signer info.
   std::unique_ptr<BYTE[]> signer_info_buffer(new BYTE[signer_info_size]);
@@ -89,20 +59,20 @@
       reinterpret_cast<CMSG_SIGNER_INFO*>(signer_info_buffer.get());
 
   // Obtain the signer info.
-  result = !!CryptMsgGetParam(message.get(), CMSG_SIGNER_INFO_PARAM, 0,
-                              signer_info, &signer_info_size);
-  if (!result)
+  if (!CryptMsgGetParam(message.get(), CMSG_SIGNER_INFO_PARAM, 0, signer_info,
+                        &signer_info_size)) {
     return std::u16string();
+  }
 
   // Search for the signer certificate.
   CERT_INFO CertInfo = {0};
   CertInfo.Issuer = signer_info->Issuer;
   CertInfo.SerialNumber = signer_info->SerialNumber;
 
-  ScopedPCCERT_CONTEXT cert_context(CertFindCertificateInStore(
+  crypto::ScopedPCCERT_CONTEXT cert_context(CertFindCertificateInStore(
       store.get(), X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0,
       CERT_FIND_SUBJECT_CERT, &CertInfo, nullptr));
-  if (!cert_context.is_valid())
+  if (!cert_context)
     return std::u16string();
 
   // Determine the size of the Subject name.
@@ -116,9 +86,9 @@
   subject_name.resize(subject_name_size);
 
   // Get subject name.
-  if (!(CertGetNameString(cert_context.get(), CERT_NAME_SIMPLE_DISPLAY_TYPE, 0,
-                          nullptr, const_cast<LPWSTR>(subject_name.c_str()),
-                          subject_name_size))) {
+  if (!CertGetNameString(cert_context.get(), CERT_NAME_SIMPLE_DISPLAY_TYPE, 0,
+                         nullptr, const_cast<LPWSTR>(subject_name.c_str()),
+                         subject_name_size)) {
     return std::u16string();
   }
 
diff --git a/chrome/chrome_cleaner/executables/chrome_cleaner_main.cc b/chrome/chrome_cleaner/executables/chrome_cleaner_main.cc
index 24d24cd..16636b84 100644
--- a/chrome/chrome_cleaner/executables/chrome_cleaner_main.cc
+++ b/chrome/chrome_cleaner/executables/chrome_cleaner_main.cc
@@ -127,11 +127,9 @@
       std::make_unique<chrome_cleaner::SystemReportComponent>(json_parser,
                                                               shortcut_parser));
 
-  if (command_line->HasSwitch(chrome_cleaner::kResetShortcutsSwitch)) {
-    main_controller->AddComponent(
-        std::make_unique<chrome_cleaner::ResetShortcutsComponent>(
-            shortcut_parser));
-  }
+  main_controller->AddComponent(
+      std::make_unique<chrome_cleaner::ResetShortcutsComponent>(
+          shortcut_parser));
 }
 
 void SendLogsToSafeBrowsing(chrome_cleaner::ResultCode exit_code,
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
index 99d1880..b8bedff4 100644
--- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc
@@ -189,9 +189,6 @@
 const char kChromeUIUserActionsHost[] = "user-actions";
 const char kChromeUIVersionHost[] = "version";
 const char kChromeUIVersionURL[] = "chrome://version/";
-const char kChromeUIWebFooterExperimentHost[] = "web-footer-experiment";
-const char kChromeUIWebFooterExperimentURL[] =
-    "chrome://web-footer-experiment/";
 const char kChromeUIWelcomeHost[] = "welcome";
 const char kChromeUIWelcomeURL[] = "chrome://welcome/";
 const char kChromeUIWhatsNewHost[] = "whats-new";
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
index 0c8fe43..5475ae9e 100644
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -186,8 +186,6 @@
 extern const char kChromeUIUserActionsHost[];
 extern const char kChromeUIVersionHost[];
 extern const char kChromeUIVersionURL[];
-extern const char kChromeUIWebFooterExperimentHost[];
-extern const char kChromeUIWebFooterExperimentURL[];
 extern const char kChromeUIWelcomeHost[];
 extern const char kChromeUIWelcomeURL[];
 extern const char kChromeUIWhatsNewHost[];
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index ee23366..b8853cf 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -258,7 +258,6 @@
     "//components/captive_portal/core:test_support",
     "//components/consent_auditor:test_support",
     "//components/content_settings/core/browser",
-    "//components/crash/core/app",
     "//components/domain_reliability",
     "//components/federated_learning",
     "//components/find_in_page",
@@ -537,6 +536,10 @@
     ]
   }
 
+  if (!is_fuchsia) {
+    public_deps += [ "//components/crash/core/app" ]
+  }
+
   if (use_aura) {
     sources += [
       "base/test_browser_window_aura.cc",
@@ -990,7 +993,7 @@
   }
 }
 
-if (!is_android) {
+if (!is_android && !is_fuchsia) {
   test("browser_tests") {
     use_xvfb = use_xvfb_in_this_config
 
@@ -1516,6 +1519,7 @@
       "../browser/interest_group/interest_group_permissions_browsertest.cc",
       "../browser/invalidation/profile_invalidation_provider_factory_browsertest.cc",
       "../browser/l10n_util_browsertest.cc",
+      "../browser/language/translate_frame_binder_browsertest.cc",
       "../browser/lazyload/lazyload_browsertest.cc",
       "../browser/lifetime/browser_close_manager_browsertest.cc",
       "../browser/lifetime/browser_shutdown_browsertest.cc",
@@ -3781,6 +3785,10 @@
         "../browser/printing/print_preview_dialog_controller_browsertest.cc",
         "../browser/printing/print_preview_pdf_generated_browsertest.cc",
         "../browser/printing/pwg_raster_converter_browsertest.cc",
+        "../browser/printing/test_print_preview_dialog_cloned_observer.cc",
+        "../browser/printing/test_print_preview_dialog_cloned_observer.h",
+        "../browser/printing/test_print_view_manager_for_request_preview.cc",
+        "../browser/printing/test_print_view_manager_for_request_preview.h",
         "../browser/ui/webui/print_preview/print_preview_ui_browsertest.cc",
       ]
       if (!is_mac && !is_chromeos) {
@@ -4172,7 +4180,9 @@
   }
 }
 
-performance_test_suite_template("performance_test_suite") {
+if (!is_fuchsia) {
+  performance_test_suite_template("performance_test_suite") {
+  }
 }
 
 if (is_android) {
@@ -5334,6 +5344,7 @@
 
   if (enable_dice_support) {
     sources += [
+      "../browser/password_manager/multi_profile_credentials_filter_unittest.cc",
       "../browser/signin/dice_response_handler_unittest.cc",
       "../browser/signin/dice_signed_in_profile_creator_unittest.cc",
       "../browser/signin/dice_tab_helper_unittest.cc",
@@ -5558,7 +5569,6 @@
       # GCMDriverAndroid is not yet implemented.
       "../browser/gcm/gcm_profile_service_unittest.cc",
       "../browser/hid/hid_chooser_context_unittest.cc",
-      "../browser/importer/firefox_profile_lock_unittest.cc",
       "../browser/importer/profile_writer_unittest.cc",
       "../browser/lifetime/application_lifetime_unittest.cc",
       "../browser/lookalikes/lookalike_url_navigation_throttle_unittest.cc",
@@ -5833,7 +5843,6 @@
       # No service process (which also requires multiprocess lock).
       "../common/importer/mock_importer_bridge.cc",
       "../common/importer/mock_importer_bridge.h",
-      "../common/multi_process_lock_unittest.cc",
       "../renderer/searchbox/searchbox_unittest.cc",
       "../test/base/browser_with_test_window_test.cc",
       "../test/base/browser_with_test_window_test.h",
@@ -5859,6 +5868,16 @@
       # Android uses a different way of showing browser windows.
       "../browser/optimization_guide/optimization_guide_tab_url_provider_unittest.cc",
     ]
+    if (!is_fuchsia) {
+      sources += [
+        # Fuchsia does not need real file lock as the filesystem is not shared
+        # across components.
+        "../browser/importer/firefox_profile_lock_unittest.cc",
+
+        # Fuchsia does not currently support the service process.
+        "../common/multi_process_lock_unittest.cc",
+      ]
+    }
     if (is_posix) {
       sources += [ "../browser/process_singleton_posix_unittest.cc" ]
     }
@@ -6965,7 +6984,7 @@
     ]
   }
 
-  if (is_linux || is_chromeos || is_mac || is_win) {
+  if (is_linux || is_chromeos || is_mac || is_win || is_fuchsia) {
     sources += [
       "../browser/enterprise/connectors/file_system/access_token_fetcher_unittest.cc",
       "../browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc",
@@ -7256,7 +7275,6 @@
       "../browser/enterprise/remote_commands/clear_browsing_data_job_unittest.cc",
       "../browser/media/webrtc/native_desktop_media_list_unittest.cc",
       "../browser/metrics/upgrade_metrics_provider_unittest.cc",
-      "../browser/password_manager/multi_profile_credentials_filter_unittest.cc",
       "../browser/policy/cbcm_invalidations_initializer_unittest.cc",
       "../browser/policy/chrome_browser_cloud_management_register_watcher_unittest.cc",
       "../browser/profiles/profile_activity_metrics_recorder_unittest.cc",
@@ -7820,7 +7838,9 @@
       }
     }
   }
+}
 
+if (!is_android && !is_fuchsia) {
   test("interactive_ui_tests") {
     use_xvfb = use_xvfb_in_this_config
 
@@ -8396,7 +8416,7 @@
   }
 }
 
-if (!is_android) {
+if (!is_android && !is_fuchsia) {
   # Everything needed to build/copy to run the performance_browser_tests isolate.
   # See: //testing/buildbot/gn_isolate_map.pyl
   group("performance_browser_tests") {
@@ -8615,7 +8635,7 @@
   }
 }
 
-if (!is_android) {
+if (!is_android && !is_fuchsia) {
   test("sync_integration_tests") {
     use_xvfb = use_xvfb_in_this_config
 
diff --git a/chrome/test/data/pdf/BUILD.gn b/chrome/test/data/pdf/BUILD.gn
index a5ad1130..7497572 100644
--- a/chrome/test/data/pdf/BUILD.gn
+++ b/chrome/test/data/pdf/BUILD.gn
@@ -139,7 +139,7 @@
 js_library("navigator_test") {
   deps = [
     ":test_util",
-    "../webui:test_browser_proxy.m",
+    "../webui:test_browser_proxy",
     "//chrome/browser/resources/pdf:pdf_viewer_wrapper",
   ]
   externs_list = [ "$externs_path/test.js" ]
diff --git a/chrome/test/data/pdf/navigator_test.js b/chrome/test/data/pdf/navigator_test.js
index f61401cb..42123fb0 100644
--- a/chrome/test/data/pdf/navigator_test.js
+++ b/chrome/test/data/pdf/navigator_test.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/_test_resources/webui/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/_test_resources/webui/test_browser_proxy.js';
 import {NavigatorDelegate, OpenPdfParamsParser, PdfNavigator, PDFScriptingAPI, WindowOpenDisposition} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';
 
 import {getZoomableViewport, MockDocumentDimensions, MockElement, MockSizer, MockViewportChangedCallback} from './test_util.js';
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json
index 467d9da..3ad7884 100644
--- a/chrome/test/data/policy/policy_test_cases.json
+++ b/chrome/test/data/policy/policy_test_cases.json
@@ -15589,5 +15589,41 @@
         }
       }
     ]
+  },
+  "EnhancedNetworkVoicesInSelectToSpeakAllowed": {
+    "os": [
+      "chromeos_ash"
+    ],
+    "can_be_recommended": true,
+    "policy_pref_mapping_tests": [
+      {
+        "policies": {
+          "EnhancedNetworkVoicesInSelectToSpeakAllowed": true
+        },
+        "prefs": {
+          "settings.a11y.enhanced_network_voices_in_select_to_speak_allowed": {
+            "value": true
+          }
+        }
+      },
+      {
+        "policies": {
+          "EnhancedNetworkVoicesInSelectToSpeakAllowed": false
+        },
+        "prefs": {
+          "settings.a11y.enhanced_network_voices_in_select_to_speak_allowed": {
+            "value": false
+          }
+        }
+      },
+      {
+        "policies": {},
+        "prefs": {
+          "settings.a11y.enhanced_network_voices_in_select_to_speak_allowed": {
+            "default_value": true
+          }
+        }
+      }
+    ]
   }
 }
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index 25187dd3..d9be9a7 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -45,7 +45,6 @@
     data = [
       "$root_gen_dir/chrome/test/data/webui/fake_chrome_event.m.js",
       "$root_gen_dir/chrome/test/data/webui/mock_controller.m.js",
-      "$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js",
       "$root_gen_dir/chrome/test/data/webui/test_store.m.js",
       "$root_gen_dir/chrome/test/data/webui/test_util.m.js",
     ]
@@ -68,7 +67,6 @@
     ]
 
     data = [
-      "$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js",
       "$root_gen_dir/chrome/test/data/webui/test_store.m.js",
       "$root_gen_dir/chrome/test/data/webui/test_util.m.js",
       "mojo_webui_test_support.js",
@@ -149,8 +147,6 @@
           [ "settings/chromeos/a11y/os_settings_accessibility_v3_test.js" ]
     }
 
-    extra_js_files = [ "test_browser_proxy.js" ]
-
     if (is_chromeos_ash || is_win) {
       sources += [ "inline_login/inline_login_browsertest.js" ]
       deps += [ "//build:chromeos_buildflags" ]
@@ -217,7 +213,6 @@
       "$root_gen_dir/chrome/test/data/webui/settings/settings_toggle_button_tests.js",
       "$root_gen_dir/chrome/test/data/webui/settings/route_tests.js",
       "$root_gen_dir/chrome/test/data/webui/signin/profile_card_menu_test.js",
-      "$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js",
       "$root_gen_dir/chrome/test/data/webui/test_store.m.js",
       "$root_gen_dir/chrome/test/data/webui/test_util.m.js",
       "$root_gen_dir/ui/webui/resources/js/load_time_data.js",
@@ -501,7 +496,6 @@
     ]
 
     data = [
-      "$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js",
       "$root_gen_dir/chrome/test/data/webui/test_store.m.js",
       "$root_gen_dir/chrome/test/data/webui/test_util.m.js",
     ]
@@ -542,7 +536,6 @@
     "fake_chrome_event.js",
     "mock_controller.js",
     "mock_timer.js",
-    "test_browser_proxy.js",
     "test_store.js",
     "test_util.js",
   ]
@@ -592,7 +585,7 @@
     ":chai_assert",
     ":fake_chrome_event.m",
     ":mock_timer.m",
-    ":test_browser_proxy.m",
+    ":test_browser_proxy",
     ":test_plural_string_proxy",
     ":test_util.m",
   ]
@@ -627,15 +620,13 @@
   externs_list = [ "//third_party/chaijs/externs/chai-3.5.js" ]
 }
 
-js_library("test_browser_proxy.m") {
-  sources = [ "$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js" ]
+js_library("test_browser_proxy") {
   deps = [ "//ui/webui/resources/js:promise_resolver.m" ]
-  extra_deps = [ ":modulize_local" ]
 }
 
 js_library("test_plural_string_proxy") {
   deps = [
-    ":test_browser_proxy.m",
+    ":test_browser_proxy",
     "//ui/webui/resources/js:plural_string_proxy",
   ]
 }
diff --git a/chrome/test/data/webui/bluetooth_internals/test_utils.js b/chrome/test/data/webui/bluetooth_internals/test_utils.js
index b370ce2a..39109e5f 100644
--- a/chrome/test/data/webui/bluetooth_internals/test_utils.js
+++ b/chrome/test/data/webui/bluetooth_internals/test_utils.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {assert} from 'chrome://resources/js/assert.m.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /**
  * A mojom.BluetoothInternalsHandler for the chrome://bluetooth-internals
diff --git a/chrome/test/data/webui/bookmarks/test_browser_proxy.js b/chrome/test/data/webui/bookmarks/test_browser_proxy.js
index 285d356..29d00d3b 100644
--- a/chrome/test/data/webui/bookmarks/test_browser_proxy.js
+++ b/chrome/test/data/webui/bookmarks/test_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {IncognitoAvailability} from 'chrome://bookmarks/bookmarks.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 /**
  * Test version of the bookmarks browser proxy.
diff --git a/chrome/test/data/webui/chromeos/account_manager/BUILD.gn b/chrome/test/data/webui/chromeos/account_manager/BUILD.gn
index 689e70a..1471255 100644
--- a/chrome/test/data/webui/chromeos/account_manager/BUILD.gn
+++ b/chrome/test/data/webui/chromeos/account_manager/BUILD.gn
@@ -29,7 +29,7 @@
 
 js_library("test_account_manager_browser_proxy") {
   deps = [
-    "../..:test_browser_proxy.m",
+    "../..:test_browser_proxy",
     "//chrome/browser/resources/chromeos/account_manager:account_manager_browser_proxy",
   ]
 }
diff --git a/chrome/test/data/webui/chromeos/account_manager/test_account_manager_browser_proxy.js b/chrome/test/data/webui/chromeos/account_manager/test_account_manager_browser_proxy.js
index c412818..dac2821 100644
--- a/chrome/test/data/webui/chromeos/account_manager/test_account_manager_browser_proxy.js
+++ b/chrome/test/data/webui/chromeos/account_manager/test_account_manager_browser_proxy.js
@@ -4,7 +4,7 @@
 
 import {AccountManagerBrowserProxy} from 'chrome://account-migration-welcome/account_manager_browser_proxy.js';
 
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 /** @implements {AccountManagerBrowserProxy} */
 export class TestAccountManagerBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/chromeos/chromebox_for_meetings/cfm_network_settings_test.js b/chrome/test/data/webui/chromeos/chromebox_for_meetings/cfm_network_settings_test.js
index 23695f2..694d61f 100644
--- a/chrome/test/data/webui/chromeos/chromebox_for_meetings/cfm_network_settings_test.js
+++ b/chrome/test/data/webui/chromeos/chromebox_for_meetings/cfm_network_settings_test.js
@@ -9,7 +9,7 @@
 import {OncMojo} from 'chrome://resources/cr_components/chromeos/network/onc_mojo.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {FakeNetworkConfig} from 'chrome://test/chromeos/fake_network_config_mojom.m.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 /** @implements {CfmNetworkSettingsBrowserProxy} */
 export class TestCfmNetworkSettingsBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/chromeos/crostini_installer_app_test.js b/chrome/test/data/webui/chromeos/crostini_installer_app_test.js
index 4ed5ecc..93fb1cfe 100644
--- a/chrome/test/data/webui/chromeos/crostini_installer_app_test.js
+++ b/chrome/test/data/webui/chromeos/crostini_installer_app_test.js
@@ -5,7 +5,7 @@
 import 'chrome://crostini-installer/app.js';
 
 import {BrowserProxy} from 'chrome://crostini-installer/browser_proxy.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {flushTasks} from 'chrome://test/test_util.m.js';
 
 const InstallerState = crostini.mojom.InstallerState;
diff --git a/chrome/test/data/webui/chromeos/crostini_upgrader_app_test.js b/chrome/test/data/webui/chromeos/crostini_upgrader_app_test.js
index 352687b..dc32352f 100644
--- a/chrome/test/data/webui/chromeos/crostini_upgrader_app_test.js
+++ b/chrome/test/data/webui/chromeos/crostini_upgrader_app_test.js
@@ -5,7 +5,7 @@
 import 'chrome://crostini-upgrader/app.js';
 
 import {BrowserProxy} from 'chrome://crostini-upgrader/browser_proxy.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {flushTasks} from 'chrome://test/test_util.m.js';
 
 class FakePageHandler extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn b/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
index e8fdc2c4..97c9b52 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
+++ b/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
@@ -353,7 +353,7 @@
 
 js_library("test_diagnostics_browser_proxy") {
   deps = [
-    "../..:test_browser_proxy.m",
+    "../..:test_browser_proxy",
     "//ash/webui/diagnostics_ui/resources:diagnostics_browser_proxy",
   ]
 }
diff --git a/chrome/test/data/webui/chromeos/diagnostics/test_diagnostics_browser_proxy.js b/chrome/test/data/webui/chromeos/diagnostics/test_diagnostics_browser_proxy.js
index ea301786..992e130 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/test_diagnostics_browser_proxy.js
+++ b/chrome/test/data/webui/chromeos/diagnostics/test_diagnostics_browser_proxy.js
@@ -5,7 +5,7 @@
 import {DiagnosticsBrowserProxy} from 'chrome://diagnostics/diagnostics_browser_proxy.js';
 
 import {assertEquals} from '../../chai_assert.js';
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 /**
  * Test version of DiagnosticsBrowserProxy.
@@ -52,4 +52,4 @@
     assertEquals(name, 'nameServersText');
     return Promise.resolve(`Name Server${count !== 1 ? 's' : ''}`);
   }
-}
\ No newline at end of file
+}
diff --git a/chrome/test/data/webui/chromeos/edu_coexistence/edu_coexistence_test_util.js b/chrome/test/data/webui/chromeos/edu_coexistence/edu_coexistence_test_util.js
index fe907a3..13c9fb7 100644
--- a/chrome/test/data/webui/chromeos/edu_coexistence/edu_coexistence_test_util.js
+++ b/chrome/test/data/webui/chromeos/edu_coexistence/edu_coexistence_test_util.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 /** @return {!Array<string>} */
 export function getFakeAccountsList() {
diff --git a/chrome/test/data/webui/chromeos/edu_login/edu_login_test_util.js b/chrome/test/data/webui/chromeos/edu_login/edu_login_test_util.js
index cb43dd4d..db1faa2 100644
--- a/chrome/test/data/webui/chromeos/edu_login/edu_login_test_util.js
+++ b/chrome/test/data/webui/chromeos/edu_login/edu_login_test_util.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 /**
  * @param {string} email
diff --git a/chrome/test/data/webui/chromeos/internet_detail_dialog_test.js b/chrome/test/data/webui/chromeos/internet_detail_dialog_test.js
index 8c0efbd..1552717 100644
--- a/chrome/test/data/webui/chromeos/internet_detail_dialog_test.js
+++ b/chrome/test/data/webui/chromeos/internet_detail_dialog_test.js
@@ -9,7 +9,7 @@
 import {OncMojo} from 'chrome://resources/cr_components/chromeos/network/onc_mojo.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {FakeNetworkConfig} from 'chrome://test/chromeos/fake_network_config_mojom.m.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 /** @implements {InternetDetailDialogBrowserProxy} */
 export class TestInternetDetailDialogBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/chromeos/personalization_app/BUILD.gn b/chrome/test/data/webui/chromeos/personalization_app/BUILD.gn
index e5b54ae6..e643256 100644
--- a/chrome/test/data/webui/chromeos/personalization_app/BUILD.gn
+++ b/chrome/test/data/webui/chromeos/personalization_app/BUILD.gn
@@ -67,7 +67,7 @@
 js_library("test_mojo_interface_provider") {
   deps = [
     "../..:chai_assert",
-    "../..:test_browser_proxy.m",
+    "../..:test_browser_proxy",
     "//chromeos/components/personalization_app/mojom:mojom_js_library_for_compile",
   ]
 }
diff --git a/chrome/test/data/webui/chromeos/personalization_app/test_mojo_interface_provider.js b/chrome/test/data/webui/chromeos/personalization_app/test_mojo_interface_provider.js
index f5d06e7..e95e709 100644
--- a/chrome/test/data/webui/chromeos/personalization_app/test_mojo_interface_provider.js
+++ b/chrome/test/data/webui/chromeos/personalization_app/test_mojo_interface_provider.js
@@ -4,7 +4,7 @@
 
 import {unguessableTokenToString} from 'chrome://personalization/common/utils.js';
 import {assertTrue} from '../../chai_assert.js';
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 /**
  * @implements {chromeos.personalizationApp.mojom.WallpaperProviderInterface}
diff --git a/chrome/test/data/webui/chromeos/scanning/BUILD.gn b/chrome/test/data/webui/chromeos/scanning/BUILD.gn
index 85625ec6..492e0f2 100644
--- a/chrome/test/data/webui/chromeos/scanning/BUILD.gn
+++ b/chrome/test/data/webui/chromeos/scanning/BUILD.gn
@@ -161,7 +161,7 @@
 js_library("test_scanning_browser_proxy") {
   deps = [
     "../..:chai_assert",
-    "../..:test_browser_proxy.m",
+    "../..:test_browser_proxy",
     "//ash/webui/scanning/resources:scanning_browser_proxy",
   ]
 }
diff --git a/chrome/test/data/webui/chromeos/scanning/test_scanning_browser_proxy.js b/chrome/test/data/webui/chromeos/scanning/test_scanning_browser_proxy.js
index a189cc7..dc986da 100644
--- a/chrome/test/data/webui/chromeos/scanning/test_scanning_browser_proxy.js
+++ b/chrome/test/data/webui/chromeos/scanning/test_scanning_browser_proxy.js
@@ -5,7 +5,7 @@
 import {ScanningBrowserProxy, SelectedPath} from 'chrome://scanning/scanning_browser_proxy.js';
 
 import {assertEquals} from '../../chai_assert.js';
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 const EMPTY_SELECTED_PATH = {
   baseName: '',
diff --git a/chrome/test/data/webui/chromeos/shortcut_customization/fake_shortcut_provider_test.js b/chrome/test/data/webui/chromeos/shortcut_customization/fake_shortcut_provider_test.js
index 022270e..beaa81e6 100644
--- a/chrome/test/data/webui/chromeos/shortcut_customization/fake_shortcut_provider_test.js
+++ b/chrome/test/data/webui/chromeos/shortcut_customization/fake_shortcut_provider_test.js
@@ -4,9 +4,9 @@
 
 import {fakeAcceleratorConfig, fakeLayoutInfo} from 'chrome://shortcut-customization/fake_data.js';
 import {FakeShortcutProvider} from 'chrome://shortcut-customization/fake_shortcut_provider.js';
-import {AcceleratorConfig, LayoutInfoList} from 'chrome://shortcut-customization/shortcut_types.js';
+import {AcceleratorConfig, AcceleratorSource, LayoutInfoList} from 'chrome://shortcut-customization/shortcut_types.js';
 
-import {assertDeepEquals} from '../../chai_assert.js';
+import {assertDeepEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 
 export function fakeShortcutProviderTest() {
   /** @type {?FakeShortcutProvider} */
@@ -54,4 +54,16 @@
       assertDeepEquals(fakeLayoutInfo, result);
     });
   });
+
+  test('IsMutableDefaultFake', () => {
+    // TODO(jimmyxgong): Remove this test once real data is ready.
+    // AcceleratorSource.kAsh is a mutable source.
+    return provider.isMutable(AcceleratorSource.kAsh).then((result) => {
+      assertTrue(result);
+      // AcceleratorSource.kBrowser is not a mutable source
+      return provider.isMutable(AcceleratorSource.kBrowser).then((result) => {
+        assertFalse(result);
+      });
+    });
+  });
 }
diff --git a/chrome/test/data/webui/commander/BUILD.gn b/chrome/test/data/webui/commander/BUILD.gn
index d27941c7..a75e572 100644
--- a/chrome/test/data/webui/commander/BUILD.gn
+++ b/chrome/test/data/webui/commander/BUILD.gn
@@ -28,7 +28,7 @@
 
 js_library("test_commander_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/commander:browser_proxy",
   ]
 }
diff --git a/chrome/test/data/webui/commander/test_commander_browser_proxy.js b/chrome/test/data/webui/commander/test_commander_browser_proxy.js
index 3d80fc6..b0d081d 100644
--- a/chrome/test/data/webui/commander/test_commander_browser_proxy.js
+++ b/chrome/test/data/webui/commander/test_commander_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {BrowserProxy} from 'chrome://commander/browser_proxy.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {BrowserProxy} */
 export class TestCommanderBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/cr_components/BUILD.gn b/chrome/test/data/webui/cr_components/BUILD.gn
index 92a08bf1..0dab99c 100644
--- a/chrome/test/data/webui/cr_components/BUILD.gn
+++ b/chrome/test/data/webui/cr_components/BUILD.gn
@@ -34,7 +34,7 @@
 js_library("most_visited_focus_test") {
   deps = [
     ":most_visited_test_support",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "..:test_util.m",
     "//ui/webui/resources/cr_components/most_visited",
     "//ui/webui/resources/cr_components/most_visited:browser_proxy",
@@ -48,7 +48,7 @@
   deps = [
     ":most_visited_test_support",
     "..:chai_assert",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "..:test_util.m",
     "//ui/webui/resources/cr_components/most_visited",
     "//ui/webui/resources/cr_components/most_visited:browser_proxy",
diff --git a/chrome/test/data/webui/cr_components/certificate_manager_provisioning_test.js b/chrome/test/data/webui/cr_components/certificate_manager_provisioning_test.js
index 99a08b5..597a44c 100644
--- a/chrome/test/data/webui/cr_components/certificate_manager_provisioning_test.js
+++ b/chrome/test/data/webui/cr_components/certificate_manager_provisioning_test.js
@@ -13,7 +13,7 @@
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 import {eventToPromise} from '../test_util.m.js';
 
 
diff --git a/chrome/test/data/webui/cr_components/certificate_manager_test.js b/chrome/test/data/webui/cr_components/certificate_manager_test.js
index d0d7f76..3d80c4a 100644
--- a/chrome/test/data/webui/cr_components/certificate_manager_test.js
+++ b/chrome/test/data/webui/cr_components/certificate_manager_test.js
@@ -23,7 +23,7 @@
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {assertEquals, assertFalse, assertNotEquals, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 import {eventToPromise} from '../test_util.m.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/cr_components/chromeos/multidevice_setup/setup_succeeded_page_test.js b/chrome/test/data/webui/cr_components/chromeos/multidevice_setup/setup_succeeded_page_test.js
index 7b8f9c0..6a87c3a 100644
--- a/chrome/test/data/webui/cr_components/chromeos/multidevice_setup/setup_succeeded_page_test.js
+++ b/chrome/test/data/webui/cr_components/chromeos/multidevice_setup/setup_succeeded_page_test.js
@@ -6,7 +6,7 @@
 // #import 'chrome://multidevice-setup/strings.m.js';
 // #import 'chrome://resources/cr_components/chromeos/multidevice_setup/setup_succeeded_page.m.js';
 
-// #import {TestBrowserProxy} from '../../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../../test_browser_proxy.js';
 // #import {BrowserProxyImpl} from 'chrome://resources/cr_components/chromeos/multidevice_setup/multidevice_setup_browser_proxy.m.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/cr_components/customize_themes_test.js b/chrome/test/data/webui/cr_components/customize_themes_test.js
index 7df683d0..2a751c4d 100644
--- a/chrome/test/data/webui/cr_components/customize_themes_test.js
+++ b/chrome/test/data/webui/cr_components/customize_themes_test.js
@@ -11,7 +11,7 @@
 import {ThemeIconElement} from 'chrome://resources/cr_components/customize_themes/theme_icon.js';
 
 import {assertDeepEquals, assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 import {flushTasks} from '../test_util.m.js';
 
 /**
diff --git a/chrome/test/data/webui/cr_components/most_visited_focus_test.js b/chrome/test/data/webui/cr_components/most_visited_focus_test.js
index 668ccc7..9946e000 100644
--- a/chrome/test/data/webui/cr_components/most_visited_focus_test.js
+++ b/chrome/test/data/webui/cr_components/most_visited_focus_test.js
@@ -10,7 +10,7 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {TextDirection} from 'chrome://resources/mojo/mojo/public/mojom/base/text_direction.mojom-webui.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 import {eventToPromise} from '../test_util.m.js';
 
 import {$$, assertFocus, keydown} from './most_visited_test_support.js';
diff --git a/chrome/test/data/webui/cr_components/most_visited_test.js b/chrome/test/data/webui/cr_components/most_visited_test.js
index 6d733f6..af1ea31 100644
--- a/chrome/test/data/webui/cr_components/most_visited_test.js
+++ b/chrome/test/data/webui/cr_components/most_visited_test.js
@@ -14,7 +14,7 @@
 import {TextDirection} from 'chrome://resources/mojo/mojo/public/mojom/base/text_direction.mojom-webui.js';
 
 import {assertDeepEquals, assertEquals, assertFalse, assertNotEquals, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 import {eventToPromise, flushTasks} from '../test_util.m.js';
 
 import {$$, assertNotStyle, assertStyle, keydown} from './most_visited_test_support.js';
diff --git a/chrome/test/data/webui/download_shelf/test_download_shelf_api_proxy.js b/chrome/test/data/webui/download_shelf/test_download_shelf_api_proxy.js
index 286b108..41a81a3 100644
--- a/chrome/test/data/webui/download_shelf/test_download_shelf_api_proxy.js
+++ b/chrome/test/data/webui/download_shelf/test_download_shelf_api_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {DownloadItem, PageCallbackRouter, PageRemote} from 'chrome://download-shelf.top-chrome/download_shelf.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 export class TestDownloadShelfApiProxy extends TestBrowserProxy {
   constructor() {
diff --git a/chrome/test/data/webui/downloads/test_support.js b/chrome/test/data/webui/downloads/test_support.js
index 99768ae..24c44dc 100644
--- a/chrome/test/data/webui/downloads/test_support.js
+++ b/chrome/test/data/webui/downloads/test_support.js
@@ -4,7 +4,7 @@
 
 import {DangerType, PageCallbackRouter, PageHandlerInterface, PageInterface, PageRemote, States} from 'chrome://downloads/downloads.js';
 
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 export class TestDownloadsProxy {
   constructor() {
diff --git a/chrome/test/data/webui/extensions/test_kiosk_browser_proxy.js b/chrome/test/data/webui/extensions/test_kiosk_browser_proxy.js
index 3fc916f..865a702 100644
--- a/chrome/test/data/webui/extensions/test_kiosk_browser_proxy.js
+++ b/chrome/test/data/webui/extensions/test_kiosk_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {KioskBrowserProxy} */
 export class TestKioskBrowserProxy extends TestBrowserProxy {
@@ -77,4 +77,4 @@
   setDisableBailoutShortcut(disableBailout) {
     this.methodCalled('setDisableBailoutShortcut', disableBailout);
   }
-}
\ No newline at end of file
+}
diff --git a/chrome/test/data/webui/extensions/test_service.js b/chrome/test/data/webui/extensions/test_service.js
index 6001b3a..824edfd 100644
--- a/chrome/test/data/webui/extensions/test_service.js
+++ b/chrome/test/data/webui/extensions/test_service.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {FakeChromeEvent} from '../fake_chrome_event.m.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** An extensions.Service implementation to be used in tests. */
 export class TestService extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/history/history_routing_test.js b/chrome/test/data/webui/history/history_routing_test.js
index 832d595c..fdc2b540 100644
--- a/chrome/test/data/webui/history/history_routing_test.js
+++ b/chrome/test/data/webui/history/history_routing_test.js
@@ -6,7 +6,7 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
 import {TestBrowserService} from 'chrome://test/history/test_browser_service.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {flushTasks} from 'chrome://test/test_util.m.js';
 
 function createHistoryClustersBrowserProxy() {
diff --git a/chrome/test/data/webui/history/test_browser_service.js b/chrome/test/data/webui/history/test_browser_service.js
index 64d8acd..cbbac14 100644
--- a/chrome/test/data/webui/history/test_browser_service.js
+++ b/chrome/test/data/webui/history/test_browser_service.js
@@ -4,7 +4,7 @@
 
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 import {createHistoryInfo} from 'chrome://test/history/test_util.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 export class TestBrowserService extends TestBrowserProxy {
   constructor() {
diff --git a/chrome/test/data/webui/inline_login/BUILD.gn b/chrome/test/data/webui/inline_login/BUILD.gn
index 6eacbe6..e3cfbf9 100644
--- a/chrome/test/data/webui/inline_login/BUILD.gn
+++ b/chrome/test/data/webui/inline_login/BUILD.gn
@@ -52,7 +52,7 @@
 
 js_library("inline_login_test_util") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/gaia_auth_host:authenticator.m",
     "//chrome/browser/resources/inline_login:inline_login_browser_proxy",
     "//ui/webui/resources/js/cr:event_target.m",
diff --git a/chrome/test/data/webui/inline_login/inline_login_test_util.js b/chrome/test/data/webui/inline_login/inline_login_test_util.js
index f7243503..9b93dcf 100644
--- a/chrome/test/data/webui/inline_login/inline_login_test_util.js
+++ b/chrome/test/data/webui/inline_login/inline_login_test_util.js
@@ -5,7 +5,7 @@
 import {InlineLoginBrowserProxy} from 'chrome://chrome-signin/inline_login_browser_proxy.js';
 import {NativeEventTarget as EventTarget} from 'chrome://resources/js/cr/event_target.m.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @return {!Array<string>} */
 export function getFakeAccountsList() {
diff --git a/chrome/test/data/webui/media_router/BUILD.gn b/chrome/test/data/webui/media_router/BUILD.gn
index aae9c19..9eb96430 100644
--- a/chrome/test/data/webui/media_router/BUILD.gn
+++ b/chrome/test/data/webui/media_router/BUILD.gn
@@ -7,7 +7,7 @@
 js_library("cast_feedback_ui_test") {
   deps = [
     "..:chai_assert",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/media_router:cast_feedback_ui",
     "//ui/webui/resources/js:cr.m",
   ]
diff --git a/chrome/test/data/webui/media_router/cast_feedback_ui_test.js b/chrome/test/data/webui/media_router/cast_feedback_ui_test.js
index 78fa5a8d..03e155b 100644
--- a/chrome/test/data/webui/media_router/cast_feedback_ui_test.js
+++ b/chrome/test/data/webui/media_router/cast_feedback_ui_test.js
@@ -6,7 +6,7 @@
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 
 import {assertDeepEquals, assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {FeedbackUiBrowserProxy} */
 class TestFeedbackUiBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/nearby_share/BUILD.gn b/chrome/test/data/webui/nearby_share/BUILD.gn
index 89526c6..95ce32b 100644
--- a/chrome/test/data/webui/nearby_share/BUILD.gn
+++ b/chrome/test/data/webui/nearby_share/BUILD.gn
@@ -25,7 +25,7 @@
 
 js_library("fake_mojo_interfaces") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/ui/webui/nearby_share:mojom_js_library_for_compile",
   ]
 }
diff --git a/chrome/test/data/webui/nearby_share/fake_mojo_interfaces.js b/chrome/test/data/webui/nearby_share/fake_mojo_interfaces.js
index 9fbc0a5..dea6272 100644
--- a/chrome/test/data/webui/nearby_share/fake_mojo_interfaces.js
+++ b/chrome/test/data/webui/nearby_share/fake_mojo_interfaces.js
@@ -4,7 +4,7 @@
 
 /** @fileoverview Contains fake implementations of mojo interfaces. */
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /**
  * @implements {nearbyShare.mojom.ConfirmationManagerInterface}
diff --git a/chrome/test/data/webui/new_tab_page/BUILD.gn b/chrome/test/data/webui/new_tab_page/BUILD.gn
index d2b86d7..a64ea3a 100644
--- a/chrome/test/data/webui/new_tab_page/BUILD.gn
+++ b/chrome/test/data/webui/new_tab_page/BUILD.gn
@@ -35,6 +35,6 @@
 js_library("test_support") {
   deps = [
     "//chrome/browser/resources/new_tab_page",
-    "//chrome/test/data/webui:test_browser_proxy.m",
+    "//chrome/test/data/webui:test_browser_proxy",
   ]
 }
diff --git a/chrome/test/data/webui/new_tab_page/app_test.js b/chrome/test/data/webui/new_tab_page/app_test.js
index 2708ead..e4946ec 100644
--- a/chrome/test/data/webui/new_tab_page/app_test.js
+++ b/chrome/test/data/webui/new_tab_page/app_test.js
@@ -8,7 +8,7 @@
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 import {fakeMetricsPrivate, MetricsTracker} from 'chrome://test/new_tab_page/metrics_test_support.js';
 import {assertNotStyle, assertStyle, createTheme} from 'chrome://test/new_tab_page/test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise, flushTasks} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageAppTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/customize_backgrounds_test.js b/chrome/test/data/webui/new_tab_page/customize_backgrounds_test.js
index 949c9e57..9536d93 100644
--- a/chrome/test/data/webui/new_tab_page/customize_backgrounds_test.js
+++ b/chrome/test/data/webui/new_tab_page/customize_backgrounds_test.js
@@ -6,7 +6,7 @@
 
 import {BackgroundSelectionType, NewTabPageProxy, WindowProxy} from 'chrome://new-tab-page/new_tab_page.js';
 import {assertNotStyle, assertStyle} from 'chrome://test/new_tab_page/test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise, flushTasks, isVisible} from 'chrome://test/test_util.m.js';
 
 function createCollection(id = 0, label = '', url = '') {
diff --git a/chrome/test/data/webui/new_tab_page/customize_dialog_test.js b/chrome/test/data/webui/new_tab_page/customize_dialog_test.js
index 2684dcb..6160ca3 100644
--- a/chrome/test/data/webui/new_tab_page/customize_dialog_test.js
+++ b/chrome/test/data/webui/new_tab_page/customize_dialog_test.js
@@ -5,7 +5,7 @@
 import 'chrome://new-tab-page/lazy_load.js';
 
 import {BackgroundSelectionType, CustomizeDialogPage, NewTabPageProxy} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {flushTasks, waitAfterNextRender} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageCustomizeDialogTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/customize_modules_test.js b/chrome/test/data/webui/new_tab_page/customize_modules_test.js
index 969336a..6e79da9 100644
--- a/chrome/test/data/webui/new_tab_page/customize_modules_test.js
+++ b/chrome/test/data/webui/new_tab_page/customize_modules_test.js
@@ -8,7 +8,7 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {fakeMetricsPrivate, MetricsTracker} from 'chrome://test/new_tab_page/metrics_test_support.js';
 import {assertNotStyle, assertStyle} from 'chrome://test/new_tab_page/test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {isVisible} from 'chrome://test/test_util.m.js';
 
 /**
diff --git a/chrome/test/data/webui/new_tab_page/customize_shortcuts_test.js b/chrome/test/data/webui/new_tab_page/customize_shortcuts_test.js
index 46bc8fd..3080ac7 100644
--- a/chrome/test/data/webui/new_tab_page/customize_shortcuts_test.js
+++ b/chrome/test/data/webui/new_tab_page/customize_shortcuts_test.js
@@ -4,7 +4,7 @@
 
 import 'chrome://new-tab-page/lazy_load.js';
 import {NewTabPageProxy} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 suite('NewTabPageCustomizeShortcutsTest', () => {
   /** @type {!CustomizeShortcutsElement} */
diff --git a/chrome/test/data/webui/new_tab_page/doodle_share_dialog_test.js b/chrome/test/data/webui/new_tab_page/doodle_share_dialog_test.js
index 3e62292..3f0f9bf 100644
--- a/chrome/test/data/webui/new_tab_page/doodle_share_dialog_test.js
+++ b/chrome/test/data/webui/new_tab_page/doodle_share_dialog_test.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {WindowProxy} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 suite('NewTabPageDoodleShareDialogTest', () => {
   /** @type {!DoodleShareDialogElement} */
diff --git a/chrome/test/data/webui/new_tab_page/logo_test.js b/chrome/test/data/webui/new_tab_page/logo_test.js
index b6e887c..367846a 100644
--- a/chrome/test/data/webui/new_tab_page/logo_test.js
+++ b/chrome/test/data/webui/new_tab_page/logo_test.js
@@ -6,7 +6,7 @@
 import {hexColorToSkColor, skColorToRgba} from 'chrome://resources/js/color_utils.js';
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 import {assertNotStyle, assertStyle, keydown} from 'chrome://test/new_tab_page/test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise, flushTasks} from 'chrome://test/test_util.m.js';
 
 /**
diff --git a/chrome/test/data/webui/new_tab_page/middle_slot_promo_test.js b/chrome/test/data/webui/new_tab_page/middle_slot_promo_test.js
index 34829b3..369edf8 100644
--- a/chrome/test/data/webui/new_tab_page/middle_slot_promo_test.js
+++ b/chrome/test/data/webui/new_tab_page/middle_slot_promo_test.js
@@ -4,7 +4,7 @@
 
 import 'chrome://new-tab-page/lazy_load.js';
 import {$$, NewTabPageProxy, PromoBrowserCommandProxy} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise, flushTasks} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageMiddleSlotPromoTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/modules/BUILD.gn b/chrome/test/data/webui/new_tab_page/modules/BUILD.gn
index 932ef6c..1b4ac20 100644
--- a/chrome/test/data/webui/new_tab_page/modules/BUILD.gn
+++ b/chrome/test/data/webui/new_tab_page/modules/BUILD.gn
@@ -13,7 +13,7 @@
   deps = [
     "..:test_support",
     "//chrome/browser/resources/new_tab_page",
-    "//chrome/test/data/webui:test_browser_proxy.m",
+    "//chrome/test/data/webui:test_browser_proxy",
     "//chrome/test/data/webui:test_util.m",
     "//ui/webui/resources/js:load_time_data.m",
   ]
@@ -25,7 +25,7 @@
     "..:metrics_test_support",
     "..:test_support",
     "//chrome/browser/resources/new_tab_page",
-    "//chrome/test/data/webui:test_browser_proxy.m",
+    "//chrome/test/data/webui:test_browser_proxy",
   ]
   externs_list = [ "$externs_path/mocha-2.5.js" ]
 }
diff --git a/chrome/test/data/webui/new_tab_page/modules/cart/module_test.js b/chrome/test/data/webui/new_tab_page/modules/cart/module_test.js
index 717672aa..4649fd1 100644
--- a/chrome/test/data/webui/new_tab_page/modules/cart/module_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/cart/module_test.js
@@ -6,7 +6,7 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {fakeMetricsPrivate, MetricsTracker} from 'chrome://test/new_tab_page/metrics_test_support.js';
 import {assertNotStyle} from 'chrome://test/new_tab_page/test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise, flushTasks, isVisible} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageModulesChromeCartModuleTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/modules/cart_v2/module_test.js b/chrome/test/data/webui/new_tab_page/modules/cart_v2/module_test.js
index 41bf52f7..7813d1b 100644
--- a/chrome/test/data/webui/new_tab_page/modules/cart_v2/module_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/cart_v2/module_test.js
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {$$, chromeCartV2Descriptor, ChromeCartProxy} from 'chrome://new-tab-page/new_tab_page.js';
+import {$$, ChromeCartProxy, chromeCartV2Descriptor} from 'chrome://new-tab-page/new_tab_page.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {fakeMetricsPrivate, MetricsTracker} from 'chrome://test/new_tab_page/metrics_test_support.js';
 import {assertNotStyle} from 'chrome://test/new_tab_page/test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise, flushTasks, isVisible} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageModulesChromeCartModuleTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/modules/drive/module_test.js b/chrome/test/data/webui/new_tab_page/modules/drive/module_test.js
index 9c4d0ed..57cf066a 100644
--- a/chrome/test/data/webui/new_tab_page/modules/drive/module_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/drive/module_test.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {$$, driveDescriptor, DriveProxy} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {isVisible} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageModulesDriveModuleTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/modules/drive_v2/module_test.js b/chrome/test/data/webui/new_tab_page/modules/drive_v2/module_test.js
index 8801103..3fff6ca 100644
--- a/chrome/test/data/webui/new_tab_page/modules/drive_v2/module_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/drive_v2/module_test.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {$$, DriveProxy, driveV2Descriptor} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {isVisible} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageModulesDriveModuleTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/modules/dummy/module_test.js b/chrome/test/data/webui/new_tab_page/modules/dummy/module_test.js
index f7515e2..26d2e18 100644
--- a/chrome/test/data/webui/new_tab_page/modules/dummy/module_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/dummy/module_test.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {dummyDescriptor, FooProxy} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {isVisible} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageModulesDummyModuleTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/modules/module_descriptor_test.js b/chrome/test/data/webui/new_tab_page/modules/module_descriptor_test.js
index 4eac617..d6e614a 100644
--- a/chrome/test/data/webui/new_tab_page/modules/module_descriptor_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/module_descriptor_test.js
@@ -5,7 +5,7 @@
 import {ModuleDescriptor, WindowProxy} from 'chrome://new-tab-page/new_tab_page.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {fakeMetricsPrivate, MetricsTracker} from 'chrome://test/new_tab_page/metrics_test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 suite('NewTabPageModulesModuleDescriptorTest', () => {
   /**
diff --git a/chrome/test/data/webui/new_tab_page/modules/module_registry_test.js b/chrome/test/data/webui/new_tab_page/modules/module_registry_test.js
index 3bffec20..6a2a3d5c 100644
--- a/chrome/test/data/webui/new_tab_page/modules/module_registry_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/module_registry_test.js
@@ -6,7 +6,7 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 import {assertDeepEquals, assertEquals} from '../../chai_assert.js';
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 import {flushTasks} from '../../test_util.m.js';
 import {fakeMetricsPrivate, MetricsTracker} from '../metrics_test_support.js';
 import {createMock} from '../test_support.js';
diff --git a/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.js b/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.js
index 526801e..992f69a 100644
--- a/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.js
@@ -5,7 +5,7 @@
 import {$$, WindowProxy} from 'chrome://new-tab-page/new_tab_page.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {fakeMetricsPrivate, MetricsTracker} from 'chrome://test/new_tab_page/metrics_test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageModulesModuleWrapperTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/modules/modules_test.js b/chrome/test/data/webui/new_tab_page/modules/modules_test.js
index 48f375b..2fb071c7 100644
--- a/chrome/test/data/webui/new_tab_page/modules/modules_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/modules_test.js
@@ -6,7 +6,7 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 
 import {assertDeepEquals, assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 import {fakeMetricsPrivate, MetricsTracker} from '../metrics_test_support.js';
 import {assertNotStyle, assertStyle, createMock} from '../test_support.js';
 
diff --git a/chrome/test/data/webui/new_tab_page/modules/photos/module_test.js b/chrome/test/data/webui/new_tab_page/modules/photos/module_test.js
index d35c4a8..a4465ac 100644
--- a/chrome/test/data/webui/new_tab_page/modules/photos/module_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/photos/module_test.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {$$, photosDescriptor, PhotosProxy} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 suite('NewTabPageModulesPhotosModuleTest', () => {
   /**
diff --git a/chrome/test/data/webui/new_tab_page/modules/task_module/module_test.js b/chrome/test/data/webui/new_tab_page/modules/task_module/module_test.js
index 3cba7c18..7b3b0300 100644
--- a/chrome/test/data/webui/new_tab_page/modules/task_module/module_test.js
+++ b/chrome/test/data/webui/new_tab_page/modules/task_module/module_test.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import {$$, shoppingTasksDescriptor, TaskModuleHandlerProxy} from 'chrome://new-tab-page/new_tab_page.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise, flushTasks} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageModulesTaskModuleTest', () => {
diff --git a/chrome/test/data/webui/new_tab_page/realbox/realbox_test.js b/chrome/test/data/webui/new_tab_page/realbox/realbox_test.js
index 391ec6d..d4cc61f 100644
--- a/chrome/test/data/webui/new_tab_page/realbox/realbox_test.js
+++ b/chrome/test/data/webui/new_tab_page/realbox/realbox_test.js
@@ -6,7 +6,7 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
 import {assertStyle, createTheme} from 'chrome://test/new_tab_page/test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise} from 'chrome://test/test_util.m.js';
 
 /**
diff --git a/chrome/test/data/webui/new_tab_page/test_support.js b/chrome/test/data/webui/new_tab_page/test_support.js
index 34e3f66d..efc79b8 100644
--- a/chrome/test/data/webui/new_tab_page/test_support.js
+++ b/chrome/test/data/webui/new_tab_page/test_support.js
@@ -5,7 +5,7 @@
 import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
 import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
 import {assertEquals, assertNotEquals} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @type {string} */
 export const NONE_ANIMATION = 'none 0s ease 0s 1 normal none running';
diff --git a/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.js b/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.js
index 565fade..91b2cf3 100644
--- a/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.js
+++ b/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.js
@@ -7,7 +7,7 @@
 import {$$, NewTabPageProxy, VoiceAction as Action, VoiceError as Error, WindowProxy} from 'chrome://new-tab-page/new_tab_page.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {fakeMetricsPrivate, MetricsTracker} from 'chrome://test/new_tab_page/metrics_test_support.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {flushTasks, isVisible} from 'chrome://test/test_util.m.js';
 
 import {assertEquals} from '../chai_assert.js';
diff --git a/chrome/test/data/webui/print_preview/BUILD.gn b/chrome/test/data/webui/print_preview/BUILD.gn
index 4157105..0ed4485 100644
--- a/chrome/test/data/webui/print_preview/BUILD.gn
+++ b/chrome/test/data/webui/print_preview/BUILD.gn
@@ -198,7 +198,7 @@
 js_library("native_layer_stub") {
   deps = [
     ":print_preview_test_utils",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/print_preview:print_preview",
     "//ui/webui/resources/js:assert.m",
     "//ui/webui/resources/js:cr.m",
@@ -209,7 +209,7 @@
 js_library("cloud_print_interface_stub") {
   deps = [
     ":print_preview_test_utils",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/print_preview:print_preview",
   ]
 }
@@ -307,7 +307,7 @@
 if (is_chromeos) {
   js_library("native_layer_cros_stub") {
     deps = [
-      "..:test_browser_proxy.m",
+      "..:test_browser_proxy",
       "//chrome/browser/resources/print_preview:print_preview",
       "//ui/webui/resources/js:assert.m",
       "//ui/webui/resources/js:promise_resolver.m",
@@ -446,7 +446,7 @@
 
 js_library("test_plugin_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/print_preview:print_preview",
     "//ui/webui/resources/js:assert.m",
   ]
diff --git a/chrome/test/data/webui/print_preview/cloud_print_interface_stub.js b/chrome/test/data/webui/print_preview/cloud_print_interface_stub.js
index 6566970..71728c5 100644
--- a/chrome/test/data/webui/print_preview/cloud_print_interface_stub.js
+++ b/chrome/test/data/webui/print_preview/cloud_print_interface_stub.js
@@ -5,7 +5,7 @@
 import {CloudPrintInterface, CloudPrintInterfaceEventType, createDestinationKey, Destination, DestinationOrigin} from 'chrome://print/print_preview.js';
 import {NativeEventTarget as EventTarget} from 'chrome://resources/js/cr/event_target.m.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 import {getCddTemplate} from './print_preview_test_utils.js';
 
diff --git a/chrome/test/data/webui/print_preview/native_layer_cros_stub.js b/chrome/test/data/webui/print_preview/native_layer_cros_stub.js
index 6fca3d05..e16c364 100644
--- a/chrome/test/data/webui/print_preview/native_layer_cros_stub.js
+++ b/chrome/test/data/webui/print_preview/native_layer_cros_stub.js
@@ -6,7 +6,7 @@
 import {assert} from 'chrome://resources/js/assert.m.js';
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @return {!NativeLayerCrosStub} */
 export function setNativeLayerCrosInstance() {
diff --git a/chrome/test/data/webui/print_preview/native_layer_stub.js b/chrome/test/data/webui/print_preview/native_layer_stub.js
index a2a466b1..42b9912 100644
--- a/chrome/test/data/webui/print_preview/native_layer_stub.js
+++ b/chrome/test/data/webui/print_preview/native_layer_stub.js
@@ -7,7 +7,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 import {getCddTemplate, getPdfPrinter} from './print_preview_test_utils.js';
 
diff --git a/chrome/test/data/webui/print_preview/test_plugin_proxy.js b/chrome/test/data/webui/print_preview/test_plugin_proxy.js
index fd50d23..616a49ea 100644
--- a/chrome/test/data/webui/print_preview/test_plugin_proxy.js
+++ b/chrome/test/data/webui/print_preview/test_plugin_proxy.js
@@ -4,7 +4,7 @@
 
 import {PDFPlugin, PluginProxy} from 'chrome://print/print_preview.js';
 import {assert} from 'chrome://resources/js/assert.m.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /**
  * Test version of the PluginProxy.
diff --git a/chrome/test/data/webui/read_later/BUILD.gn b/chrome/test/data/webui/read_later/BUILD.gn
index 3e42d33..c1cfcdb 100644
--- a/chrome/test/data/webui/read_later/BUILD.gn
+++ b/chrome/test/data/webui/read_later/BUILD.gn
@@ -29,7 +29,7 @@
 
 js_library("test_read_later_api_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/read_later:read_later_api_proxy",
     "//chrome/browser/ui/webui/read_later:mojo_bindings_js_library_for_compile",
   ]
diff --git a/chrome/test/data/webui/read_later/side_panel/test_bookmarks_api_proxy.js b/chrome/test/data/webui/read_later/side_panel/test_bookmarks_api_proxy.js
index cef8647..02c3836f 100644
--- a/chrome/test/data/webui/read_later/side_panel/test_bookmarks_api_proxy.js
+++ b/chrome/test/data/webui/read_later/side_panel/test_bookmarks_api_proxy.js
@@ -4,7 +4,7 @@
 
 import {BookmarksApiProxy} from 'chrome://read-later.top-chrome/side_panel/bookmarks_api_proxy.js';
 
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 class EventDispatcher {
   constructor() {
@@ -65,4 +65,4 @@
   setFolders(folders) {
     this.folders_ = folders;
   }
-}
\ No newline at end of file
+}
diff --git a/chrome/test/data/webui/read_later/test_read_later_api_proxy.js b/chrome/test/data/webui/read_later/test_read_later_api_proxy.js
index c07f1e3..d00544a6 100644
--- a/chrome/test/data/webui/read_later/test_read_later_api_proxy.js
+++ b/chrome/test/data/webui/read_later/test_read_later_api_proxy.js
@@ -5,7 +5,7 @@
 import 'chrome://read-later.top-chrome/read_later.mojom-lite.js';
 
 import {ReadLaterApiProxy} from 'chrome://read-later.top-chrome/read_later_api_proxy.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {ReadLaterApiProxy} */
 export class TestReadLaterApiProxy extends TestBrowserProxy {
@@ -78,4 +78,4 @@
   setEntries(entries) {
     this.entries_ = entries;
   }
-}
\ No newline at end of file
+}
diff --git a/chrome/test/data/webui/set_time_dialog_test.js b/chrome/test/data/webui/set_time_dialog_test.js
index 29642d9..22d841ce 100644
--- a/chrome/test/data/webui/set_time_dialog_test.js
+++ b/chrome/test/data/webui/set_time_dialog_test.js
@@ -8,7 +8,7 @@
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {SetTimeBrowserProxyImpl} from 'chrome://set-time/set_time_browser_proxy.js';
 
-import {TestBrowserProxy} from './test_browser_proxy.m.js';
+import {TestBrowserProxy} from './test_browser_proxy.js';
 
 suite('SetTimeDialog', function() {
   let setTimeElement = null;
diff --git a/chrome/test/data/webui/settings/BUILD.gn b/chrome/test/data/webui/settings/BUILD.gn
index c658077..de62e41 100644
--- a/chrome/test/data/webui/settings/BUILD.gn
+++ b/chrome/test/data/webui/settings/BUILD.gn
@@ -237,7 +237,7 @@
   deps = [
     "..:chai_assert",
     "..:fake_chrome_event.m",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//ui/webui/resources/js:cr.m",
   ]
 }
@@ -337,7 +337,7 @@
   deps = [
     ":test_metrics_browser_proxy",
     "..:chai_assert",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:lazy_load",
     "//chrome/browser/resources/settings:settings",
   ]
@@ -352,7 +352,7 @@
     ":test_open_window_proxy",
     ":test_password_manager_proxy",
     "..:chai_assert",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
     "//ui/webui/resources/js:load_time_data.m",
   ]
@@ -361,14 +361,14 @@
 
 js_library("test_metrics_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
   ]
 }
 
 js_library("test_open_window_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
   ]
 }
@@ -377,7 +377,7 @@
   deps = [
     ":passwords_and_autofill_fake_data",
     "..:chai_assert",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
   ]
 }
@@ -385,7 +385,7 @@
 js_library("test_privacy_page_browser_proxy") {
   deps = [
     "..:chai_assert",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
   ]
 }
@@ -474,7 +474,7 @@
 
 js_library("test_about_page_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
     "//ui/webui/resources/js:cr.m",
   ]
@@ -482,7 +482,7 @@
 
 js_library("test_clear_browsing_data_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:lazy_load",
     "//ui/webui/resources/js:cr.m",
   ]
@@ -490,7 +490,7 @@
 
 js_library("test_hats_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
   ]
 }
@@ -499,7 +499,7 @@
   deps = [
     ":fake_input_method_private",
     ":fake_language_settings_private",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:lazy_load",
     "//ui/webui/resources/js:cr.m",
   ]
@@ -507,21 +507,21 @@
 
 js_library("test_lifetime_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
   ]
 }
 
 js_library("test_local_data_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:lazy_load",
   ]
 }
 
 js_library("test_search_engines_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
   ]
 }
@@ -529,14 +529,14 @@
 js_library("test_site_settings_prefs_browser_proxy") {
   deps = [
     ":test_util",
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:lazy_load",
   ]
 }
 
 js_library("test_sync_browser_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/settings:settings",
   ]
 }
diff --git a/chrome/test/data/webui/settings/appearance_fonts_page_test.js b/chrome/test/data/webui/settings/appearance_fonts_page_test.js
index de7e436..66da6e28 100644
--- a/chrome/test/data/webui/settings/appearance_fonts_page_test.js
+++ b/chrome/test/data/webui/settings/appearance_fonts_page_test.js
@@ -7,7 +7,7 @@
 
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {FontsBrowserProxy, FontsBrowserProxyImpl} from 'chrome://settings/lazy_load.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {FontsBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/appearance_page_test.js b/chrome/test/data/webui/settings/appearance_page_test.js
index 9972fa67..78c7b586 100644
--- a/chrome/test/data/webui/settings/appearance_page_test.js
+++ b/chrome/test/data/webui/settings/appearance_page_test.js
@@ -6,7 +6,7 @@
 import {isChromeOS, isLinux} from 'chrome://resources/js/cr.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {AppearanceBrowserProxy, AppearanceBrowserProxyImpl} from 'chrome://settings/settings.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {AppearanceBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chrome_cleanup_page_test.js b/chrome/test/data/webui/settings/chrome_cleanup_page_test.js
index ef53ce5..563ea8d 100644
--- a/chrome/test/data/webui/settings/chrome_cleanup_page_test.js
+++ b/chrome/test/data/webui/settings/chrome_cleanup_page_test.js
@@ -6,7 +6,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW, ChromeCleanupIdleReason,ChromeCleanupProxyImpl} from 'chrome://settings/lazy_load.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {ChromeCleanupProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js b/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js
index 7a25931..23daabc 100644
--- a/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js
@@ -6,7 +6,7 @@
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
 // #import {AmbientModeTopicSource, AmbientModeTemperatureUnit, AmbientModeBrowserProxyImpl, CrSettingsPrefs, routes, Router} from 'chrome://os-settings/chromeos/os_settings.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
diff --git a/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.js b/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.js
index 9c9580d..67dedbf5 100644
--- a/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.js
@@ -6,7 +6,7 @@
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
 // #import {AmbientModeTopicSource, AmbientModeBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {waitAfterNextRender} from 'chrome://test/test_util.m.js';
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js
index 57b3d0b2..37aae93d 100644
--- a/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../../test_browser_proxy.js';
 // clang-format on
 
 /** @implements {settings.PluginVmBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/date_time_page_tests.js b/chrome/test/data/webui/settings/chromeos/date_time_page_tests.js
index c362af2..d3b68fa4 100644
--- a/chrome/test/data/webui/settings/chromeos/date_time_page_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/date_time_page_tests.js
@@ -8,7 +8,7 @@
 // #import {assert} from 'chrome://resources/js/assert.m.js';
 // #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js';
-// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // #import {TimeZoneAutoDetectMethod, TimeZoneBrowserProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js';
 // #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
 // #import {waitAfterNextRender, flushTasks} from 'chrome://test/test_util.m.js';
diff --git a/chrome/test/data/webui/settings/chromeos/fake_language_settings_private.js b/chrome/test/data/webui/settings/chromeos/fake_language_settings_private.js
index c465cb4..2f6b9c61 100644
--- a/chrome/test/data/webui/settings/chromeos/fake_language_settings_private.js
+++ b/chrome/test/data/webui/settings/chromeos/fake_language_settings_private.js
@@ -11,7 +11,7 @@
 import {isChromeOS} from 'chrome://resources/js/cr.m.js';
 
 import {FakeChromeEvent} from '../../fake_chrome_event.m.js';
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 /**
  * Fake of the chrome.languageSettingsPrivate API.
diff --git a/chrome/test/data/webui/settings/chromeos/fake_receive_manager.js b/chrome/test/data/webui/settings/chromeos/fake_receive_manager.js
index 90107ad..9729d1c 100644
--- a/chrome/test/data/webui/settings/chromeos/fake_receive_manager.js
+++ b/chrome/test/data/webui/settings/chromeos/fake_receive_manager.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 /**
  * @fileoverview Fake implementation of ReceiveManagerInterface for testing.
diff --git a/chrome/test/data/webui/settings/chromeos/fingerprint_browsertest_chromeos.js b/chrome/test/data/webui/settings/chromeos/fingerprint_browsertest_chromeos.js
index 8a1d59c4..7e707ea 100644
--- a/chrome/test/data/webui/settings/chromeos/fingerprint_browsertest_chromeos.js
+++ b/chrome/test/data/webui/settings/chromeos/fingerprint_browsertest_chromeos.js
@@ -8,7 +8,7 @@
 // #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {flushTasks, waitAfterNextRender} from 'chrome://test/test_util.m.js';
 // #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {FingerprintBrowserProxyImpl, FingerprintSetupStep, FingerprintResultType, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js b/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js
index 67057f99..56e25c2 100644
--- a/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js
@@ -9,7 +9,7 @@
 // #import {CrSettingsPrefs} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {GoogleAssistantBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
diff --git a/chrome/test/data/webui/settings/chromeos/guest_os_shared_paths_test.js b/chrome/test/data/webui/settings/chromeos/guest_os_shared_paths_test.js
index 23f68c6..d4d8f04 100644
--- a/chrome/test/data/webui/settings/chromeos/guest_os_shared_paths_test.js
+++ b/chrome/test/data/webui/settings/chromeos/guest_os_shared_paths_test.js
@@ -8,7 +8,7 @@
 // #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {assert} from 'chrome://resources/js/assert.m.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {GuestOsBrowserProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/settings/chromeos/guest_os_shared_usb_devices_test.js b/chrome/test/data/webui/settings/chromeos/guest_os_shared_usb_devices_test.js
index 9353848..07f1bb9 100644
--- a/chrome/test/data/webui/settings/chromeos/guest_os_shared_usb_devices_test.js
+++ b/chrome/test/data/webui/settings/chromeos/guest_os_shared_usb_devices_test.js
@@ -8,7 +8,7 @@
 // #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {assert} from 'chrome://resources/js/assert.m.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {GuestOsBrowserProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js';
 // #import {eventToPromise, flushTasks} from 'chrome://test/test_util.m.js';
 // clang-format on
diff --git a/chrome/test/data/webui/settings/chromeos/multidevice_task_continuation_item_tests.js b/chrome/test/data/webui/settings/chromeos/multidevice_task_continuation_item_tests.js
index 655dc92..c5f1069 100644
--- a/chrome/test/data/webui/settings/chromeos/multidevice_task_continuation_item_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/multidevice_task_continuation_item_tests.js
@@ -9,7 +9,7 @@
 // #import {assert} from 'chrome://resources/js/assert.m.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {SyncBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
-// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // #import {TestSyncBrowserProxy} from './test_os_sync_browser_proxy.m.js';
 // clang-format on
 
@@ -64,4 +64,4 @@
     assertFalse(!!taskContinuationItem.$$(
         'settings-multidevice-task-continuation-disabled-link'));
   });
-});
\ No newline at end of file
+});
diff --git a/chrome/test/data/webui/settings/chromeos/multidevice_wifi_sync_item_tests.js b/chrome/test/data/webui/settings/chromeos/multidevice_wifi_sync_item_tests.js
index 3193c42..c701292 100644
--- a/chrome/test/data/webui/settings/chromeos/multidevice_wifi_sync_item_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/multidevice_wifi_sync_item_tests.js
@@ -10,7 +10,7 @@
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {SyncBrowserProxyImpl, OsSyncBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {TestSyncBrowserProxy} from './test_os_sync_browser_proxy.m.js';
-// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 function getPrefs() {
diff --git a/chrome/test/data/webui/settings/chromeos/nearby_share_subpage_tests.js b/chrome/test/data/webui/settings/chromeos/nearby_share_subpage_tests.js
index 098d7f7..67fe466 100644
--- a/chrome/test/data/webui/settings/chromeos/nearby_share_subpage_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/nearby_share_subpage_tests.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {assertEquals} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {NearbyAccountManagerBrowserProxy, NearbyAccountManagerBrowserProxyImpl, setNearbyShareSettingsForTesting, setReceiveManagerForTesting, setContactManagerForTesting, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js';
diff --git a/chrome/test/data/webui/settings/chromeos/os_people_page_test.js b/chrome/test/data/webui/settings/chromeos/os_people_page_test.js
index f7f60331..400069c5 100644
--- a/chrome/test/data/webui/settings/chromeos/os_people_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/os_people_page_test.js
@@ -5,7 +5,7 @@
 // clang-format off
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {Router, PageStatus, pageVisibility, routes, AccountManagerBrowserProxyImpl, SyncBrowserProxyImpl, ProfileInfoBrowserProxyImpl, ProfileInfoBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {assert} from 'chrome://resources/js/assert.m.js';
diff --git a/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.js b/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.js
index b0d9aad8..2ddcd7c 100644
--- a/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.js
@@ -5,7 +5,7 @@
 // clang-format off
 // #import 'chrome://os-settings/chromeos/lazy_load.js';
 
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #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 {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_main_test.js b/chrome/test/data/webui/settings/chromeos/os_settings_main_test.js
index a96a97cb..46873f6 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_main_test.js
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_main_test.js
@@ -9,7 +9,7 @@
 // #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {assert} from 'chrome://resources/js/assert.m.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 cr.define('settings_main_page', function() {
diff --git a/chrome/test/data/webui/settings/chromeos/os_sync_controls_test.js b/chrome/test/data/webui/settings/chromeos/os_sync_controls_test.js
index d664118..74e37875 100644
--- a/chrome/test/data/webui/settings/chromeos/os_sync_controls_test.js
+++ b/chrome/test/data/webui/settings/chromeos/os_sync_controls_test.js
@@ -10,7 +10,7 @@
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {waitAfterNextRender} from 'chrome://test/test_util.m.js';
 // #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 /** @implements {settings.OsSyncBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js b/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js
index 0346d57b..d696a20 100644
--- a/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js
@@ -10,7 +10,7 @@
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {assert} from 'chrome://resources/js/assert.m.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {parental_controls.ParentalControlsBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/people_page_account_manager_test.js b/chrome/test/data/webui/settings/chromeos/people_page_account_manager_test.js
index 423118a..2b4f895 100644
--- a/chrome/test/data/webui/settings/chromeos/people_page_account_manager_test.js
+++ b/chrome/test/data/webui/settings/chromeos/people_page_account_manager_test.js
@@ -5,7 +5,7 @@
 // clang-format off
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {Router, routes, AccountManagerBrowserProxyImpl, ParentalControlsBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chrome/test/data/webui/settings/chromeos/people_page_change_picture_test.js b/chrome/test/data/webui/settings/chromeos/people_page_change_picture_test.js
index e76401c4..093ead7 100644
--- a/chrome/test/data/webui/settings/chromeos/people_page_change_picture_test.js
+++ b/chrome/test/data/webui/settings/chromeos/people_page_change_picture_test.js
@@ -7,7 +7,7 @@
 
 // #import {CrPicture} from 'chrome://resources/cr_elements/chromeos/cr_picture/cr_picture_types.m.js';
 // #import {down, up, pressAndReleaseKeyOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js'
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {Router, routes, AccountManagerBrowserProxyImpl, ChangePictureBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chrome/test/data/webui/settings/chromeos/search_engine_test.js b/chrome/test/data/webui/settings/chromeos/search_engine_test.js
index 3918166..8b5716e 100644
--- a/chrome/test/data/webui/settings/chromeos/search_engine_test.js
+++ b/chrome/test/data/webui/settings/chromeos/search_engine_test.js
@@ -10,7 +10,7 @@
 // #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {SearchEnginesBrowserProxy, SearchEnginesBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {SearchEnginesInfo, SearchEngine} from 'chrome://os-settings/chromeos/os_settings.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {waitAfterNextRender} from 'chrome://test/test_util.m.js';
diff --git a/chrome/test/data/webui/settings/chromeos/smb_shares_page_tests.js b/chrome/test/data/webui/settings/chromeos/smb_shares_page_tests.js
index 7f8e6de..f4c58d52 100644
--- a/chrome/test/data/webui/settings/chromeos/smb_shares_page_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/smb_shares_page_tests.js
@@ -4,7 +4,7 @@
 
 // clang-format off
 // #import 'chrome://os-settings/chromeos/lazy_load.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {SmbMountResult, SmbBrowserProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js';
 // #import {assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chrome/test/data/webui/settings/chromeos/switch_access_subpage_tests.js b/chrome/test/data/webui/settings/chromeos/switch_access_subpage_tests.js
index 79085bb3..d8438e61 100644
--- a/chrome/test/data/webui/settings/chromeos/switch_access_subpage_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/switch_access_subpage_tests.js
@@ -7,7 +7,7 @@
 
 // #import {SwitchAccessSubpageBrowserProxyImpl, SwitchAccessSubpageBrowserProxy, routes, Router} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {assertEquals, assertDeepEquals} from '../../chai_assert.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
diff --git a/chrome/test/data/webui/settings/chromeos/test_about_page_browser_proxy_chromeos.js b/chrome/test/data/webui/settings/chromeos/test_about_page_browser_proxy_chromeos.js
index 7d3a522..d399221 100644
--- a/chrome/test/data/webui/settings/chromeos/test_about_page_browser_proxy_chromeos.js
+++ b/chrome/test/data/webui/settings/chromeos/test_about_page_browser_proxy_chromeos.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {BrowserChannel,UpdateStatus} from 'chrome://os-settings/chromeos/os_settings.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/settings/chromeos/test_android_apps_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_android_apps_browser_proxy.js
index 08e11094..36c531f 100644
--- a/chrome/test/data/webui/settings/chromeos/test_android_apps_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_android_apps_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 /** @implements {settings.AndroidAppsBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/test_bluetooth_page_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_bluetooth_page_browser_proxy.js
index aeb02fa..8a36c8a 100644
--- a/chrome/test/data/webui/settings/chromeos/test_bluetooth_page_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_bluetooth_page_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 /**
  * @implements {BluetoothPageBrowserProxy}
diff --git a/chrome/test/data/webui/settings/chromeos/test_crostini_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_crostini_browser_proxy.js
index 5b966698..d799e9b 100644
--- a/chrome/test/data/webui/settings/chromeos/test_crostini_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_crostini_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 /** @implements {settings.CrostiniBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.js
index 8e09e23..a11e35d 100644
--- a/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {CupsPrintersBrowserProxy,PrinterSetupResult,PrintServerResult} from 'chrome://os-settings/chromeos/lazy_load.js';
 // clang-format on
 
@@ -197,4 +197,4 @@
   return {
     TestCupsPrintersBrowserProxy: TestCupsPrintersBrowserProxy,
   };
-});
\ No newline at end of file
+});
diff --git a/chrome/test/data/webui/settings/chromeos/test_device_name_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_device_name_browser_proxy.js
index 11d5795..0f17f71d 100644
--- a/chrome/test/data/webui/settings/chromeos/test_device_name_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_device_name_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 /** @implements {DeviceNameBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/test_guest_os_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_guest_os_browser_proxy.js
index ece90d7c..ef6268c 100644
--- a/chrome/test/data/webui/settings/chromeos/test_guest_os_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_guest_os_browser_proxy.js
@@ -5,7 +5,7 @@
 // clang-format off
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 /** @implements {settings.GuestOsBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.js
index 136faf7..df91549 100644
--- a/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 /**
diff --git a/chrome/test/data/webui/settings/chromeos/test_kerberos_accounts_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_kerberos_accounts_browser_proxy.js
index e766bd5..1607ff45e 100644
--- a/chrome/test/data/webui/settings/chromeos/test_kerberos_accounts_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_kerberos_accounts_browser_proxy.js
@@ -5,7 +5,7 @@
 // clang-format off
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
-// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // #import {KerberosErrorType, KerberosConfigErrorCode} from 'chrome://os-settings/chromeos/os_settings.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.js
index 5a7ab72..f9dbdb1 100644
--- a/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {MultiDeviceSettingsMode, MultiDeviceFeature, MultiDevicePageContentData} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {PrintServerResult} from 'chrome://os-settings/chromeos/lazy_load.js';
 // clang-format on
diff --git a/chrome/test/data/webui/settings/chromeos/test_os_languages_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_os_languages_browser_proxy.js
index 73e010e..19fe248 100644
--- a/chrome/test/data/webui/settings/chromeos/test_os_languages_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_os_languages_browser_proxy.js
@@ -6,7 +6,7 @@
 // #import {LanguagesBrowserProxy} from 'chrome://os-settings/chromeos/lazy_load.js';
 // #import {FakeInputMethodPrivate} from '../fake_input_method_private.js';
 // #import {FakeLanguageSettingsPrivate} from './fake_language_settings_private.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 cr.define('settings', function() {
diff --git a/chrome/test/data/webui/settings/chromeos/test_os_languages_metrics_proxy.js b/chrome/test/data/webui/settings/chromeos/test_os_languages_metrics_proxy.js
index eb4180c..73160e4 100644
--- a/chrome/test/data/webui/settings/chromeos/test_os_languages_metrics_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_os_languages_metrics_proxy.js
@@ -4,7 +4,7 @@
 
 // clang-format off
 // #import {LanguagesMetricsProxy} from 'chrome://os-settings/chromeos/lazy_load.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 cr.define('settings', function() {
diff --git a/chrome/test/data/webui/settings/chromeos/test_os_lifetime_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_os_lifetime_browser_proxy.js
index 34b2ae04..c00acc2 100644
--- a/chrome/test/data/webui/settings/chromeos/test_os_lifetime_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_os_lifetime_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 cr.define('settings', function() {
   /**
diff --git a/chrome/test/data/webui/settings/chromeos/test_os_reset_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_os_reset_browser_proxy.js
index 757395e..87716a6 100644
--- a/chrome/test/data/webui/settings/chromeos/test_os_reset_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_os_reset_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 cr.define('reset_page', function() {
   /** @implements {settings.OsResetBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/chromeos/test_os_sync_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_os_sync_browser_proxy.js
index b30928b..3d8b19b 100644
--- a/chrome/test/data/webui/settings/chromeos/test_os_sync_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_os_sync_browser_proxy.js
@@ -4,7 +4,7 @@
 
 // clang-format off
 // #import {PageStatus, StoredAccount, SyncBrowserProxy, SyncStatus} from 'chrome://os-settings/chromeos/os_settings.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // #import {isChromeOS} from 'chrome://resources/js/cr.m.js';
 // clang-format on
 
@@ -137,4 +137,4 @@
 
   /** @override */
   startKeyRetrieval() {}
-}
\ No newline at end of file
+}
diff --git a/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.js
index fd93225..2d2acc5 100644
--- a/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.js
+++ b/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 
 cr.define('settings', function() {
   /** @implements {settings.WallpaperBrowserProxy} */
@@ -48,4 +48,4 @@
   return {
     TestWallpaperBrowserProxy: TestWallpaperBrowserProxy,
   };
-});
\ No newline at end of file
+});
diff --git a/chrome/test/data/webui/settings/chromeos/text_to_speech_subpage_tests.js b/chrome/test/data/webui/settings/chromeos/text_to_speech_subpage_tests.js
index 038ccca0..8e93b63 100644
--- a/chrome/test/data/webui/settings/chromeos/text_to_speech_subpage_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/text_to_speech_subpage_tests.js
@@ -10,7 +10,7 @@
 // #import {assertEquals} from '../../chai_assert.js';
 // #import {waitAfterNextRender} from 'chrome://test/test_util.m.js';
 // #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
-// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// #import {TestBrowserProxy} from '../../test_browser_proxy.js';
 // clang-format on
 
 /**
@@ -132,4 +132,4 @@
         deepLinkElement, getDeepActiveElement(),
         'Text to speech engine options should be focused for settingId=1507.');
   });
-});
\ No newline at end of file
+});
diff --git a/chrome/test/data/webui/settings/default_browser_browsertest.js b/chrome/test/data/webui/settings/default_browser_browsertest.js
index 47fcf33b..8843a319 100644
--- a/chrome/test/data/webui/settings/default_browser_browsertest.js
+++ b/chrome/test/data/webui/settings/default_browser_browsertest.js
@@ -5,7 +5,7 @@
 // clang-format off
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {DefaultBrowserBrowserProxyImpl} from 'chrome://settings/settings.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /**
diff --git a/chrome/test/data/webui/settings/downloads_page_test.js b/chrome/test/data/webui/settings/downloads_page_test.js
index 018826b..06d675f 100644
--- a/chrome/test/data/webui/settings/downloads_page_test.js
+++ b/chrome/test/data/webui/settings/downloads_page_test.js
@@ -8,7 +8,7 @@
 import {isChromeOS, webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {DownloadsBrowserProxyImpl} from 'chrome://settings/lazy_load.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {DownloadsBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/fake_language_settings_private.js b/chrome/test/data/webui/settings/fake_language_settings_private.js
index 78b777b..c11b340 100644
--- a/chrome/test/data/webui/settings/fake_language_settings_private.js
+++ b/chrome/test/data/webui/settings/fake_language_settings_private.js
@@ -12,7 +12,7 @@
 import {SettingsPrefsElement} from 'chrome://settings/settings.js';
 
 import {FakeChromeEvent} from '../fake_chrome_event.m.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /**
  * Fake of the chrome.languageSettingsPrivate API.
diff --git a/chrome/test/data/webui/settings/import_data_dialog_test.js b/chrome/test/data/webui/settings/import_data_dialog_test.js
index adcd17f..8fb64ca1 100644
--- a/chrome/test/data/webui/settings/import_data_dialog_test.js
+++ b/chrome/test/data/webui/settings/import_data_dialog_test.js
@@ -6,7 +6,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {dashToCamelCase, flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {ImportDataBrowserProxyImpl, ImportDataStatus} from 'chrome://settings/lazy_load.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {ImportDataBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/incompatible_applications_page_test.js b/chrome/test/data/webui/settings/incompatible_applications_page_test.js
index 14ecd3b..5cf26cde 100644
--- a/chrome/test/data/webui/settings/incompatible_applications_page_test.js
+++ b/chrome/test/data/webui/settings/incompatible_applications_page_test.js
@@ -6,7 +6,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {IncompatibleApplication, IncompatibleApplicationsBrowserProxyImpl} from 'chrome://settings/lazy_load.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {IncompatibleApplicationsBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/languages_page_metrics_test_browser.js b/chrome/test/data/webui/settings/languages_page_metrics_test_browser.js
index c07a942..2966caa 100644
--- a/chrome/test/data/webui/settings/languages_page_metrics_test_browser.js
+++ b/chrome/test/data/webui/settings/languages_page_metrics_test_browser.js
@@ -8,7 +8,7 @@
 import {CrSettingsPrefs} from 'chrome://settings/settings.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 import {fakeDataBind} from '../test_util.m.js';
 
 import {getFakeLanguagePrefs} from './fake_language_settings_private.js';
diff --git a/chrome/test/data/webui/settings/on_startup_page_tests.js b/chrome/test/data/webui/settings/on_startup_page_tests.js
index 48299c6..712c1c1 100644
--- a/chrome/test/data/webui/settings/on_startup_page_tests.js
+++ b/chrome/test/data/webui/settings/on_startup_page_tests.js
@@ -6,7 +6,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {OnStartupBrowserProxy, OnStartupBrowserProxyImpl} from 'chrome://settings/settings.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {OnStartupBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/people_page_manage_profile_test.js b/chrome/test/data/webui/settings/people_page_manage_profile_test.js
index ae7ec15..8caf93f9 100644
--- a/chrome/test/data/webui/settings/people_page_manage_profile_test.js
+++ b/chrome/test/data/webui/settings/people_page_manage_profile_test.js
@@ -6,7 +6,7 @@
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {ManageProfileBrowserProxyImpl, ProfileShortcutStatus} from 'chrome://settings/lazy_load.js';
 import {Router, routes} from 'chrome://settings/settings.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {ManageProfileBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/people_page_test.js b/chrome/test/data/webui/settings/people_page_test.js
index b194925..fd5fa72 100644
--- a/chrome/test/data/webui/settings/people_page_test.js
+++ b/chrome/test/data/webui/settings/people_page_test.js
@@ -13,7 +13,7 @@
 import {simulateStoredAccounts, simulateSyncStatus} from 'chrome://test/settings/sync_test_util.js';
 import {TestProfileInfoBrowserProxy} from 'chrome://test/settings/test_profile_info_browser_proxy.js';
 import {TestSyncBrowserProxy} from 'chrome://test/settings/test_sync_browser_proxy.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {flushTasks, waitBeforeNextRender} from 'chrome://test/test_util.m.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/settings/people_page_test_cros.js b/chrome/test/data/webui/settings/people_page_test_cros.js
index 2c35df4..7ee29f7 100644
--- a/chrome/test/data/webui/settings/people_page_test_cros.js
+++ b/chrome/test/data/webui/settings/people_page_test_cros.js
@@ -10,7 +10,7 @@
 import {simulateSyncStatus} from 'chrome://test/settings/sync_test_util.js';
 import {TestProfileInfoBrowserProxy} from 'chrome://test/settings/test_profile_info_browser_proxy.js';
 import {TestSyncBrowserProxy} from 'chrome://test/settings/test_sync_browser_proxy.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {AccountManagerBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/privacy_sandbox_test.js b/chrome/test/data/webui/settings/privacy_sandbox_test.js
index 2131205..e51f3028 100644
--- a/chrome/test/data/webui/settings/privacy_sandbox_test.js
+++ b/chrome/test/data/webui/settings/privacy_sandbox_test.js
@@ -9,7 +9,7 @@
 import {CrSettingsPrefs, HatsBrowserProxyImpl, loadTimeData, MetricsBrowserProxyImpl, OpenWindowProxyImpl, TrustSafetyInteraction} from 'chrome://settings/settings.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 import {flushTasks, isChildVisible} from '../test_util.m.js';
 
 import {TestHatsBrowserProxy} from './test_hats_browser_proxy.js';
diff --git a/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.js b/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.js
index 1c002d5..ab291823 100644
--- a/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.js
+++ b/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.js
@@ -10,7 +10,7 @@
 import {MetricsBrowserProxyImpl, Router, routes, SafetyCheckCallbackConstants, SafetyCheckChromeCleanerStatus, SafetyCheckIconStatus, SafetyCheckInteractions, SettingsSafetyCheckChromeCleanerChildElement} from 'chrome://settings/settings.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 import {TestMetricsBrowserProxy} from './test_metrics_browser_proxy.js';
 
diff --git a/chrome/test/data/webui/settings/safety_check_page_test.js b/chrome/test/data/webui/settings/safety_check_page_test.js
index 48af9616..b458e63 100644
--- a/chrome/test/data/webui/settings/safety_check_page_test.js
+++ b/chrome/test/data/webui/settings/safety_check_page_test.js
@@ -9,7 +9,7 @@
 import {HatsBrowserProxyImpl, LifetimeBrowserProxyImpl, MetricsBrowserProxyImpl, OpenWindowProxyImpl, PasswordManagerImpl, PasswordManagerProxy, Router, routes, SafetyCheckBrowserProxy, SafetyCheckBrowserProxyImpl, SafetyCheckCallbackConstants, SafetyCheckChromeCleanerStatus, SafetyCheckExtensionsStatus, SafetyCheckIconStatus, SafetyCheckInteractions, SafetyCheckParentStatus, SafetyCheckPasswordsStatus, SafetyCheckSafeBrowsingStatus, SafetyCheckUpdatesStatus, SettingsSafetyCheckChildElement, SettingsSafetyCheckExtensionsChildElement, SettingsSafetyCheckPageElement, SettingsSafetyCheckPasswordsChildElement, SettingsSafetyCheckSafeBrowsingChildElement, SettingsSafetyCheckUpdatesChildElement, TrustSafetyInteraction} from 'chrome://settings/settings.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 import {TestHatsBrowserProxy} from './test_hats_browser_proxy.js';
 import {TestLifetimeBrowserProxy} from './test_lifetime_browser_proxy.js';
diff --git a/chrome/test/data/webui/settings/security_keys_subpage_test.js b/chrome/test/data/webui/settings/security_keys_subpage_test.js
index a0050a7..b775e0d 100644
--- a/chrome/test/data/webui/settings/security_keys_subpage_test.js
+++ b/chrome/test/data/webui/settings/security_keys_subpage_test.js
@@ -8,7 +8,7 @@
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {BioEnrollDialogPage, CredentialManagementDialogPage, Ctap2Status, ResetDialogPage, SampleStatus, SecurityKeysBioEnrollProxyImpl, SecurityKeysCredentialBrowserProxyImpl, SecurityKeysPINBrowserProxyImpl,SecurityKeysResetBrowserProxyImpl, SetPINDialogPage} from 'chrome://settings/lazy_load.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise} from 'chrome://test/test_util.m.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/settings/settings_main_test.js b/chrome/test/data/webui/settings/settings_main_test.js
index 13c05cb..7bc285b7 100644
--- a/chrome/test/data/webui/settings/settings_main_test.js
+++ b/chrome/test/data/webui/settings/settings_main_test.js
@@ -6,7 +6,7 @@
 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 {CrSettingsPrefs, pageVisibility, Router, routes, SearchRequest, setSearchManagerForTesting} from 'chrome://settings/settings.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {eventToPromise, whenAttributeIs} from 'chrome://test/test_util.m.js';
 // clang-format on
 
diff --git a/chrome/test/data/webui/settings/site_details_tests.js b/chrome/test/data/webui/settings/site_details_tests.js
index 1f2f06c8..c2113d2 100644
--- a/chrome/test/data/webui/settings/site_details_tests.js
+++ b/chrome/test/data/webui/settings/site_details_tests.js
@@ -11,7 +11,7 @@
 import {MetricsBrowserProxyImpl, PrivacyElementInteractions, Route,Router,routes} from 'chrome://settings/settings.js';
 import {TestSiteSettingsPrefsBrowserProxy} from 'chrome://test/settings/test_site_settings_prefs_browser_proxy.js';
 import {createContentSettingTypeToValuePair,createRawChooserException,createRawSiteException,createSiteSettingsPrefs} from 'chrome://test/settings/test_util.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {TestMetricsBrowserProxy} from './test_metrics_browser_proxy.js';
 
 // clang-format on
diff --git a/chrome/test/data/webui/settings/startup_urls_page_test.js b/chrome/test/data/webui/settings/startup_urls_page_test.js
index 63f35a99..0793a592 100644
--- a/chrome/test/data/webui/settings/startup_urls_page_test.js
+++ b/chrome/test/data/webui/settings/startup_urls_page_test.js
@@ -7,7 +7,7 @@
 import {keyEventOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {EDIT_STARTUP_URL_EVENT, StartupUrlsPageBrowserProxy, StartupUrlsPageBrowserProxyImpl} from 'chrome://settings/settings.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @implements {StartupUrlsPageBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/system_page_tests.js b/chrome/test/data/webui/settings/system_page_tests.js
index 36f32075..aba7bee 100644
--- a/chrome/test/data/webui/settings/system_page_tests.js
+++ b/chrome/test/data/webui/settings/system_page_tests.js
@@ -8,7 +8,7 @@
 import {SystemPageBrowserProxyImpl} from 'chrome://settings/lazy_load.js';
 import {LifetimeBrowserProxyImpl} from 'chrome://settings/settings.js';
 import {TestLifetimeBrowserProxy} from 'chrome://test/settings/test_lifetime_browser_proxy.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /** @const {boolean} */
diff --git a/chrome/test/data/webui/settings/test_about_page_browser_proxy.js b/chrome/test/data/webui/settings/test_about_page_browser_proxy.js
index 98bf474..b6a4af2 100644
--- a/chrome/test/data/webui/settings/test_about_page_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_about_page_browser_proxy.js
@@ -4,7 +4,7 @@
 
 import {isMac, webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {AboutPageBrowserProxy, UpdateStatus} from 'chrome://settings/settings.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {AboutPageBrowserProxy} */
 export class TestAboutPageBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/settings/test_android_info_browser_proxy.js b/chrome/test/data/webui/settings/test_android_info_browser_proxy.js
index 35a6a01..15a8ae26 100644
--- a/chrome/test/data/webui/settings/test_android_info_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_android_info_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 // clang-format on
 
 /**
diff --git a/chrome/test/data/webui/settings/test_clear_browsing_data_browser_proxy.js b/chrome/test/data/webui/settings/test_clear_browsing_data_browser_proxy.js
index 0f4e511..077ea629 100644
--- a/chrome/test/data/webui/settings/test_clear_browsing_data_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_clear_browsing_data_browser_proxy.js
@@ -6,7 +6,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {ClearBrowsingDataBrowserProxy, InstalledApp} from 'chrome://settings/lazy_load.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 // clang-format on
 
diff --git a/chrome/test/data/webui/settings/test_extension_control_browser_proxy.js b/chrome/test/data/webui/settings/test_extension_control_browser_proxy.js
index d45cad20..001c4c7 100644
--- a/chrome/test/data/webui/settings/test_extension_control_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_extension_control_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 /** @implements {ExtensionControlBrowserProxy} */
 export class TestExtensionControlBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/settings/test_hats_browser_proxy.js b/chrome/test/data/webui/settings/test_hats_browser_proxy.js
index 0455697a..46e05c5 100644
--- a/chrome/test/data/webui/settings/test_hats_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_hats_browser_proxy.js
@@ -4,7 +4,7 @@
 
 import {HatsBrowserProxy} from 'chrome://settings/settings.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {HatsBrowserProxy} */
 export class TestHatsBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/settings/test_languages_browser_proxy.js b/chrome/test/data/webui/settings/test_languages_browser_proxy.js
index 6ff2c1c4..738fe29d 100644
--- a/chrome/test/data/webui/settings/test_languages_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_languages_browser_proxy.js
@@ -6,7 +6,7 @@
 import {isChromeOS, isWindows} from 'chrome://resources/js/cr.m.js';
 import {LanguagesBrowserProxy} from 'chrome://settings/lazy_load.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 import {FakeInputMethodPrivate} from './fake_input_method_private.js';
 import {FakeLanguageSettingsPrivate} from './fake_language_settings_private.js';
diff --git a/chrome/test/data/webui/settings/test_lifetime_browser_proxy.js b/chrome/test/data/webui/settings/test_lifetime_browser_proxy.js
index 770293e..2ca9f63c 100644
--- a/chrome/test/data/webui/settings/test_lifetime_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_lifetime_browser_proxy.js
@@ -4,7 +4,7 @@
 
 import {isChromeOS} from 'chrome://resources/js/cr.m.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /**
  * A test version of LifetimeBrowserProxy.
diff --git a/chrome/test/data/webui/settings/test_local_data_browser_proxy.js b/chrome/test/data/webui/settings/test_local_data_browser_proxy.js
index 943150b2..50b5bb2 100644
--- a/chrome/test/data/webui/settings/test_local_data_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_local_data_browser_proxy.js
@@ -5,7 +5,7 @@
 // clang-format off
 import {CookieDetails, LocalDataBrowserProxy, LocalDataItem} from 'chrome://settings/lazy_load.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 // clang-format on
 
 /**
diff --git a/chrome/test/data/webui/settings/test_metrics_browser_proxy.js b/chrome/test/data/webui/settings/test_metrics_browser_proxy.js
index add174a..5b08815 100644
--- a/chrome/test/data/webui/settings/test_metrics_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_metrics_browser_proxy.js
@@ -4,7 +4,7 @@
 
 import {MetricsBrowserProxy} from 'chrome://settings/settings.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {MetricsBrowserProxy} */
 export class TestMetricsBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/settings/test_open_window_proxy.js b/chrome/test/data/webui/settings/test_open_window_proxy.js
index e563604..495019b 100644
--- a/chrome/test/data/webui/settings/test_open_window_proxy.js
+++ b/chrome/test/data/webui/settings/test_open_window_proxy.js
@@ -4,7 +4,7 @@
 
 import {OpenWindowProxy} from 'chrome://settings/settings.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {OpenWindowProxy} */
 export class TestOpenWindowProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/settings/test_password_manager_proxy.js b/chrome/test/data/webui/settings/test_password_manager_proxy.js
index 227e6398..369ee2968 100644
--- a/chrome/test/data/webui/settings/test_password_manager_proxy.js
+++ b/chrome/test/data/webui/settings/test_password_manager_proxy.js
@@ -8,7 +8,7 @@
 import {PasswordManagerProxy} from 'chrome://settings/settings.js';
 
 import {assertEquals} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 import {makePasswordCheckStatus} from './passwords_and_autofill_fake_data.js';
 
diff --git a/chrome/test/data/webui/settings/test_privacy_page_browser_proxy.js b/chrome/test/data/webui/settings/test_privacy_page_browser_proxy.js
index 8087335..ad6c54ed 100644
--- a/chrome/test/data/webui/settings/test_privacy_page_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_privacy_page_browser_proxy.js
@@ -6,7 +6,7 @@
 import { MetricsReporting,PrivacyPageBrowserProxy, ResolverOption, SecureDnsMode, SecureDnsSetting, SecureDnsUiManagementMode} from 'chrome://settings/settings.js';
 
 import {assertFalse} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 // clang-format on
 
 /** @implements {PrivacyPageBrowserProxy} */
diff --git a/chrome/test/data/webui/settings/test_profile_info_browser_proxy.js b/chrome/test/data/webui/settings/test_profile_info_browser_proxy.js
index 51e0c62..7052917 100644
--- a/chrome/test/data/webui/settings/test_profile_info_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_profile_info_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 /** @implements {ProfileInfoBrowserProxy} */
 export class TestProfileInfoBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/settings/test_reset_browser_proxy.js b/chrome/test/data/webui/settings/test_reset_browser_proxy.js
index d9870e6..15a5e47 100644
--- a/chrome/test/data/webui/settings/test_reset_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_reset_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 /** @implements {ResetBrowserProxy} */
 export class TestResetBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/settings/test_search_engines_browser_proxy.js b/chrome/test/data/webui/settings/test_search_engines_browser_proxy.js
index c8407ee..944078b 100644
--- a/chrome/test/data/webui/settings/test_search_engines_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_search_engines_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 // clang-format on
 
 /**
diff --git a/chrome/test/data/webui/settings/test_site_settings_prefs_browser_proxy.js b/chrome/test/data/webui/settings/test_site_settings_prefs_browser_proxy.js
index ebf2d9532..a24554eb 100644
--- a/chrome/test/data/webui/settings/test_site_settings_prefs_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_site_settings_prefs_browser_proxy.js
@@ -7,7 +7,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {ContentSetting, ContentSettingsTypes, HandlerEntry, ProtocolEntry, RawChooserException, RawSiteException, RecentSitePermissions, SiteSettingSource, SiteSettingsPrefsBrowserProxy, ZoomLevelEntry} from 'chrome://settings/lazy_load.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 import {createOriginInfo, createSiteGroup,createSiteSettingsPrefs, getContentSettingsTypeFromChooserType, SiteSettingsPref} from './test_util.js';
 // clang-format on
diff --git a/chrome/test/data/webui/settings/test_sync_browser_proxy.js b/chrome/test/data/webui/settings/test_sync_browser_proxy.js
index bdd9dbe..ee0076a 100644
--- a/chrome/test/data/webui/settings/test_sync_browser_proxy.js
+++ b/chrome/test/data/webui/settings/test_sync_browser_proxy.js
@@ -6,7 +6,7 @@
 import {isChromeOS} from 'chrome://resources/js/cr.m.js';
 import {PageStatus, StoredAccount, SyncBrowserProxy, SyncStatus} from 'chrome://settings/settings.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 // clang-format on
 
 /** @implements {SyncBrowserProxy} */
diff --git a/chrome/test/data/webui/signin/test_dice_web_signin_intercept_browser_proxy.js b/chrome/test/data/webui/signin/test_dice_web_signin_intercept_browser_proxy.js
index df49174b..76ab3309 100644
--- a/chrome/test/data/webui/signin/test_dice_web_signin_intercept_browser_proxy.js
+++ b/chrome/test/data/webui/signin/test_dice_web_signin_intercept_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {DiceWebSigninInterceptBrowserProxy} */
 export class TestDiceWebSigninInterceptBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/signin/test_enterprise_profile_welcome_browser_proxy.js b/chrome/test/data/webui/signin/test_enterprise_profile_welcome_browser_proxy.js
index e1f4905..d1ec04e 100644
--- a/chrome/test/data/webui/signin/test_enterprise_profile_welcome_browser_proxy.js
+++ b/chrome/test/data/webui/signin/test_enterprise_profile_welcome_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {EnterpriseProfileWelcomeBrowserProxy} */
 export class TestEnterpriseProfileWelcomeBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/signin/test_manage_profiles_browser_proxy.js b/chrome/test/data/webui/signin/test_manage_profiles_browser_proxy.js
index e5140bea..f29f0e7 100644
--- a/chrome/test/data/webui/signin/test_manage_profiles_browser_proxy.js
+++ b/chrome/test/data/webui/signin/test_manage_profiles_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {ManageProfilesBrowserProxy} */
 export class TestManageProfilesBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/signin/test_profile_customization_browser_proxy.js b/chrome/test/data/webui/signin/test_profile_customization_browser_proxy.js
index 5437aef..a992d39 100644
--- a/chrome/test/data/webui/signin/test_profile_customization_browser_proxy.js
+++ b/chrome/test/data/webui/signin/test_profile_customization_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {ProfileCustomizationBrowserProxy} */
 export class TestProfileCustomizationBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/signin/test_signin_reauth_browser_proxy.js b/chrome/test/data/webui/signin/test_signin_reauth_browser_proxy.js
index 4efc91c..fa8f2333 100644
--- a/chrome/test/data/webui/signin/test_signin_reauth_browser_proxy.js
+++ b/chrome/test/data/webui/signin/test_signin_reauth_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 /** @implements {SigninReauthBrowserProxy} */
 export class TestSigninReauthBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/signin/test_sync_confirmation_browser_proxy.js b/chrome/test/data/webui/signin/test_sync_confirmation_browser_proxy.js
index 5b4a41c6..9e857bed 100644
--- a/chrome/test/data/webui/signin/test_sync_confirmation_browser_proxy.js
+++ b/chrome/test/data/webui/signin/test_sync_confirmation_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 
 /** @implements {settings.ProfileInfoBrowserProxy} */
 export class TestSyncConfirmationBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/tab_search/BUILD.gn b/chrome/test/data/webui/tab_search/BUILD.gn
index 947bb3e..b720eea4 100644
--- a/chrome/test/data/webui/tab_search/BUILD.gn
+++ b/chrome/test/data/webui/tab_search/BUILD.gn
@@ -74,7 +74,7 @@
 
 js_library("test_tab_search_api_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/tab_search:tab_search",
     "//chrome/browser/ui/webui/tab_search:mojo_bindings_js_library_for_compile",
   ]
diff --git a/chrome/test/data/webui/tab_search/test_tab_search_api_proxy.js b/chrome/test/data/webui/tab_search/test_tab_search_api_proxy.js
index 9b188f4..4c82e89 100644
--- a/chrome/test/data/webui/tab_search/test_tab_search_api_proxy.js
+++ b/chrome/test/data/webui/tab_search/test_tab_search_api_proxy.js
@@ -4,7 +4,7 @@
 
 import {PageCallbackRouter, PageRemote, ProfileData, TabSearchApiProxy} from 'chrome://tab-search.top-chrome/tab_search.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {TabSearchApiProxy} */
 export class TestTabSearchApiProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/tab_strip/BUILD.gn b/chrome/test/data/webui/tab_strip/BUILD.gn
index cd0070e..388dc18 100644
--- a/chrome/test/data/webui/tab_strip/BUILD.gn
+++ b/chrome/test/data/webui/tab_strip/BUILD.gn
@@ -37,7 +37,7 @@
 
 js_library("test_tabs_api_proxy") {
   deps = [
-    "..:test_browser_proxy.m",
+    "..:test_browser_proxy",
     "//chrome/browser/resources/tab_strip:tabs_api_proxy",
     "//chrome/browser/ui/webui/tab_strip:mojo_bindings_js_library_for_compile",
   ]
diff --git a/chrome/test/data/webui/tab_strip/test_tab_strip_embedder_proxy.js b/chrome/test/data/webui/tab_strip/test_tab_strip_embedder_proxy.js
index 7ab7c35..4a4231f 100644
--- a/chrome/test/data/webui/tab_strip/test_tab_strip_embedder_proxy.js
+++ b/chrome/test/data/webui/tab_strip/test_tab_strip_embedder_proxy.js
@@ -4,7 +4,7 @@
 
 import {TabStripEmbedderProxy} from 'chrome://tab-strip.top-chrome/tab_strip_embedder_proxy.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {TabStripEmbedderProxy} */
 export class TestTabStripEmbedderProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/tab_strip/test_tabs_api_proxy.js b/chrome/test/data/webui/tab_strip/test_tabs_api_proxy.js
index 602dfdc0..1d155b0 100644
--- a/chrome/test/data/webui/tab_strip/test_tabs_api_proxy.js
+++ b/chrome/test/data/webui/tab_strip/test_tabs_api_proxy.js
@@ -6,7 +6,7 @@
 import {Tab, TabGroupVisualData} from 'chrome://tab-strip.top-chrome/tab_strip.mojom-webui.js';
 import {ExtensionsApiTab, TabsApiProxy} from 'chrome://tab-strip.top-chrome/tabs_api_proxy.js';
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {TabsApiProxy} */
 export class TestTabsApiProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/test_browser_proxy.js b/chrome/test/data/webui/test_browser_proxy.js
index bfba0285..8732c23 100644
--- a/chrome/test/data/webui/test_browser_proxy.js
+++ b/chrome/test/data/webui/test_browser_proxy.js
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// #import {assert} from 'chrome://resources/js/assert.m.js';
-// #import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
+import {assert} from 'chrome://resources/js/assert.m.js';
+import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 
 /**
  * @typedef {{resolver: !PromiseResolver,
@@ -40,7 +40,7 @@
  * });
  * --------------------------------------------------------------------------
  */
-/* #export */ class TestBrowserProxy {
+export class TestBrowserProxy {
   /**
    * @param {!Array<string>=} methodNames Names of all methods whose calls
    *     need to be tracked.
diff --git a/chrome/test/data/webui/test_plural_string_proxy.js b/chrome/test/data/webui/test_plural_string_proxy.js
index b2607fd4..12b7443 100644
--- a/chrome/test/data/webui/test_plural_string_proxy.js
+++ b/chrome/test/data/webui/test_plural_string_proxy.js
@@ -6,7 +6,7 @@
 
 // clang-format off
 import {PluralStringProxy} from 'chrome://resources/js/plural_string_proxy.js';
-import {TestBrowserProxy} from './test_browser_proxy.m.js';
+import {TestBrowserProxy} from './test_browser_proxy.js';
 // clang-format on
 
 /**
diff --git a/chrome/test/data/webui/usb_internals_test.js b/chrome/test/data/webui/usb_internals_test.js
index ff260686..45ecc3497 100644
--- a/chrome/test/data/webui/usb_internals_test.js
+++ b/chrome/test/data/webui/usb_internals_test.js
@@ -8,7 +8,7 @@
 
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 import {String16} from 'chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-webui.js';
-import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.m.js';
+import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js';
 import {UsbControlTransferParams, UsbControlTransferRecipient, UsbControlTransferType, UsbDeviceCallbackRouter, UsbDeviceRemote, UsbOpenDeviceError, UsbTransferStatus} from 'chrome://usb-internals/usb_device.mojom-webui.js';
 import {UsbInternalsPageHandler, UsbInternalsPageHandlerReceiver, UsbInternalsPageHandlerRemote} from 'chrome://usb-internals/usb_internals.mojom-webui.js';
 import {UsbDeviceManagerReceiver, UsbDeviceManagerRemote} from 'chrome://usb-internals/usb_manager.mojom-webui.js';
diff --git a/chrome/test/data/webui/welcome/test_bookmark_proxy.js b/chrome/test/data/webui/welcome/test_bookmark_proxy.js
index ec64160..0f47d35 100644
--- a/chrome/test/data/webui/welcome/test_bookmark_proxy.js
+++ b/chrome/test/data/webui/welcome/test_bookmark_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {BookmarkProxy} */
 export class TestBookmarkProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/welcome/test_google_app_proxy.js b/chrome/test/data/webui/welcome/test_google_app_proxy.js
index 519e051..e7ae2ea 100644
--- a/chrome/test/data/webui/welcome/test_google_app_proxy.js
+++ b/chrome/test/data/webui/welcome/test_google_app_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {GoogleAppProxy} */
 export class TestGoogleAppProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/welcome/test_landing_view_proxy.js b/chrome/test/data/webui/welcome/test_landing_view_proxy.js
index 7b604cf..1092d44 100644
--- a/chrome/test/data/webui/welcome/test_landing_view_proxy.js
+++ b/chrome/test/data/webui/welcome/test_landing_view_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {LandingViewProxy} */
 export class TestLandingViewProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/welcome/test_metrics_proxy.js b/chrome/test/data/webui/welcome/test_metrics_proxy.js
index 022c9bd..db0c98b 100644
--- a/chrome/test/data/webui/welcome/test_metrics_proxy.js
+++ b/chrome/test/data/webui/welcome/test_metrics_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {ModuleMetricsProxy} */
 export class TestMetricsProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/welcome/test_ntp_background_proxy.js b/chrome/test/data/webui/welcome/test_ntp_background_proxy.js
index 8bdc064c..43be7ce 100644
--- a/chrome/test/data/webui/welcome/test_ntp_background_proxy.js
+++ b/chrome/test/data/webui/welcome/test_ntp_background_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {NtpBackgroundProxy} */
 export class TestNtpBackgroundProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/welcome/test_nux_set_as_default_proxy.js b/chrome/test/data/webui/welcome/test_nux_set_as_default_proxy.js
index dba8a088..8698035e 100644
--- a/chrome/test/data/webui/welcome/test_nux_set_as_default_proxy.js
+++ b/chrome/test/data/webui/welcome/test_nux_set_as_default_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {NuxSetAsDefaultProxy} */
 export class TestNuxSetAsDefaultProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/welcome/test_signin_view_proxy.js b/chrome/test/data/webui/welcome/test_signin_view_proxy.js
index 1ac2149..8e9b100 100644
--- a/chrome/test/data/webui/welcome/test_signin_view_proxy.js
+++ b/chrome/test/data/webui/welcome/test_signin_view_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {SigninViewProxy} */
 export class TestSigninViewProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/welcome/test_welcome_browser_proxy.js b/chrome/test/data/webui/welcome/test_welcome_browser_proxy.js
index 035188ab..b17313db6 100644
--- a/chrome/test/data/webui/welcome/test_welcome_browser_proxy.js
+++ b/chrome/test/data/webui/welcome/test_welcome_browser_proxy.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 
 /** @implements {WelcomeBrowserProxy} */
 export class TestWelcomeBrowserProxy extends TestBrowserProxy {
diff --git a/chrome/test/data/webui/whats_new/whats_new_app_test.js b/chrome/test/data/webui/whats_new/whats_new_app_test.js
index 4f82b7b..9f9f8cbf 100644
--- a/chrome/test/data/webui/whats_new/whats_new_app_test.js
+++ b/chrome/test/data/webui/whats_new/whats_new_app_test.js
@@ -6,7 +6,7 @@
 import {WhatsNewProxyImpl} from 'chrome://whats-new/whats_new_proxy.js';
 
 import {assertFalse, assertTrue} from '../chai_assert.js';
-import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+import {TestBrowserProxy} from '../test_browser_proxy.js';
 import {flushTasks} from '../test_util.m.js';
 
 class TestWhatsNewProxy extends TestBrowserProxy {
diff --git a/chromecast/OWNERS b/chromecast/OWNERS
index 5fdd3471..5381b50 100644
--- a/chromecast/OWNERS
+++ b/chromecast/OWNERS
@@ -8,6 +8,9 @@
 per-file *android*=file://chromecast/android/OWNERS
 per-file *.java=file://chromecast/android/OWNERS
 
+# Fuchsia integration owners:
+per-file *fuchsia*=file://build/fuchsia/OWNERS
+
 # For major changes, please use one of the reviewers above!
 dnicoara@chromium.org
 spang@chromium.org
diff --git a/chromecast/browser/cast_browser_main_parts.cc b/chromecast/browser/cast_browser_main_parts.cc
index d759a0d..c355502 100644
--- a/chromecast/browser/cast_browser_main_parts.cc
+++ b/chromecast/browser/cast_browser_main_parts.cc
@@ -145,8 +145,8 @@
 #include "base/callback_helpers.h"
 #include "chromecast/base/cast_sys_info_util.h"
 #include "chromecast/public/cast_sys_info.h"
-#include "components/heap_profiling/multi_process/client_connection_manager.h"
-#include "components/heap_profiling/multi_process/supervisor.h"
+#include "components/heap_profiling/multi_process/client_connection_manager.h"  // nogncheck
+#include "components/heap_profiling/multi_process/supervisor.h"  // nogncheck
 #endif  // !defined(OS_FUCHSIA)
 
 namespace {
diff --git a/chromecast/crash/fuchsia/cast_crash_storage_impl_fuchsia.h b/chromecast/crash/fuchsia/cast_crash_storage_impl_fuchsia.h
index 52e450d..5514fe8 100644
--- a/chromecast/crash/fuchsia/cast_crash_storage_impl_fuchsia.h
+++ b/chromecast/crash/fuchsia/cast_crash_storage_impl_fuchsia.h
@@ -12,24 +12,24 @@
 
 namespace chromecast {
 
-class CastCrashStorageImplFuchsia : public CastCrashStorage {
+class CastCrashStorageImplFuchsia final : public CastCrashStorage {
  public:
   explicit CastCrashStorageImplFuchsia(
       const sys::ServiceDirectory* incoming_directory);
-  ~CastCrashStorageImplFuchsia() final;
+  ~CastCrashStorageImplFuchsia() override;
   CastCrashStorageImplFuchsia& operator=(const CastCrashStorageImplFuchsia&) =
       delete;
   CastCrashStorageImplFuchsia(const CastCrashStorageImplFuchsia&) = delete;
 
   // CastCrashStorage implementation:
-  void SetLastLaunchedApp(base::StringPiece app_id) final;
-  void ClearLastLaunchedApp() final;
-  void SetCurrentApp(base::StringPiece app_id) final;
-  void ClearCurrentApp() final;
-  void SetPreviousApp(base::StringPiece app_id) final;
-  void ClearPreviousApp() final;
-  void SetStadiaSessionId(base::StringPiece session_id) final;
-  void ClearStadiaSessionId() final;
+  void SetLastLaunchedApp(base::StringPiece app_id) override;
+  void ClearLastLaunchedApp() override;
+  void SetCurrentApp(base::StringPiece app_id) override;
+  void ClearCurrentApp() override;
+  void SetPreviousApp(base::StringPiece app_id) override;
+  void ClearPreviousApp() override;
+  void SetStadiaSessionId(base::StringPiece session_id) override;
+  void ClearStadiaSessionId() override;
 
  private:
   void UpsertAnnotations(
diff --git a/chromeos/components/camera_app_ui/resources/js/mojo/device_operator.js b/chromeos/components/camera_app_ui/resources/js/mojo/device_operator.js
index f4ef3fd4..c76dd12 100644
--- a/chromeos/components/camera_app_ui/resources/js/mojo/device_operator.js
+++ b/chromeos/components/camera_app_ui/resources/js/mojo/device_operator.js
@@ -17,6 +17,7 @@
 import {WaitableEvent} from '../waitable_event.js';
 
 import {
+  closeEndpoint,
   MojoEndpoint,  // eslint-disable-line no-unused-vars
   wrapEndpoint,
 } from './util.js';
@@ -570,6 +571,7 @@
    * @param {string} deviceId Id of the target device.
    */
   dropConnection(deviceId) {
+    closeEndpoint(this.devices_.get(deviceId));
     this.devices_.delete(deviceId);
   }
 
diff --git a/chromeos/components/camera_app_ui/resources/strings/camera_strings_ta.xtb b/chromeos/components/camera_app_ui/resources/strings/camera_strings_ta.xtb
index c58b37b..1c887b90 100644
--- a/chromeos/components/camera_app_ui/resources/strings/camera_strings_ta.xtb
+++ b/chromeos/components/camera_app_ui/resources/strings/camera_strings_ta.xtb
@@ -118,6 +118,7 @@
 <translation id="8828441885228359828">ரெக்கார்டிங்கை மீண்டும் தொடங்கு</translation>
 <translation id="8870695351537079478">பதிவுசெய்வதைத் தொடங்க முடியவில்லை</translation>
 <translation id="8903921497873541725">பெரிதாக்கு</translation>
+<translation id="9045010116236796332">ஃபிரேமிற்குள் இருக்கும் வகையில் ஆவணத்தைச் சரிசெய்யவும்</translation>
 <translation id="9045155556724273246">10 விநாடிகள்</translation>
 <translation id="945522503751344254">கருத்தை அனுப்பு</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/components/camera_app_ui/resources/strings/camera_strings_te.xtb b/chromeos/components/camera_app_ui/resources/strings/camera_strings_te.xtb
index f43cc3f9..62179e50 100644
--- a/chromeos/components/camera_app_ui/resources/strings/camera_strings_te.xtb
+++ b/chromeos/components/camera_app_ui/resources/strings/camera_strings_te.xtb
@@ -118,6 +118,7 @@
 <translation id="8828441885228359828">రికార్డింగ్ కొనసాగించు</translation>
 <translation id="8870695351537079478">రికార్డింగ్‌ను ప్రారంభించడం సాధ్యం కాలేదు</translation>
 <translation id="8903921497873541725">దగ్గరికి జూమ్ చేయి</translation>
+<translation id="9045010116236796332">డాక్యుమెంట్‌లోని అన్ని అంచులు ఫ్రేమ్ లోపల వచ్చేటట్టుగా ఉంచండి</translation>
 <translation id="9045155556724273246">10 సెకన్లు</translation>
 <translation id="945522503751344254">ఫీడ్‌బ్యాక్ పంపండి</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/components/personalization_app/resources/trusted/wallpaper_selected_element.js b/chromeos/components/personalization_app/resources/trusted/wallpaper_selected_element.js
index aea3424..ab52fbe 100644
--- a/chromeos/components/personalization_app/resources/trusted/wallpaper_selected_element.js
+++ b/chromeos/components/personalization_app/resources/trusted/wallpaper_selected_element.js
@@ -68,11 +68,12 @@
       },
 
       /**
-       * @type {?chromeos.personalizationApp.mojom.WallpaperImage}
+       * @type {?chromeos.personalizationApp.mojom.CurrentWallpaper}
        * @private
        */
       image_: {
         type: Object,
+        observer: 'onImageChanged_',
       },
 
       /**
@@ -208,7 +209,7 @@
   }
 
   /**
-   * @param {?chromeos.personalizationApp.mojom.WallpaperImage} image
+   * @param {?chromeos.personalizationApp.mojom.CurrentWallpaper} image
    * @param {boolean} loading
    * @return {boolean}
    * @private
@@ -241,10 +242,22 @@
    * @private
    */
   computeImageTitle_(image, dailyRefreshCollectionId) {
-    if (!!image && isNonEmptyArray(image.attribution)) {
+    if (!image)
+      return this.i18n('unknownImageAttribution');
+    if (isNonEmptyArray(image.attribution)) {
+      let title = image.attribution[0];
       return !!dailyRefreshCollectionId ?
-          this.i18n('dailyRefresh') + ': ' + image.attribution[0] :
-          image.attribution[0];
+          this.i18n('dailyRefresh') + ': ' + title :
+          title;
+    } else {
+      // Fallback to cached attribution.
+      let attribution = this.getLocalStorageAttribution(image.key);
+      if (isNonEmptyArray(attribution)) {
+        let title = attribution[0];
+        return !!dailyRefreshCollectionId ?
+            this.i18n('dailyRefresh') + ': ' + title :
+            title;
+      }
     }
     return this.i18n('unknownImageAttribution');
   }
@@ -255,8 +268,14 @@
    * @private
    */
   computeImageOtherAttribution_(image) {
-    if (!!image && isNonEmptyArray(image.attribution)) {
+    if (!image)
+      return [];
+    if (isNonEmptyArray(image.attribution))
       return image.attribution.slice(1);
+    // Fallback to cached attribution.
+    let attribution = this.getLocalStorageAttribution(image.key);
+    if (isNonEmptyArray(attribution)) {
+      return attribution.slice(1);
     }
     return [];
   }
@@ -399,7 +418,7 @@
   }
 
   /**
-   * @param {?chromeos.personalizationApp.mojom.WallpaperImage} image
+   * @param {?chromeos.personalizationApp.mojom.CurrentWallpaper} image
    * @param {boolean} loading
    * @return {boolean}
    * @private
@@ -409,14 +428,24 @@
   }
 
   /**
-   * @param {?chromeos.personalizationApp.mojom.WallpaperImage} image
+   * @param {?chromeos.personalizationApp.mojom.CurrentWallpaper} image
    * @return {string}
    * @private
    */
   getAriaLabel_(image) {
-    if (!!image && isNonEmptyArray(image.attribution)) {
+    if (!image) {
+      return this.i18n('currentlySet') + ' ' +
+          this.i18n('unknownImageAttribution');
+    }
+    if (isNonEmptyArray(image.attribution)) {
       return [this.i18n('currentlySet'), ...image.attribution].join(' ');
     }
+    // Fallback to cached attribution.
+    let attribution =
+        /** @type {!Iterable} */ (this.getLocalStorageAttribution(image.key));
+    if (isNonEmptyArray(attribution)) {
+      return [this.i18n('currentlySet'), ...attribution].join(' ');
+    }
     return this.i18n('currentlySet') + ' ' +
         this.i18n('unknownImageAttribution');
   }
@@ -431,6 +460,38 @@
   isLoadingPlaceholderHidden_(loading, showImage) {
     return showImage || !loading;
   }
+
+  /**
+   * Cache the attribution in local storage when image is updated
+   * Populate the attribution map in local storage when image is updated
+   * @param {?chromeos.personalizationApp.mojom.CurrentWallpaper} newImage
+   * @param {?chromeos.personalizationApp.mojom.CurrentWallpaper} oldImage
+   * @private
+   */
+  async onImageChanged_(newImage, oldImage) {
+    let attributionMap = /** @type {Object<string, Array<string>>} */ (
+        JSON.parse((window.localStorage['attribution'] || '{}')));
+    if (attributionMap.size == 0 ||
+        !!newImage && !!oldImage && newImage.key !== oldImage.key) {
+      attributionMap[newImage.key] = newImage.attribution;
+      delete attributionMap[oldImage.key];
+      window.localStorage['attribution'] = JSON.stringify(attributionMap);
+    }
+  }
+
+  /**
+   * @param {string} key
+   * @return {Array<!string>}
+   */
+  getLocalStorageAttribution(key) {
+    let attributionMap = /** @type {Object<string, Array<string>>} */ (
+        JSON.parse((window.localStorage['attribution'] || '{}')));
+    let attribution = attributionMap[key];
+    if (!attribution) {
+      console.warn('Unable to get attribution from local storage.', key);
+    }
+    return attribution;
+  }
 }
 
 customElements.define(WallpaperSelected.is, WallpaperSelected);
diff --git a/chromeos/components/projector_app/projector_app_constants.cc b/chromeos/components/projector_app/projector_app_constants.cc
index 00f0c97..970d173 100644
--- a/chromeos/components/projector_app/projector_app_constants.cc
+++ b/chromeos/components/projector_app/projector_app_constants.cc
@@ -10,5 +10,10 @@
 const char kChromeUIUntrustedProjectorAppUrl[] =
     "chrome-untrusted://projector/";
 const char kChromeUITrustedProjectorAppUrl[] = "chrome://projector/";
+const char kChromeUITrustedProjectorSelfieCamUrl[] =
+    "chrome://projector/selfie_cam/selfie_cam.html";
+// TODO(b/195127670): Rename after setting up the gallery view.
+const char kChromeUITrustedProjectorPlayerUrl[] =
+    "chrome://projector/player_app/player_app.html";
 
 }  // namespace chromeos
diff --git a/chromeos/components/projector_app/projector_app_constants.h b/chromeos/components/projector_app/projector_app_constants.h
index 8818dbf..6f9039e8 100644
--- a/chromeos/components/projector_app/projector_app_constants.h
+++ b/chromeos/components/projector_app/projector_app_constants.h
@@ -11,6 +11,8 @@
 extern const char kChromeUIProjectorAppHost[];
 extern const char kChromeUIUntrustedProjectorAppUrl[];
 extern const char kChromeUITrustedProjectorAppUrl[];
+extern const char kChromeUITrustedProjectorSelfieCamUrl[];
+extern const char kChromeUITrustedProjectorPlayerUrl[];
 
 }  // namespace chromeos
 
diff --git a/chromeos/components/projector_app/trusted_projector_ui.cc b/chromeos/components/projector_app/trusted_projector_ui.cc
index fd11577..9952b00 100644
--- a/chromeos/components/projector_app/trusted_projector_ui.cc
+++ b/chromeos/components/projector_app/trusted_projector_ui.cc
@@ -72,12 +72,13 @@
     DCHECK(projector_session);
     bool should_show = false;
     if (projector_session->is_active()) {
+      projector_controller->SetProjectorToolsVisible(false);
       projector_session->Stop();
     } else {
       projector_session->Start(ash::SourceType::kUnset);
+      projector_controller->SetProjectorToolsVisible(true);
       should_show = true;
     }
-    projector_controller->SetProjectorToolsVisible(should_show);
     ResolveJavascriptCallback(args->GetList()[0], base::Value(should_show));
   }
 };
diff --git a/chromeos/network/managed_network_configuration_handler_impl.cc b/chromeos/network/managed_network_configuration_handler_impl.cc
index 54a3974..68482ee 100644
--- a/chromeos/network/managed_network_configuration_handler_impl.cc
+++ b/chromeos/network/managed_network_configuration_handler_impl.cc
@@ -314,7 +314,7 @@
 
 void ManagedNetworkConfigurationHandlerImpl::SetManagedActiveProxyValues(
     const std::string& guid,
-    base::DictionaryValue* dictionary) {
+    base::Value* dictionary) {
   DCHECK(ui_proxy_config_service_);
   const std::string proxy_settings_key = ::onc::network_config::kProxySettings;
   base::Value* proxy_settings = dictionary->FindKeyOfType(
@@ -1152,9 +1152,9 @@
     global_policy = &policies->global_network_config;
   }
 
-  std::unique_ptr<base::DictionaryValue> augmented_properties(
+  std::unique_ptr<base::Value> augmented_properties =
       policy_util::CreateManagedONC(global_policy, network_policy,
-                                    user_settings, onc_network.get(), profile));
+                                    user_settings, onc_network.get(), profile);
   SetManagedActiveProxyValues(*guid, augmented_properties.get());
   std::move(callback).Run(service_path,
                           absl::make_optional(base::Value::FromUniquePtrValue(
diff --git a/chromeos/network/managed_network_configuration_handler_impl.h b/chromeos/network/managed_network_configuration_handler_impl.h
index ddd65921..81e7462 100644
--- a/chromeos/network/managed_network_configuration_handler_impl.h
+++ b/chromeos/network/managed_network_configuration_handler_impl.h
@@ -213,7 +213,7 @@
   // (provided by kProxy prefence) should have precedence over configurations
   // set by ONC policy.
   void SetManagedActiveProxyValues(const std::string& guid,
-                                   base::DictionaryValue* dictionary);
+                                   base::Value* dictionary);
 
   // Applies policies for |userhash|. |modified_policies| must be not null and
   // contain the GUIDs of the network configurations that changed since the last
diff --git a/chromeos/network/onc/onc_merger.cc b/chromeos/network/onc/onc_merger.cc
index 8378f08..b39ee903 100644
--- a/chromeos/network/onc/onc_merger.cc
+++ b/chromeos/network/onc/onc_merger.cc
@@ -49,10 +49,10 @@
 // Inserts |true| at every field name in |result| that is recommended in
 // |policy|.
 void MarkRecommendedFieldnames(const base::DictionaryValue& policy,
-                               base::DictionaryValue* result) {
-  const base::ListValue* recommended_value = NULL;
-  if (!policy.GetListWithoutPathExpansion(::onc::kRecommended,
-                                          &recommended_value))
+                               base::Value* result) {
+  const base::Value* recommended_value =
+      policy.FindListKey(::onc::kRecommended);
+  if (!recommended_value)
     return;
   for (const auto& value : recommended_value->GetList()) {
     if (value.is_string())
@@ -69,7 +69,7 @@
   // Recurse into nested dictionaries.
   for (base::DictionaryValue::Iterator it(policy); !it.IsAtEnd();
        it.Advance()) {
-    const base::DictionaryValue* child_policy = NULL;
+    const base::DictionaryValue* child_policy = nullptr;
     if (it.key() == ::onc::kRecommended ||
         !it.value().GetAsDictionary(&child_policy)) {
       continue;
@@ -96,8 +96,8 @@
   // that path in each of the dictionaries. This function returns a new
   // dictionary containing all results of MergeListOfValues at the respective
   // paths. The resulting dictionary doesn't contain empty dictionaries.
-  DictionaryPtr MergeDictionaries(const DictPtrs &dicts) {
-    DictionaryPtr result(new base::DictionaryValue);
+  std::unique_ptr<base::Value> MergeDictionaries(const DictPtrs& dicts) {
+    auto result = std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
     std::set<std::string> visited;
     for (DictPtrs::const_iterator it_outer = dicts.begin();
          it_outer != dicts.end(); ++it_outer) {
@@ -115,19 +115,20 @@
           DictPtrs nested_dicts;
           for (DictPtrs::const_iterator it_inner = dicts.begin();
                it_inner != dicts.end(); ++it_inner) {
-            const base::DictionaryValue* nested_dict = NULL;
+            const base::DictionaryValue* nested_dict = nullptr;
             if (*it_inner)
               (*it_inner)->GetDictionaryWithoutPathExpansion(key, &nested_dict);
             nested_dicts.push_back(nested_dict);
           }
-          DictionaryPtr merged_dict(MergeNestedDictionaries(key, nested_dicts));
+          std::unique_ptr<base::Value> merged_dict =
+              MergeNestedDictionaries(key, nested_dicts);
           if (!merged_dict->DictEmpty())
             merged_value = std::move(merged_dict);
         } else {
           std::vector<const base::Value*> values;
           for (DictPtrs::const_iterator it_inner = dicts.begin();
                it_inner != dicts.end(); ++it_inner) {
-            const base::Value* value = NULL;
+            const base::Value* value = nullptr;
             if (*it_inner)
               value = (*it_inner)->FindKey(key);
             values.push_back(value);
@@ -147,13 +148,14 @@
   // This function is called by MergeDictionaries for each list of values that
   // are located at the same path in each of the dictionaries. The order of the
   // values is the same as of the given dictionaries |dicts|. If a dictionary
-  // doesn't contain a path then it's value is NULL.
+  // doesn't contain a path then it's value is null.
   virtual std::unique_ptr<base::Value> MergeListOfValues(
       const std::string& key,
       const std::vector<const base::Value*>& values) = 0;
 
-  virtual DictionaryPtr MergeNestedDictionaries(const std::string& key,
-                                                const DictPtrs &dicts) {
+  virtual std::unique_ptr<base::Value> MergeNestedDictionaries(
+      const std::string& key,
+      const DictPtrs& dicts) {
     return MergeDictionaries(dicts);
   }
 
@@ -180,24 +182,24 @@
   // MergeValues is called. Its results are collected in a new dictionary which
   // is then returned. The resulting dictionary never contains empty
   // dictionaries.
-  DictionaryPtr MergeDictionaries(
+  std::unique_ptr<base::Value> MergeDictionaries(
       const base::DictionaryValue* user_policy,
       const base::DictionaryValue* device_policy,
       const base::DictionaryValue* user_settings,
       const base::DictionaryValue* shared_settings,
       const base::DictionaryValue* active_settings) {
-    hasUserPolicy_ = (user_policy != NULL);
-    hasDevicePolicy_ = (device_policy != NULL);
+    hasUserPolicy_ = (user_policy != nullptr);
+    hasDevicePolicy_ = (device_policy != nullptr);
 
     DictionaryPtr user_editable;
-    if (user_policy != NULL)
+    if (user_policy)
       user_editable = GetEditableFlags(*user_policy);
 
     DictionaryPtr device_editable;
-    if (device_policy != NULL)
+    if (device_policy)
       device_editable = GetEditableFlags(*device_policy);
 
-    std::vector<const base::DictionaryValue*> dicts(kLastIndex, NULL);
+    std::vector<const base::DictionaryValue*> dicts(kLastIndex, nullptr);
     dicts[kUserPolicyIndex] = user_policy;
     dicts[kDevicePolicyIndex] = device_policy;
     dicts[kUserSettingsIndex] = user_settings;
@@ -217,14 +219,10 @@
       const ValueParams& values) = 0;
 
   // Whether a user policy was provided.
-  bool HasUserPolicy() {
-    return hasUserPolicy_;
-  }
+  bool HasUserPolicy() { return hasUserPolicy_; }
 
   // Whether a device policy was provided.
-  bool HasDevicePolicy() {
-    return hasDevicePolicy_;
-  }
+  bool HasDevicePolicy() { return hasDevicePolicy_; }
 
   // MergeListOfDictionaries override.
   std::unique_ptr<base::Value> MergeListOfValues(
@@ -277,15 +275,14 @@
   // Merges |values| to the effective value (Mandatory policy overwrites user
   // settings overwrites shared settings overwrites recommended policy). |which|
   // is set to the respective onc::kAugmentation* constant that indicates which
-  // source of settings is effective. Note that this function may return a NULL
-  // pointer and set |which| to ::onc::kAugmentationUserPolicy, which means that
-  // the
+  // source of settings is effective. Note that this function may return nullptr
+  // and set |which| to ::onc::kAugmentationUserPolicy, which means that the
   // user policy didn't set a value but also didn't recommend it, thus enforcing
   // the empty value.
   std::unique_ptr<base::Value> MergeValues(const std::string& key,
                                            const ValueParams& values,
                                            std::string* which) {
-    const base::Value* result = NULL;
+    const base::Value* result = nullptr;
     which->clear();
     if (!values.user_editable) {
       result = values.user_policy;
@@ -352,7 +349,7 @@
  public:
   MergeToAugmented() = default;
 
-  DictionaryPtr MergeDictionaries(
+  std::unique_ptr<base::Value> MergeDictionaries(
       const OncValueSignature& signature,
       const base::DictionaryValue* user_policy,
       const base::DictionaryValue* device_policy,
@@ -360,10 +357,8 @@
       const base::DictionaryValue* shared_settings,
       const base::DictionaryValue* active_settings) {
     signature_ = &signature;
-    return MergeToEffective::MergeDictionaries(user_policy,
-                                               device_policy,
-                                               user_settings,
-                                               shared_settings,
+    return MergeToEffective::MergeDictionaries(user_policy, device_policy,
+                                               user_settings, shared_settings,
                                                active_settings);
   }
 
@@ -371,7 +366,7 @@
   // MergeSettingsAndPolicies override.
   std::unique_ptr<base::Value> MergeValues(const std::string& key,
                                            const ValueParams& values) override {
-    const OncFieldSignature* field = NULL;
+    const OncFieldSignature* field = nullptr;
     if (signature_)
       field = GetFieldSignature(*signature_, key);
 
@@ -475,12 +470,13 @@
   }
 
   // MergeListOfDictionaries override.
-  DictionaryPtr MergeNestedDictionaries(const std::string& key,
-                                        const DictPtrs& dicts) override {
-    DictionaryPtr result;
+  std::unique_ptr<base::Value> MergeNestedDictionaries(
+      const std::string& key,
+      const DictPtrs& dicts) override {
+    std::unique_ptr<base::Value> result;
     if (signature_) {
       const OncValueSignature* enclosing_signature = signature_;
-      signature_ = NULL;
+      signature_ = nullptr;
 
       const OncFieldSignature* field =
           GetFieldSignature(*enclosing_signature, key);
@@ -502,17 +498,17 @@
 
 }  // namespace
 
-DictionaryPtr MergeSettingsAndPoliciesToEffective(
+std::unique_ptr<base::Value> MergeSettingsAndPoliciesToEffective(
     const base::DictionaryValue* user_policy,
     const base::DictionaryValue* device_policy,
     const base::DictionaryValue* user_settings,
     const base::DictionaryValue* shared_settings) {
   MergeToEffective merger;
-  return merger.MergeDictionaries(
-      user_policy, device_policy, user_settings, shared_settings, NULL);
+  return merger.MergeDictionaries(user_policy, device_policy, user_settings,
+                                  shared_settings, nullptr);
 }
 
-DictionaryPtr MergeSettingsAndPoliciesToAugmented(
+std::unique_ptr<base::Value> MergeSettingsAndPoliciesToAugmented(
     const OncValueSignature& signature,
     const base::DictionaryValue* user_policy,
     const base::DictionaryValue* device_policy,
@@ -520,9 +516,9 @@
     const base::DictionaryValue* shared_settings,
     const base::DictionaryValue* active_settings) {
   MergeToAugmented merger;
-  return merger.MergeDictionaries(
-      signature, user_policy, device_policy, user_settings, shared_settings,
-      active_settings);
+  return merger.MergeDictionaries(signature, user_policy, device_policy,
+                                  user_settings, shared_settings,
+                                  active_settings);
 }
 
 }  // namespace onc
diff --git a/chromeos/network/onc/onc_merger.h b/chromeos/network/onc/onc_merger.h
index 493fa215..ac16f0a 100644
--- a/chromeos/network/onc/onc_merger.h
+++ b/chromeos/network/onc/onc_merger.h
@@ -11,6 +11,7 @@
 
 namespace base {
 class DictionaryValue;
+class Value;
 }
 
 namespace chromeos {
@@ -28,7 +29,7 @@
 // dispensable) that can be removed by the caller using the ONC normalizer. ONC
 // conformance of the arguments is not checked. Use ONC validator for that.
 COMPONENT_EXPORT(CHROMEOS_NETWORK)
-std::unique_ptr<base::DictionaryValue> MergeSettingsAndPoliciesToEffective(
+std::unique_ptr<base::Value> MergeSettingsAndPoliciesToEffective(
     const base::DictionaryValue* user_policy,
     const base::DictionaryValue* device_policy,
     const base::DictionaryValue* user_settings,
@@ -42,7 +43,7 @@
 // overrides all other values. Credentials from policies are not written to the
 // result.
 COMPONENT_EXPORT(CHROMEOS_NETWORK)
-std::unique_ptr<base::DictionaryValue> MergeSettingsAndPoliciesToAugmented(
+std::unique_ptr<base::Value> MergeSettingsAndPoliciesToAugmented(
     const OncValueSignature& signature,
     const base::DictionaryValue* user_policy,
     const base::DictionaryValue* device_policy,
diff --git a/chromeos/network/onc/onc_merger_unittest.cc b/chromeos/network/onc/onc_merger_unittest.cc
index d0d283f3..e39aee6 100644
--- a/chromeos/network/onc/onc_merger_unittest.cc
+++ b/chromeos/network/onc/onc_merger_unittest.cc
@@ -17,28 +17,28 @@
 namespace {
 
 // Checks that both dictionaries contain an entry at |path| with the same value.
-::testing::AssertionResult HaveSameValueAt(const base::DictionaryValue& a,
-                                           const base::DictionaryValue& b,
+::testing::AssertionResult HaveSameValueAt(const base::Value& a,
+                                           const base::Value& b,
                                            const std::string& path) {
-  const base::Value* a_value = NULL;
-  if (!a.Get(path, &a_value)) {
+  const base::Value* a_value = a.FindPath(path);
+  if (!a_value) {
     return ::testing::AssertionFailure()
-        << "First dictionary '" << a << "' doesn't contain " << path;
+           << "First dictionary '" << a << "' doesn't contain " << path;
   }
 
-  const base::Value* b_value = NULL;
-  if (!b.Get(path, &b_value)) {
+  const base::Value* b_value = b.FindPath(path);
+  if (!b_value) {
     return ::testing::AssertionFailure()
-        << "Second dictionary '" << b << "' doesn't contain " << path;
+           << "Second dictionary '" << b << "' doesn't contain " << path;
   }
 
   if (*a_value == *b_value) {
     return ::testing::AssertionSuccess()
-        << "Entries at '" << path << "' are equal";
+           << "Entries at '" << path << "' are equal";
   } else {
     return ::testing::AssertionFailure()
-        << "Entries at '" << path << "' not equal but are '"
-        << *a_value << "' and '" << *b_value << "'";
+           << "Entries at '" << path << "' not equal but are '" << *a_value
+           << "' and '" << *b_value << "'";
   }
 }
 
@@ -65,100 +65,91 @@
 };
 
 TEST_F(ONCMergerTest, MandatoryValueOverwritesUserValue) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(policy_.get(), NULL, user_.get(),
-                                          NULL));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      policy_.get(), nullptr, user_.get(), nullptr));
   EXPECT_TRUE(HaveSameValueAt(*merged, *policy_, "Type"));
   EXPECT_TRUE(HaveSameValueAt(*merged, *policy_, "StaticIPConfig"));
 }
 
 TEST_F(ONCMergerTest, MandatoryValueAndNoUserValue) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(policy_.get(), NULL, user_.get(),
-                                          NULL));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      policy_.get(), nullptr, user_.get(), nullptr));
   EXPECT_TRUE(HaveSameValueAt(*merged, *policy_, "GUID"));
   EXPECT_TRUE(HaveSameValueAt(*merged, *policy_, "VPN.OpenVPN.Username"));
 }
 
 TEST_F(ONCMergerTest, MandatoryDictionaryAndNoUserValue) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(policy_.get(), NULL, user_.get(),
-                                          NULL));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      policy_.get(), nullptr, user_.get(), nullptr));
   EXPECT_TRUE(HaveSameValueAt(*merged, *policy_without_recommended_,
                               "VPN.OpenVPN.ClientCertPattern"));
 }
 
 TEST_F(ONCMergerTest, UserValueOverwritesRecommendedValue) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(policy_.get(), NULL, user_.get(),
-                                          NULL));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      policy_.get(), nullptr, user_.get(), nullptr));
   EXPECT_TRUE(HaveSameValueAt(*merged, *user_, "VPN.Host"));
 }
 
 TEST_F(ONCMergerTest, UserValueAndRecommendedUnset) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(policy_.get(), NULL, user_.get(),
-                                          NULL));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      policy_.get(), nullptr, user_.get(), nullptr));
   EXPECT_TRUE(HaveSameValueAt(*merged, *user_, "VPN.OpenVPN.Password"));
 }
 
 TEST_F(ONCMergerTest, UserDictionaryAndNoPolicyValue) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(policy_.get(), NULL, user_.get(),
-                                          NULL));
-  const base::Value* value = NULL;
-  EXPECT_FALSE(merged->Get("ProxySettings", &value));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      policy_.get(), nullptr, user_.get(), nullptr));
+  EXPECT_FALSE(merged->FindKey("ProxySettings"));
 }
 
 TEST_F(ONCMergerTest, MergeWithEmptyPolicyProhibitsEverything) {
   base::DictionaryValue emptyDict;
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(&emptyDict, NULL, user_.get(), NULL));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      &emptyDict, nullptr, user_.get(), nullptr));
   EXPECT_TRUE(merged->DictEmpty());
 }
 
 TEST_F(ONCMergerTest, MergeWithoutPolicyAllowsAnything) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(NULL, NULL, user_.get(), NULL));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      nullptr, nullptr, user_.get(), nullptr));
   EXPECT_TRUE(test_utils::Equals(user_.get(), merged.get()));
 }
 
 TEST_F(ONCMergerTest, MergeWithoutUserSettings) {
   base::DictionaryValue emptyDict;
-  std::unique_ptr<base::DictionaryValue> merged;
+  std::unique_ptr<base::Value> merged;
 
-  merged = MergeSettingsAndPoliciesToEffective(
-      policy_.get(), NULL, &emptyDict, NULL);
-  EXPECT_TRUE(test_utils::Equals(policy_without_recommended_.get(),
-                                 merged.get()));
+  merged = MergeSettingsAndPoliciesToEffective(policy_.get(), nullptr,
+                                               &emptyDict, nullptr);
+  EXPECT_TRUE(
+      test_utils::Equals(policy_without_recommended_.get(), merged.get()));
 
-  merged = MergeSettingsAndPoliciesToEffective(policy_.get(), NULL, NULL, NULL);
-  EXPECT_TRUE(test_utils::Equals(policy_without_recommended_.get(),
-                                 merged.get()));
+  merged = MergeSettingsAndPoliciesToEffective(policy_.get(), nullptr, nullptr,
+                                               nullptr);
+  EXPECT_TRUE(
+      test_utils::Equals(policy_without_recommended_.get(), merged.get()));
 }
 
 TEST_F(ONCMergerTest, MandatoryUserPolicyOverwritesDevicePolicy) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(policy_.get(), device_policy_.get(),
-                                          user_.get(), NULL));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      policy_.get(), device_policy_.get(), user_.get(), nullptr));
   EXPECT_TRUE(HaveSameValueAt(*merged, *policy_, "VPN.OpenVPN.Port"));
 }
 
 TEST_F(ONCMergerTest, MandatoryDevicePolicyOverwritesRecommendedUserPolicy) {
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToEffective(policy_.get(), device_policy_.get(),
-                                          user_.get(), NULL));
-  EXPECT_TRUE(HaveSameValueAt(*merged, *device_policy_,
-                              "VPN.OpenVPN.Username"));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToEffective(
+      policy_.get(), device_policy_.get(), user_.get(), nullptr));
+  EXPECT_TRUE(
+      HaveSameValueAt(*merged, *device_policy_, "VPN.OpenVPN.Username"));
 }
 
 TEST_F(ONCMergerTest, MergeToAugmented) {
-  std::unique_ptr<base::DictionaryValue> expected_augmented =
+  std::unique_ptr<base::Value> expected_augmented =
       test_utils::ReadTestDictionary("augmented_merge.json");
-  std::unique_ptr<base::DictionaryValue> merged(
-      MergeSettingsAndPoliciesToAugmented(kNetworkConfigurationSignature,
-                                          policy_.get(), device_policy_.get(),
-                                          user_.get(), NULL, active_.get()));
+  std::unique_ptr<base::Value> merged(MergeSettingsAndPoliciesToAugmented(
+      kNetworkConfigurationSignature, policy_.get(), device_policy_.get(),
+      user_.get(), nullptr, active_.get()));
   EXPECT_TRUE(test_utils::Equals(expected_augmented.get(), merged.get()));
 }
 
diff --git a/chromeos/network/policy_util.cc b/chromeos/network/policy_util.cc
index 794a979..27c386c 100644
--- a/chromeos/network/policy_util.cc
+++ b/chromeos/network/policy_util.cc
@@ -39,22 +39,18 @@
 // Removes all kFakeCredential values from sensitive fields (determined by
 // onc::FieldIsCredential) of |onc_object|.
 void RemoveFakeCredentials(const onc::OncValueSignature& signature,
-                           base::DictionaryValue* onc_object) {
+                           base::Value* onc_object) {
   std::vector<std::string> entries_to_remove;
-  for (base::DictionaryValue::Iterator it(*onc_object); !it.IsAtEnd();
-       it.Advance()) {
-    std::string field_name = it.key();
-    // We need the non-const entry to remove nested values but DictionaryValue
-    // has no non-const iterator.
-    base::Value* value = onc_object->FindKey(field_name);
+  for (auto iter : onc_object->DictItems()) {
+    std::string field_name = iter.first;
+    base::Value* value = &iter.second;
 
     // If |value| is a dictionary, recurse.
-    base::DictionaryValue* nested_object = nullptr;
-    if (value->GetAsDictionary(&nested_object)) {
+    if (value->is_dict()) {
       const onc::OncFieldSignature* field_signature =
           onc::GetFieldSignature(signature, field_name);
       if (field_signature)
-        RemoveFakeCredentials(*field_signature->value_signature, nested_object);
+        RemoveFakeCredentials(*field_signature->value_signature, value);
       else
         LOG(ERROR) << "ONC has unrecognized field: " << field_name;
       continue;
@@ -160,9 +156,8 @@
                        base::Value(base::Value::Type::DICTIONARY));
 }
 
-void ApplyGlobalAutoconnectPolicy(
-    NetworkProfile::Type profile_type,
-    base::DictionaryValue* augmented_onc_network) {
+void ApplyGlobalAutoconnectPolicy(NetworkProfile::Type profile_type,
+                                  base::Value* augmented_onc_network) {
   std::string type =
       GetString(*augmented_onc_network, ::onc::network_config::kType);
   if (type.empty()) {
@@ -203,7 +198,7 @@
 
 }  // namespace
 
-std::unique_ptr<base::DictionaryValue> CreateManagedONC(
+std::unique_ptr<base::Value> CreateManagedONC(
     const base::DictionaryValue* global_policy,
     const base::DictionaryValue* network_policy,
     const base::DictionaryValue* user_settings,
@@ -228,7 +223,7 @@
   }
 
   // This call also removes credentials from policies.
-  std::unique_ptr<base::DictionaryValue> augmented_onc_network =
+  std::unique_ptr<base::Value> augmented_onc_network =
       onc::MergeSettingsAndPoliciesToAugmented(
           onc::kNetworkConfigurationSignature, user_policy, device_policy,
           nonshared_user_settings, shared_user_settings, active_settings);
@@ -288,7 +283,7 @@
     const base::DictionaryValue* global_policy,
     const base::DictionaryValue* network_policy,
     const base::DictionaryValue* user_settings) {
-  std::unique_ptr<base::DictionaryValue> effective;
+  std::unique_ptr<base::Value> effective;
   ::onc::ONCSource onc_source = ::onc::ONC_SOURCE_NONE;
   if (network_policy) {
     switch (profile.type()) {
diff --git a/chromeos/network/policy_util.h b/chromeos/network/policy_util.h
index 8278daf..9a96f6e3 100644
--- a/chromeos/network/policy_util.h
+++ b/chromeos/network/policy_util.h
@@ -11,6 +11,7 @@
 
 namespace base {
 class DictionaryValue;
+class Value;
 }
 
 namespace chromeos {
@@ -33,7 +34,7 @@
 // Each of the arguments can be NULL.
 // TODO(pneubeck): Add documentation of the returned format, see
 //   https://crbug.com/408990 .
-std::unique_ptr<base::DictionaryValue> CreateManagedONC(
+std::unique_ptr<base::Value> CreateManagedONC(
     const base::DictionaryValue* global_policy,
     const base::DictionaryValue* network_policy,
     const base::DictionaryValue* user_settings,
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb
index 28c4b4f..a2692144 100644
--- a/chromeos/strings/chromeos_strings_af.xtb
+++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">My lêers</translation>
 <translation id="3199982728237701504">Dokumentvoerder (twee kante)</translation>
 <translation id="3226405216343213872">Soek skandeerders</translation>
+<translation id="3228433892370472777">Verstekverbinding</translation>
 <translation id="3246869037381808805">Druktake ouer as 1 dag sal verwyder word</translation>
 <translation id="3268178239013324452">Misluk – Deur is oop</translation>
 <translation id="3283504360622356314">{0,plural, =1{Wysig lêer}other{Wysig lêers}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Stres</translation>
 <translation id="4917385247580444890">Sterk</translation>
 <translation id="4917889632206600977">Gestop – papier is op</translation>
+<translation id="491836528011451486">Plaas jou dokument op die skandeerder en kies Herskandeer om bladsy <ph name="CURRENT_PAGE" /> te skandeer en te vervang.</translation>
 <translation id="4921665434385737356">Het <ph name="RATE" /> gelaai binne <ph name="NUM_SECONDS" /> sekondes.</translation>
 <translation id="4932733599132424254">Datum</translation>
 <translation id="498186245079027698">Gaan die skandeerder na en probeer weer. Maak seker daar is genoeg plaaslike spasie om lêers wat geskandeer is, te stoor.</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881">Hierdie <ph name="DEVICE_TYPE" /> word bestuur deur <ph name="MANAGER" />. Administrateurs kan die toestel oor 'n afstand opstel.</translation>
 <translation id="7180611975245234373">Herlaai</translation>
 <translation id="7216409898977639127">Sellulêre diensverskaffer</translation>
+<translation id="7257889006063274246">Is jy seker jy wil bladsy <ph name="CURRENT_PAGE" /> verwyder?</translation>
 <translation id="7271040990581020067">Skandeerder word tans gebruik Probeer later weer.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Muurpapierversamelings</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb
index 76ef0f6..d10373c 100644
--- a/chromeos/strings/chromeos_strings_da.xtb
+++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">Mine filer</translation>
 <translation id="3199982728237701504">Dokumentindføring (to sider)</translation>
 <translation id="3226405216343213872">Søger efter scannere</translation>
+<translation id="3228433892370472777">Standardforbindelse</translation>
 <translation id="3246869037381808805">Udskriftjobs, der er ældre end 1 dag, fjernes</translation>
 <translation id="3268178239013324452">Handlingen mislykkedes – Åben låge</translation>
 <translation id="3283504360622356314">{0,plural, =1{Rediger fil}one{Rediger fil}other{Rediger filer}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Stress</translation>
 <translation id="4917385247580444890">Stærk</translation>
 <translation id="4917889632206600977">Stoppet – Papirbakken er tom</translation>
+<translation id="491836528011451486">Placer dit dokument i scanneren, og vælg Scan igen for at scanne og udskifte siden <ph name="CURRENT_PAGE" />.</translation>
 <translation id="4921665434385737356">Opladet <ph name="RATE" /> på <ph name="NUM_SECONDS" /> sekunder.</translation>
 <translation id="4932733599132424254">Dato</translation>
 <translation id="498186245079027698">Tjek scanneren, og prøv igen. Sørg for, at der er nok lokal lagerplads til at gemme de scannede filer.</translation>
@@ -330,6 +332,7 @@
 <translation id="7177485034254901881">Denne <ph name="DEVICE_TYPE" /> administreres af <ph name="MANAGER" />. Administratorer kan fjernkonfigurere enheden.</translation>
 <translation id="7180611975245234373">Opdater</translation>
 <translation id="7216409898977639127">Mobilselskab</translation>
+<translation id="7257889006063274246">Er du sikker på, at du vil fjerne siden <ph name="CURRENT_PAGE" />?</translation>
 <translation id="7271040990581020067">Scanneren bruges i øjeblikket. Prøv igen senere.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Samlinger med baggrunde</translation>
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb
index 8140896..0a1bab3b 100644
--- a/chromeos/strings/chromeos_strings_hu.xtb
+++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">Saját fájlok</translation>
 <translation id="3199982728237701504">Dokumentumadagoló (kétoldalas)</translation>
 <translation id="3226405216343213872">Szkennerek keresése</translation>
+<translation id="3228433892370472777">Alapértelmezett kapcsolat</translation>
 <translation id="3246869037381808805">Az 1 napnál régebbi nyomtatási feladatokat eltávolítja a rendszer</translation>
 <translation id="3268178239013324452">Sikertelen – Nyitva van a nyomtató fedele</translation>
 <translation id="3283504360622356314">{0,plural, =1{Fájl szerkesztése}other{Fájlok szerkesztése}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Stressz</translation>
 <translation id="4917385247580444890">Erős</translation>
 <translation id="4917889632206600977">Leállt – Kifogyott a papír</translation>
+<translation id="491836528011451486">Helyezze a dokumentumot a szkennerre, és válassza a Beolvasás újra lehetőséget a(z) <ph name="CURRENT_PAGE" />. oldal beolvasásához és cseréjéhez.</translation>
 <translation id="4921665434385737356"><ph name="RATE" /> töltöttség <ph name="NUM_SECONDS" /> másodperc alatt.</translation>
 <translation id="4932733599132424254">Dátum</translation>
 <translation id="498186245079027698">Ellenőrizze a szkennert, majd próbálja újra. Győződjön meg arról, hogy van elég helyi tárhely a beolvasott fájlok mentéséhez.</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881">Ezt a(z) <ph name="DEVICE_TYPE" /> eszközt a(z) <ph name="MANAGER" /> kezeli. A rendszergazdák távolról konfigurálhatják az eszközt.</translation>
 <translation id="7180611975245234373">Frissítés</translation>
 <translation id="7216409898977639127">Mobilszolgáltató</translation>
+<translation id="7257889006063274246">Biztosan el szeretné távolítani a következő oldalt: <ph name="CURRENT_PAGE" />?</translation>
 <translation id="7271040990581020067">A szkenner jelenleg használatban van. Próbálja újra később.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Háttérképgyűjtemények</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index 319b3d6..95ab1206 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">ໄຟລ໌ຂອງຂ້ອຍ</translation>
 <translation id="3199982728237701504">ຕົວປ້ອນເອກະສານ (ສອງດ້ານ)</translation>
 <translation id="3226405216343213872">ກຳລັງຊອກຫາເຄື່ອງສະແກນ</translation>
+<translation id="3228433892370472777">ການເຊື່ອມຕໍ່ເລີ່ມຕົ້ນ</translation>
 <translation id="3246869037381808805">ວຽກພິມທີ່ເກົ່າກວ່າ 1 ມື້ຈະຖືກລຶບອອກ</translation>
 <translation id="3268178239013324452">ບໍ່ສຳເລັດ, ຝາເປີດຢູ່</translation>
 <translation id="3283504360622356314">{0,plural, =1{ແກ້ໄຂໄຟລ໌}other{ແກ້ໄຂໄຟລ໌}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">ປະສິດທິພາບເມື່ອເພີ່ມແຮງກົດດັນ</translation>
 <translation id="4917385247580444890">ແຮງ</translation>
 <translation id="4917889632206600977">ຢຸດພິມ, ເຈ້ຍໝົດ</translation>
+<translation id="491836528011451486">ວາງເອກະສານຂອງທ່ານໃສ່ຕົວສະແກນແລ້ວເລືອກສະແກນຄືນໃໝ່ເພື່ອສະແກນໜ້າ ແລະ ແທນທີ່ໜ້າ <ph name="CURRENT_PAGE" />.</translation>
 <translation id="4921665434385737356">ສາກ <ph name="RATE" /> ໃນ <ph name="NUM_SECONDS" /> ວິນາທີ.</translation>
 <translation id="4932733599132424254">ວັນ​ທີ</translation>
 <translation id="498186245079027698">ກວດເບິ່ງເຄື່ອງສະແກນ ແລ້ວລອງໃໝ່. ກວດໃຫ້ແນ່ໃຈວ່າມີພື້ນທີ່ໃນເຄື່ອງຢ່າງພຽງພໍເພື່ອບັນທຶກໄຟລ໌ທີ່ສະແກນແລ້ວໄວ້.</translation>
@@ -332,6 +334,7 @@
 <translation id="7177485034254901881"><ph name="DEVICE_TYPE" /> ນີ້ຈັດການໂດຍ <ph name="MANAGER" />. ຜູ້ເບິ່ງແຍງລະບົບອາດຈະຕັ້ງຄ່າອຸປະກອນຈາກທາງໄກໄດ້.</translation>
 <translation id="7180611975245234373">ຣີເຟຣຊ</translation>
 <translation id="7216409898977639127">ຜູ້ໃຫ້ບໍລິການມືຖື</translation>
+<translation id="7257889006063274246">ທ່ານແນ່ໃຈບໍ່ວ່າທ່ານຕ້ອງການລຶບໜ້າ <ph name="CURRENT_PAGE" /> ອອກ?</translation>
 <translation id="7271040990581020067">ຕອນນີ້ມີຄົນໃຊ້ເຄື່ອງສະແກນຢູ່. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">ຄໍເລັກຊັນຮູບພື້ນຫຼັງ</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index 9d9805d6..0b6fe48 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">Mano failai</translation>
 <translation id="3199982728237701504">Dokumentų tiektuvas (dvipusis)</translation>
 <translation id="3226405216343213872">Ieškoma skaitytuvų</translation>
+<translation id="3228433892370472777">Numatytasis ryšys</translation>
 <translation id="3246869037381808805">Senesnės nei 1 dienos spausdinimo užduotys bus pašalintos</translation>
 <translation id="3268178239013324452">Nepavyko – atidarytos durelės</translation>
 <translation id="3283504360622356314">{0,plural, =1{Redaguoti failą}one{Redaguoti failus}few{Redaguoti failus}many{Redaguoti failus}other{Redaguoti failus}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Įtampa</translation>
 <translation id="4917385247580444890">Stiprus</translation>
 <translation id="4917889632206600977">Sustabdyta – baigėsi popierius</translation>
+<translation id="491836528011451486">Jei norite nuskaityti ir pakeisti puslapį „<ph name="CURRENT_PAGE" />“, padėkite dokumentą ant skaitytuvo ir pasirinkite „Nuskaityti iš naujo“.</translation>
 <translation id="4921665434385737356">Įkrauta: <ph name="RATE" /> per <ph name="NUM_SECONDS" /> sek.</translation>
 <translation id="4932733599132424254">Data</translation>
 <translation id="498186245079027698">Patikrinkite skaitytuvą ir bandykite dar kartą. Įsitikinkite, kad vietinėje sistemoje pakanka vietos nuskaitytiems failams išsaugoti.</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881">Šį „<ph name="DEVICE_TYPE" />“ valdo <ph name="MANAGER" />. Administratoriai gali nuotoliniu būdu konfigūruoti įrenginį.</translation>
 <translation id="7180611975245234373">Atnaujinti</translation>
 <translation id="7216409898977639127">Mobiliojo ryšio teikėjas</translation>
+<translation id="7257889006063274246">Ar tikrai norite pašalinti puslapį „<ph name="CURRENT_PAGE" />“?</translation>
 <translation id="7271040990581020067">Skaitytuvas šiuo metu naudojamas. Vėliau bandykite dar kartą.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Ekrano fonų rinkiniai</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb
index 210019d..795ed82 100644
--- a/chromeos/strings/chromeos_strings_mn.xtb
+++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">Миний файл</translation>
 <translation id="3199982728237701504">Документыг дамжуулах тавиур (Хоёр талаар нь)</translation>
 <translation id="3226405216343213872">Сканнерыг хайж байна</translation>
+<translation id="3228433892370472777">Өгөгдмөл холболт</translation>
 <translation id="3246869037381808805">1 хоногоос дээш хугацаагаар хадгалсан хэвлэлийн ажлуудыг хасах болно</translation>
 <translation id="3268178239013324452">Амжилтгүй болсон - Таг нээлттэй</translation>
 <translation id="3283504360622356314">{0,plural, =1{Файлыг засах}other{Файлуудыг засах}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Стресс</translation>
 <translation id="4917385247580444890">Хүчтэй</translation>
 <translation id="4917889632206600977">Зогссон - Цаас дууссан</translation>
+<translation id="491836528011451486"><ph name="CURRENT_PAGE" />-р хуудсыг скан хийж, солихын тулд документоо сканнер дээр байрлуулж, Дахин скан хийхийг сонгоно уу.</translation>
 <translation id="4921665434385737356"><ph name="NUM_SECONDS" /> секундэд <ph name="RATE" /> цэнэглэсэн.</translation>
 <translation id="4932733599132424254">Огноо</translation>
 <translation id="498186245079027698">Сканнерыг шалгаад дахин оролдоно уу. Скан хийсэн файлуудыг хадгалах хангалттай дотоод зай байгаа эсэхийг шалгана уу.</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881">Энэ <ph name="DEVICE_TYPE" />-г <ph name="MANAGER" /> удирддаг. Администраторууд төхөөрөмжийг алсаас тохируулж магадгүй.</translation>
 <translation id="7180611975245234373">Дахин сэргээх</translation>
 <translation id="7216409898977639127">Үүрэн холбооны үйлчилгээ үзүүлэгч</translation>
+<translation id="7257889006063274246">Та <ph name="CURRENT_PAGE" />-р хуудсыг хасахдаа итгэлтэй байна уу?</translation>
 <translation id="7271040990581020067">Сканнерыг одоогоор ашиглаж байна. Дараа дахин оролдоно уу.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Дэлгэцийн зургийн цуглуулга</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb
index f0988c93..a667dc6 100644
--- a/chromeos/strings/chromeos_strings_nl.xtb
+++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">Mijn bestanden</translation>
 <translation id="3199982728237701504">Documentfeeder (dubbelzijdig)</translation>
 <translation id="3226405216343213872">Zoeken naar scanners</translation>
+<translation id="3228433892370472777">Standaardverbinding</translation>
 <translation id="3246869037381808805">Afdruktaken ouder dan 1 dag worden verwijderd</translation>
 <translation id="3268178239013324452">Mislukt - Klep geopend</translation>
 <translation id="3283504360622356314">{0,plural, =1{Bestand bewerken}other{Bestanden bewerken}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Stress</translation>
 <translation id="4917385247580444890">Sterk</translation>
 <translation id="4917889632206600977">Gestopt: geen papier meer</translation>
+<translation id="491836528011451486">Leg je document op de scanner en selecteer Opnieuw scannen om te scannen en de pagina <ph name="CURRENT_PAGE" /> te vervangen.</translation>
 <translation id="4921665434385737356"><ph name="RATE" /> opgeladen in <ph name="NUM_SECONDS" /> seconden.</translation>
 <translation id="4932733599132424254">Datum</translation>
 <translation id="498186245079027698">Check de scanner en probeer het opnieuw. Zorg dat er voldoende lokale ruimte is om gescande bestanden op te slaan.</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881">Dit <ph name="DEVICE_TYPE" /> wordt beheerd door <ph name="MANAGER" />. Beheerders kunnen het apparaat op afstand instellen.</translation>
 <translation id="7180611975245234373">Vernieuwen</translation>
 <translation id="7216409898977639127">Mobiele provider</translation>
+<translation id="7257889006063274246">Weet je zeker dat je de pagina <ph name="CURRENT_PAGE" /> wilt verwijderen?</translation>
 <translation id="7271040990581020067">De scanner wordt momenteel gebruikt. Probeer het later opnieuw.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Achtergrondcollecties</translation>
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb
index 949e801..d06200fe 100644
--- a/chromeos/strings/chromeos_strings_pl.xtb
+++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">Moje pliki</translation>
 <translation id="3199982728237701504">Podajnik dokumentów (dwustronny)</translation>
 <translation id="3226405216343213872">Szukam skanerów</translation>
+<translation id="3228433892370472777">Domyślne połączenie</translation>
 <translation id="3246869037381808805">Zadania drukowania starsze niż 1 dzień zostaną usunięte</translation>
 <translation id="3268178239013324452">Niepowodzenie – otwarte drzwiczki drukarki</translation>
 <translation id="3283504360622356314">{0,plural, =1{Edytuj plik}few{Edytuj pliki}many{Edytuj pliki}other{Edytuj pliki}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Obciążenie</translation>
 <translation id="4917385247580444890">Silny</translation>
 <translation id="4917889632206600977">Zatrzymano – brak papieru</translation>
+<translation id="491836528011451486">Umieść dokument na skanerze i wybierz Zeskanuj ponownie, aby zeskanować i zastąpić stronę <ph name="CURRENT_PAGE" />.</translation>
 <translation id="4921665434385737356">Naładowano <ph name="RATE" /> w ciągu <ph name="NUM_SECONDS" /> s.</translation>
 <translation id="4932733599132424254">Data</translation>
 <translation id="498186245079027698">Sprawdź skaner i spróbuj ponownie. Upewnij się, że na urządzeniu masz miejsce na zapisanie zeskanowanych plików.</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881">Tym urządzeniem <ph name="DEVICE_TYPE" /> zarządza <ph name="MANAGER" />. Administratorzy mogą je zdalnie konfigurować.</translation>
 <translation id="7180611975245234373">Odśwież</translation>
 <translation id="7216409898977639127">Operator komórkowy</translation>
+<translation id="7257889006063274246">Czy na pewno chcesz usunąć stronę <ph name="CURRENT_PAGE" />?</translation>
 <translation id="7271040990581020067">Skaner jest obecnie używany. Spróbuj ponownie później.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Kolekcje tapet</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index f3ee158..ac9e5dcb 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">Fișierele mele</translation>
 <translation id="3199982728237701504">Alimentator de documente (față-verso)</translation>
 <translation id="3226405216343213872">Se caută scanere</translation>
+<translation id="3228433892370472777">Conexiune prestabilită</translation>
 <translation id="3246869037381808805">Sarcinile de printare mai vechi de o zi vor fi eliminate</translation>
 <translation id="3268178239013324452">Nereușită – Ușă deschisă</translation>
 <translation id="3283504360622356314">{0,plural, =1{Editează fișierul}few{Editează fișierele}other{Editează fișierele}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Stres</translation>
 <translation id="4917385247580444890">Puternic</translation>
 <translation id="4917889632206600977">Oprită – Hârtie epuizată</translation>
+<translation id="491836528011451486">Așază documentul pe scaner și selectează Scanează din nou pentru a scana și a înlocui pagina <ph name="CURRENT_PAGE" />.</translation>
 <translation id="4921665434385737356">S-a încărcat cu <ph name="RATE" /> în <ph name="NUM_SECONDS" /> secunde.</translation>
 <translation id="4932733599132424254">Data</translation>
 <translation id="498186245079027698">Verifică scanerul și încearcă din nou. Asigură-te că există spațiu suficient la nivel local pentru a salva fișierele scanate.</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881">Acest <ph name="DEVICE_TYPE" /> este gestionat de <ph name="MANAGER" />. Administratorii pot să configureze dispozitivul de la distanță.</translation>
 <translation id="7180611975245234373">Actualizați</translation>
 <translation id="7216409898977639127">Furnizor de date mobile</translation>
+<translation id="7257889006063274246">Sigur vrei să elimini pagina <ph name="CURRENT_PAGE" />?</translation>
 <translation id="7271040990581020067">Scanerul este în uz. Încearcă din nou mai târziu.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Colecții de imagini de fundal</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb
index f13a4cf..a5a54d5 100644
--- a/chromeos/strings/chromeos_strings_sl.xtb
+++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">Moje datoteke</translation>
 <translation id="3199982728237701504">Podajalnik dokumentov (dvostransko)</translation>
 <translation id="3226405216343213872">Iskanje optičnih bralnikov</translation>
+<translation id="3228433892370472777">Privzeta povezava</translation>
 <translation id="3246869037381808805">Izbrisana bodo tiskalna opravila, starejša od 1 dneva</translation>
 <translation id="3268178239013324452">Napaka – vrata so odprta</translation>
 <translation id="3283504360622356314">{0,plural, =1{Uredi datoteko}one{Uredi datoteke}two{Uredi datoteke}few{Uredi datoteke}other{Uredi datoteke}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">Obremenitev</translation>
 <translation id="4917385247580444890">Močan</translation>
 <translation id="4917889632206600977">Ustavljeno – zmanjkalo je papirja</translation>
+<translation id="491836528011451486">Dokument postavite na optični bralnik in izberite »Znova optično preberi«, če želite optično prebrati in nadomestiti <ph name="CURRENT_PAGE" />. stran.</translation>
 <translation id="4921665434385737356">Napolnjeno <ph name="RATE" /> v <ph name="NUM_SECONDS" /> s.</translation>
 <translation id="4932733599132424254">Datum</translation>
 <translation id="498186245079027698">Preverite optični bralnik in poskusite znova. Poskrbite, da je na lokalnem disku dovolj prostora za shranjevanje optično prebranih datotek.</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881">To napravo <ph name="DEVICE_TYPE" /> upravlja domena <ph name="MANAGER" />. Skrbniki lahko napravo konfigurirajo na daljavo.</translation>
 <translation id="7180611975245234373">Osveži</translation>
 <translation id="7216409898977639127">Ponudnik mobilnih storitev</translation>
+<translation id="7257889006063274246">Ali ste prepričani, da želite odstraniti <ph name="CURRENT_PAGE" />. stran?</translation>
 <translation id="7271040990581020067">Optični bralnik je trenutno v uporabi. Poskusite pozneje.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">Zbirke zaslonskih ozadij</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb
index ea395a8..53a0023 100644
--- a/chromeos/strings/chromeos_strings_ta.xtb
+++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -124,6 +124,7 @@
 <translation id="3595596368722241419">பேட்டரி நிரம்பியது</translation>
 <translation id="360565022852130722">WEP 802.1x என்னும் வலுவற்ற நெறிமுறை மூலம் வைஃபை நெட்வொர்க் பாதுகாக்கப்படுகிறது</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> சோதனை</translation>
+<translation id="3708186454126126312">ஏற்கெனவே இணைத்தவை</translation>
 <translation id="373232531963562220">{PAGE_NUMBER,plural, =0{பக்கத்தை மீண்டும் ஸ்கேன் செய்}=1{{PAGE_NUMBER}வது பக்கத்தை மீண்டும் ஸ்கேன் செய்}other{{PAGE_NUMBER}வது பக்கத்தை மீண்டும் ஸ்கேன் செய்}}</translation>
 <translation id="3740976234706877572"><ph name="AVERAGE_SCORE" /> ★ (<ph name="AGGREGATED_COUNT" /> மதிப்புரைகள்)</translation>
 <translation id="3748026146096797577">இணைக்கப்படவில்லை</translation>
@@ -416,6 +417,7 @@
 <translation id="8798441408945964110">வழங்குநர் பெயர்</translation>
 <translation id="8814190375133053267">வைஃபை</translation>
 <translation id="8818152010000655963">வால்பேப்பர்</translation>
+<translation id="8834539327799336565">தற்போது இணைக்கப்பட்டுள்ளவை</translation>
 <translation id="8845001906332463065">உதவி பெறுக</translation>
 <translation id="8868741746785112895">GUID</translation>
 <translation id="8881098542468797602">சோதனை நிறைவடைந்தது</translation>
diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb
index a5b102b3..cb074d7 100644
--- a/chromeos/strings/chromeos_strings_te.xtb
+++ b/chromeos/strings/chromeos_strings_te.xtb
@@ -124,6 +124,7 @@
 <translation id="3595596368722241419">బ్యాటరీ నిండింది</translation>
 <translation id="360565022852130722">బలహీనమైన ప్రోటోకాల్ WEP 802.1xతో Wi-Fi నెట్‌వర్క్ సురక్షితం చేయబడింది</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> పరీక్ష</translation>
+<translation id="3708186454126126312">ఇంతకు మునుపు కనెక్ట్ చేయబడినవి</translation>
 <translation id="373232531963562220">{PAGE_NUMBER,plural, =0{పేజీని మళ్లీ స్కాన్ చేయండి}=1{{PAGE_NUMBER} పేజీని మళ్లీ స్కాన్ చేయండి}other{{PAGE_NUMBER} పేజీని మళ్లీ స్కాన్ చేయండి}}</translation>
 <translation id="3740976234706877572"><ph name="AVERAGE_SCORE" /> ★ (<ph name="AGGREGATED_COUNT" /> రివ్యూలు)</translation>
 <translation id="3748026146096797577">కనెక్ట్ కాలేదు</translation>
@@ -415,6 +416,7 @@
 <translation id="8798441408945964110">ప్రదాత పేరు</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8818152010000655963">వాల్‌పేపర్</translation>
+<translation id="8834539327799336565">ప్రస్తుతం కనెక్ట్ చేయబడింది</translation>
 <translation id="8845001906332463065">సహాయం పొందండి</translation>
 <translation id="8868741746785112895">GUID</translation>
 <translation id="8881098542468797602">పరీక్ష విజయవంతమైంది</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb
index 249b1b03..1446a03 100644
--- a/chromeos/strings/chromeos_strings_th.xtb
+++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -102,6 +102,7 @@
 <translation id="3188257591659621405">ไฟล์ของฉัน</translation>
 <translation id="3199982728237701504">ตัวป้อนเอกสาร (สองด้าน)</translation>
 <translation id="3226405216343213872">กำลังค้นหาเครื่องสแกน</translation>
+<translation id="3228433892370472777">การเชื่อมต่อเริ่มต้น</translation>
 <translation id="3246869037381808805">ระบบจะนำงานพิมพ์ที่เก่ากว่า 1 วันออก</translation>
 <translation id="3268178239013324452">ไม่สำเร็จ - ฝาเครื่องเปิดอยู่</translation>
 <translation id="3283504360622356314">{0,plural, =1{แก้ไขไฟล์}other{แก้ไขไฟล์}}</translation>
@@ -200,6 +201,7 @@
 <translation id="4891842000192098784">ประสิทธิภาพเมื่อเพิ่มแรงกดดัน</translation>
 <translation id="4917385247580444890">แรง</translation>
 <translation id="4917889632206600977">หยุดพิมพ์ - กระดาษหมด</translation>
+<translation id="491836528011451486">วางเอกสารบนเครื่องสแกนและเลือก "สแกนอีกครั้ง" เพื่อสแกนและแทนที่หน้า <ph name="CURRENT_PAGE" /></translation>
 <translation id="4921665434385737356">ชาร์จ <ph name="RATE" /> ใน <ph name="NUM_SECONDS" /> วินาที</translation>
 <translation id="4932733599132424254">วันที่</translation>
 <translation id="498186245079027698">ตรวจสอบเครื่องสแกนแล้วลองอีกครั้ง ตรวจดูว่ามีพื้นที่ว่างในเครื่องเพียงพอสำหรับบันทึกไฟล์ที่สแกน</translation>
@@ -331,6 +333,7 @@
 <translation id="7177485034254901881"><ph name="DEVICE_TYPE" /> นี้ได้รับการจัดการโดย <ph name="MANAGER" /> ผู้ดูแลระบบอาจกำหนดค่าอุปกรณ์จากระยะไกล</translation>
 <translation id="7180611975245234373">รีเฟรช</translation>
 <translation id="7216409898977639127">ผู้ให้บริการเครือข่ายมือถือ</translation>
+<translation id="7257889006063274246">คุณแน่ใจไหมว่าต้องการนำหน้า <ph name="CURRENT_PAGE" /> ออก</translation>
 <translation id="7271040990581020067">เครื่องสแกนกำลังทำงานอยู่ ลองอีกครั้งในภายหลัง</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7287310195820267359">คอลเล็กชันภาพวอลเปเปอร์</translation>
diff --git a/components/browser_ui/bottomsheet/android/internal/java/src/org/chromium/components/browser_ui/bottomsheet/BottomSheet.java b/components/browser_ui/bottomsheet/android/internal/java/src/org/chromium/components/browser_ui/bottomsheet/BottomSheet.java
index 7b3fa68..051836d2 100644
--- a/components/browser_ui/bottomsheet/android/internal/java/src/org/chromium/components/browser_ui/bottomsheet/BottomSheet.java
+++ b/components/browser_ui/bottomsheet/android/internal/java/src/org/chromium/components/browser_ui/bottomsheet/BottomSheet.java
@@ -890,12 +890,6 @@
         for (BottomSheetObserver o : mObservers) {
             o.onSheetOffsetChanged(mLastOffsetRatioSent, getCurrentOffsetPx());
         }
-
-        if (isPeekStateEnabled()
-                && MathUtils.areFloatsEqual(
-                        offsetWithBrowserControls, getSheetHeightForState(SheetState.PEEK))) {
-            for (BottomSheetObserver o : mObservers) o.onSheetFullyPeeked();
-        }
     }
 
     /** @see #setSheetState(int, boolean, int) */
diff --git a/components/browser_ui/bottomsheet/android/java/src/org/chromium/components/browser_ui/bottomsheet/BottomSheetObserver.java b/components/browser_ui/bottomsheet/android/java/src/org/chromium/components/browser_ui/bottomsheet/BottomSheetObserver.java
index 2739ee1..8d3c877f 100644
--- a/components/browser_ui/bottomsheet/android/java/src/org/chromium/components/browser_ui/bottomsheet/BottomSheetObserver.java
+++ b/components/browser_ui/bottomsheet/android/java/src/org/chromium/components/browser_ui/bottomsheet/BottomSheetObserver.java
@@ -44,13 +44,6 @@
     void onSheetStateChanged(@SheetState int newState, @StateChangeReason int reason);
 
     /**
-     * An event for when the sheet reaches its full peeking height. This is called when the sheet
-     * is finished being scrolled back on-screen or finishes animating to its peeking state. This
-     * is also called when going back to the peeking state after the sheet has been opened.
-     */
-    void onSheetFullyPeeked();
-
-    /**
      * An event for when the sheet content changes.
      * @param newContent The new {@link BottomSheetContent}, or null if the sheet has no content.
      */
diff --git a/components/browser_ui/bottomsheet/android/java/src/org/chromium/components/browser_ui/bottomsheet/EmptyBottomSheetObserver.java b/components/browser_ui/bottomsheet/android/java/src/org/chromium/components/browser_ui/bottomsheet/EmptyBottomSheetObserver.java
index a6553d1..b94e0c3 100644
--- a/components/browser_ui/bottomsheet/android/java/src/org/chromium/components/browser_ui/bottomsheet/EmptyBottomSheetObserver.java
+++ b/components/browser_ui/bottomsheet/android/java/src/org/chromium/components/browser_ui/bottomsheet/EmptyBottomSheetObserver.java
@@ -23,8 +23,5 @@
     public void onSheetStateChanged(int newState, int reason) {}
 
     @Override
-    public void onSheetFullyPeeked() {}
-
-    @Override
     public void onSheetContentChanged(BottomSheetContent newContent) {}
 }
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
index 79c706dc..986e916 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
@@ -69,6 +69,7 @@
 <translation id="2687403674020088961">அனைத்துக் குக்கீகளையும் தடுக்கும் (பரிந்துரைக்கப்படவில்லை)</translation>
 <translation id="2704606927547763573">நகலெடுக்கப்பட்டது</translation>
 <translation id="2717722538473713889">மின்னஞ்சல் முகவரிகள்</translation>
+<translation id="2785051990912111074">இதைச் செய்தால் <ph name="WEBSITE" /> தளத்திற்கான குக்கீகள் அழிக்கப்படும்</translation>
 <translation id="2822354292072154809"><ph name="CHOSEN_OBJECT_NAME" />க்கான தள அனுமதிகள் அனைத்தையும் நிச்சயமாக மீட்டமைக்க விரும்புகிறீர்களா?</translation>
 <translation id="2870560284913253234">தளம்</translation>
 <translation id="2874939134665556319">முந்தைய டிராக்</translation>
@@ -138,6 +139,7 @@
 <translation id="4976702386844183910">கடைசியாகப் பார்த்தது: <ph name="DATE" /></translation>
 <translation id="4994033804516042629">தொடர்புகள் எதுவும் இல்லை</translation>
 <translation id="4996978546172906250">இதன்வழியாக பகிர்</translation>
+<translation id="5014906230196386306">குக்கீகளை அழிக்கவா?</translation>
 <translation id="5039804452771397117">அனுமதி</translation>
 <translation id="5048398596102334565">மோஷன் சென்சார்களை அணுக தளங்களை அனுமதிக்கும் (பரிந்துரைக்கப்படுகிறது)</translation>
 <translation id="5050380848339752099">இந்தத் தளம் மறைநிலைப் பயன்முறையில் இல்லாத ஆப்ஸுடன் தகவல்களைப் பகிரவிருக்கிறது.</translation>
@@ -157,6 +159,7 @@
 <translation id="5354152178998424783">இதைச் செய்தால் தளங்கள் சேமித்துள்ள <ph name="DATASIZE" /> தரவும் குக்கீகளும் அழிக்கப்படும்.</translation>
 <translation id="5394307150471348411">{DETAIL_COUNT,plural, =1{(மேலும் 1)}other{(மேலும் #)}}</translation>
 <translation id="5403592356182871684">பெயர்கள்</translation>
+<translation id="5438097262470833822">இதைச் செய்தால் <ph name="WEBSITE" /> தளத்திற்கான அனுமதிகள் ரீசெட் செய்யப்படும்</translation>
 <translation id="5489227211564503167">முடிந்த நேரம்: <ph name="ELAPSED_TIME" />/<ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">குறுக்கிடும் அல்லது தவறாக வழிநடத்தும் விளம்பரங்களைக் காட்டும் தளங்களில் விளம்பரங்களைத் தடு</translation>
 <translation id="5502860503640766021"><ph name="PERMISSION_1" />க்கான அனுமதி வழங்கப்பட்டது, <ph name="PERMISSION_2" />க்கான அனுமதி தடுக்கப்பட்டது</translation>
@@ -213,6 +216,7 @@
 <translation id="6689172468748959065">சுயவிவரப் படங்கள்</translation>
 <translation id="6697925417670533197">செயலிலுள்ள பதிவிறக்கங்கள்</translation>
 <translation id="6746124502594467657">கீழே நகர்த்து</translation>
+<translation id="6749077623962119521">அனுமதிகளை ரீசெட் செய்யவா?</translation>
 <translation id="6766622839693428701">மூடுவதற்கு, கீழே ஸ்வைப் செய்யவும்.</translation>
 <translation id="6790428901817661496">இயக்கு</translation>
 <translation id="6818926723028410516">பட்டியலிலிருந்து தேர்ந்தெடுக்கவும்</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
index 3209398..ed58ea9 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
@@ -69,6 +69,7 @@
 <translation id="2687403674020088961">అన్ని కుక్కీలను బ్లాక్ చేయండి (సిఫార్సు చేయడం లేదు)</translation>
 <translation id="2704606927547763573">కాపీ చేయబడింది</translation>
 <translation id="2717722538473713889">ఇమెయిల్ చిరునామాలు</translation>
+<translation id="2785051990912111074">దీనిని ఎంచుకోవడం ద్వారా <ph name="WEBSITE" />కు సంబంధించిన కుక్కీలు క్లియర్ చేయబడతాయి</translation>
 <translation id="2822354292072154809">మీరు <ph name="CHOSEN_OBJECT_NAME" /> కోసం అన్ని సైట్ అనుమతులను ఖచ్చితంగా రీసెట్ చేయాలనుకుంటున్నారా ?</translation>
 <translation id="2870560284913253234">సైట్</translation>
 <translation id="2874939134665556319">మునుపటి ట్రాక్</translation>
@@ -138,6 +139,7 @@
 <translation id="4976702386844183910"><ph name="DATE" />న చివరగా సందర్శించారు</translation>
 <translation id="4994033804516042629">పరిచయాలు కనుగొనబడలేదు</translation>
 <translation id="4996978546172906250">దీని ద్వారా భాగస్వామ్యం చే.</translation>
+<translation id="5014906230196386306">కుక్కీలను క్లియర్ చేయాలా?</translation>
 <translation id="5039804452771397117">అనుమతించు</translation>
 <translation id="5048398596102334565">మోషన్ సెన్సార్‌లను యాక్సెస్ చేయడానికి సైట్‌లను అనుమతించండి (సిఫార్సు చేస్తున్నాము)</translation>
 <translation id="5050380848339752099">ఈ సైట్ అజ్ఞాత మోడ్ వెలుపల ఉన్న ఒక యాప్‌తో సమాచారాన్ని షేర్ చేయబోతోంది.</translation>
@@ -157,6 +159,7 @@
 <translation id="5354152178998424783">ఇది సైట్‌ల ద్వారా స్టోర్ చేయబడిన <ph name="DATASIZE" /> డేటాను, కుక్కీలను క్లియర్ చేస్తుంది.</translation>
 <translation id="5394307150471348411">{DETAIL_COUNT,plural, =1{(+ మరో 1)}other{(+ మరో #)}}</translation>
 <translation id="5403592356182871684">పేర్లు</translation>
+<translation id="5438097262470833822">దీనిని ఎంచుకోవడం ద్వారా <ph name="WEBSITE" />కు సంబంధించిన అనుమతులు రీసెట్ చేయబడతాయి</translation>
 <translation id="5489227211564503167"><ph name="TOTAL_TIME" />లో <ph name="ELAPSED_TIME" /> సమయం గడిచిపోయింది.</translation>
 <translation id="5494752089476963479">అనుచితమైన లేదా తప్పుదారి పట్టించే ప్రకటనలను చూపించే సైట్‌లలో ప్రకటనలను బ్లాక్ చేస్తుంది</translation>
 <translation id="5502860503640766021"><ph name="PERMISSION_1" /> అనుమతించబడింది, <ph name="PERMISSION_2" /> బ్లాక్ చేయబడింది</translation>
@@ -213,6 +216,7 @@
 <translation id="6689172468748959065">ప్రొఫైల్ ఫోటోలు</translation>
 <translation id="6697925417670533197">యాక్టివ్‌గా ఉన్న డౌన్‌లోడ్‌లు</translation>
 <translation id="6746124502594467657">క్రిందికి తరలించు</translation>
+<translation id="6749077623962119521">అనుమతులను రీసెట్ చేయాలా?</translation>
 <translation id="6766622839693428701">మూసివేయడానికి దిగువకు స్వైప్ చేయండి.</translation>
 <translation id="6790428901817661496">ప్లే చేయి</translation>
 <translation id="6818926723028410516">అంశాలను ఎంచుకోండి</translation>
diff --git a/components/content_settings/browser/page_specific_content_settings_unittest.cc b/components/content_settings/browser/page_specific_content_settings_unittest.cc
index fd559fb..3b2e9ee 100644
--- a/components/content_settings/browser/page_specific_content_settings_unittest.cc
+++ b/components/content_settings/browser/page_specific_content_settings_unittest.cc
@@ -549,6 +549,11 @@
     std::unique_ptr<content::NavigationSimulator> navigation =
         content::NavigationSimulator::CreateRendererInitiated(
             prerender_url, web_contents()->GetMainFrame());
+    // TODO(https://crbug.com/1181763): Investigate how default referrer value
+    // is set and update here accordingly.
+    navigation->SetReferrer(blink::mojom::Referrer::New(
+        web_contents()->GetMainFrame()->GetLastCommittedURL(),
+        network::mojom::ReferrerPolicy::kStrictOriginWhenCrossOrigin));
     navigation->Commit();
   }
 }
@@ -591,6 +596,9 @@
   std::unique_ptr<content::NavigationSimulator> navigation =
       content::NavigationSimulator::CreateRendererInitiated(
           prerender_url, web_contents()->GetMainFrame());
+  navigation->SetReferrer(blink::mojom::Referrer::New(
+      web_contents()->GetMainFrame()->GetLastCommittedURL(),
+      network::mojom::ReferrerPolicy::kStrictOriginWhenCrossOrigin));
   navigation->Commit();
 }
 
@@ -637,6 +645,11 @@
   std::unique_ptr<content::NavigationSimulator> navigation =
       content::NavigationSimulator::CreateRendererInitiated(
           prerender_url, web_contents()->GetMainFrame());
+  // TODO(https://crbug.com/1181763): Investigate how default referrer value is
+  // set and update here accordingly.
+  navigation->SetReferrer(blink::mojom::Referrer::New(
+      web_contents()->GetMainFrame()->GetLastCommittedURL(),
+      network::mojom::ReferrerPolicy::kStrictOriginWhenCrossOrigin));
   navigation->Commit();
 }
 
diff --git a/components/download/internal/background_service/BUILD.gn b/components/download/internal/background_service/BUILD.gn
index cf058bcd..8210afd 100644
--- a/components/download/internal/background_service/BUILD.gn
+++ b/components/download/internal/background_service/BUILD.gn
@@ -21,7 +21,6 @@
       "background_download_service_impl.h",
       "blob_task_proxy.cc",
       "blob_task_proxy.h",
-      "controller.h",
       "controller_impl.cc",
       "controller_impl.h",
       "download_driver.h",
@@ -31,10 +30,6 @@
       "in_memory_download.h",
       "in_memory_download_driver.cc",
       "in_memory_download_driver.h",
-      "log_sink.h",
-      "log_source.h",
-      "logger_impl.cc",
-      "logger_impl.h",
       "navigation_monitor_impl.cc",
       "navigation_monitor_impl.h",
       "scheduler/battery_status_listener.h",
@@ -101,6 +96,7 @@
     "config.cc",
     "config.h",
     "constants.h",
+    "controller.h",
     "debugging_client.cc",
     "debugging_client.h",
     "download_blockage_status.cc",
@@ -112,6 +108,10 @@
     "file_monitor.h",
     "file_monitor_impl.cc",
     "file_monitor_impl.h",
+    "log_sink.h",
+    "log_source.h",
+    "logger_impl.cc",
+    "logger_impl.h",
     "service_config_impl.cc",
     "service_config_impl.h",
     "startup_status.cc",
diff --git a/components/download/internal/background_service/ios/background_download_service_impl.cc b/components/download/internal/background_service/ios/background_download_service_impl.cc
index de631dda..2d25694 100644
--- a/components/download/internal/background_service/ios/background_download_service_impl.cc
+++ b/components/download/internal/background_service/ios/background_download_service_impl.cc
@@ -5,6 +5,7 @@
 #include "components/download/internal/background_service/ios/background_download_service_impl.h"
 
 #include <utility>
+#include <vector>
 
 #include "base/logging.h"
 #include "base/notreached.h"
@@ -16,10 +17,12 @@
 #include "components/download/internal/background_service/file_monitor.h"
 #include "components/download/internal/background_service/ios/background_download_task_helper.h"
 #include "components/download/internal/background_service/ios/entry_utils.h"
+#include "components/download/internal/background_service/log_sink.h"
 #include "components/download/internal/background_service/stats.h"
 #include "components/download/public/background_service/client.h"
 #include "components/download/public/background_service/download_metadata.h"
 #include "components/download/public/background_service/download_params.h"
+#include "components/download/public/background_service/logger.h"
 
 namespace download {
 namespace {
@@ -27,17 +30,6 @@
 // Interval to throttle the download update that results in a database update.
 const base::TimeDelta kUpdateInterval = base::TimeDelta::FromSeconds(5);
 
-void InvokeStartCallback(const std::string& guid,
-                         DownloadClient client,
-                         DownloadParams::StartResult result,
-                         DownloadParams::StartCallback callback) {
-  stats::LogStartDownloadResult(client, result);
-  if (callback) {
-    base::ThreadTaskRunnerHandle::Get()->PostTask(
-        FROM_HERE, base::BindOnce(std::move(callback), guid, result));
-  }
-}
-
 }  // namespace
 
 BackgroundDownloadServiceImpl::BackgroundDownloadServiceImpl(
@@ -46,6 +38,8 @@
     std::unique_ptr<BackgroundDownloadTaskHelper> download_helper,
     std::unique_ptr<FileMonitor> file_monitor,
     const base::FilePath& download_dir,
+    std::unique_ptr<Logger> logger,
+    LogSink* log_sink,
     base::Clock* clock)
     : config_(std::make_unique<Configuration>()),
       service_config_(config_.get()),
@@ -53,8 +47,12 @@
       model_(std::move(model)),
       download_helper_(std::move(download_helper)),
       file_monitor_(std::move(file_monitor)),
+      logger_(std::move(logger)),
+      log_sink_(log_sink),
       clock_(clock),
       download_dir_(download_dir) {
+  // iOS doesn't use driver interface, mark it ready.
+  startup_status_.driver_ok = true;
   model_->Initialize(this);
 }
 
@@ -79,11 +77,11 @@
 
 BackgroundDownloadService::ServiceStatus
 BackgroundDownloadServiceImpl::GetStatus() {
-  if (!init_success_.has_value())
-    return BackgroundDownloadService::ServiceStatus::STARTING_UP;
-  return init_success_.value()
+  if (startup_status_.Failed())
+    return BackgroundDownloadService::ServiceStatus::UNAVAILABLE;
+  return startup_status_.Complete()
              ? BackgroundDownloadService::ServiceStatus::READY
-             : BackgroundDownloadService::ServiceStatus::UNAVAILABLE;
+             : BackgroundDownloadService::ServiceStatus::STARTING_UP;
 }
 
 void BackgroundDownloadServiceImpl::StartDownload(
@@ -92,7 +90,7 @@
   // functionality.
   if (GetStatus() != BackgroundDownloadService::ServiceStatus::READY) {
     LOG(ERROR) << "Background download service is not intialized successfully.";
-    InvokeStartCallback(download_params.guid, download_params.client,
+    InvokeStartCallback(download_params.client, download_params.guid,
                         DownloadParams::StartResult::INTERNAL_ERROR,
                         std::move(download_params.callback));
     return;
@@ -100,7 +98,7 @@
 
   if (start_callbacks_.find(download_params.guid) != start_callbacks_.end() ||
       model_->Get(download_params.guid) != nullptr) {
-    InvokeStartCallback(download_params.guid, download_params.client,
+    InvokeStartCallback(download_params.client, download_params.guid,
                         DownloadParams::StartResult::UNEXPECTED_GUID,
                         std::move(download_params.callback));
     return;
@@ -133,18 +131,26 @@
 }
 
 Logger* BackgroundDownloadServiceImpl::GetLogger() {
-  NOTIMPLEMENTED();
-  return nullptr;
+  return logger_.get();
 }
 
 void BackgroundDownloadServiceImpl::OnModelReady(bool success) {
+  startup_status_.model_ok = success;
+
   if (!success) {
-    init_success_ = false;
+    DCHECK(startup_status_.Failed());
     stats::LogStartUpResult(false, stats::StartUpResult::FAILURE_REASON_MODEL);
     NotifyServiceUnavailable();
     return;
   }
 
+  PruneDbRecords();
+  file_monitor_->Initialize(
+      base::BindOnce(&BackgroundDownloadServiceImpl::OnFileMonitorInitialized,
+                     weak_ptr_factory_.GetWeakPtr()));
+}
+
+void BackgroundDownloadServiceImpl::PruneDbRecords() {
   // Clean up expired entries or entries without a client, disregard whether
   // they are completed.
   std::set<std::string> entries_to_remove;
@@ -156,18 +162,15 @@
       entries_to_remove.insert(entry->guid);
     }
   }
-
   for (const auto& guid : entries_to_remove)
     model_->Remove(guid);
-
-  file_monitor_->Initialize(
-      base::BindOnce(&BackgroundDownloadServiceImpl::OnFileMonitorInitialized,
-                     weak_ptr_factory_.GetWeakPtr()));
 }
 
 void BackgroundDownloadServiceImpl::OnFileMonitorInitialized(bool success) {
   if (!success) {
-    init_success_ = false;
+    startup_status_.file_monitor_ok = false;
+    DCHECK(startup_status_.Complete());
+    DCHECK(startup_status_.Failed());
     stats::LogStartUpResult(false,
                             stats::StartUpResult::FAILURE_REASON_FILE_MONITOR);
     NotifyServiceUnavailable();
@@ -183,7 +186,9 @@
 
 void BackgroundDownloadServiceImpl::OnFilesPruned() {
   // Initialization is done.
-  init_success_ = true;
+  startup_status_.file_monitor_ok = true;
+  DCHECK(startup_status_.Ok());
+  log_sink_->OnServiceStatusChanged();
   stats::LogStartUpResult(false, stats::StartUpResult::SUCCESS);
 
   // Report download metadata to clients.
@@ -193,11 +198,28 @@
     clients_->GetClient(client_id)->OnServiceInitialized(
         /*state_lost=*/false, metadata_map[client_id]);
   }
+
+  log_sink_->OnServiceDownloadsAvailable();
 }
 
 void BackgroundDownloadServiceImpl::NotifyServiceUnavailable() {
   for (DownloadClient client_id : clients_->GetRegisteredClients())
     clients_->GetClient(client_id)->OnServiceUnavailable();
+
+  log_sink_->OnServiceStatusChanged();
+}
+
+void BackgroundDownloadServiceImpl::InvokeStartCallback(
+    DownloadClient client,
+    const std::string& guid,
+    DownloadParams::StartResult result,
+    DownloadParams::StartCallback callback) {
+  log_sink_->OnServiceRequestMade(client, guid, result);
+  stats::LogStartDownloadResult(client, result);
+  if (callback) {
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(callback), guid, result));
+  }
 }
 
 void BackgroundDownloadServiceImpl::OnModelHardRecoverComplete(bool success) {}
@@ -208,7 +230,7 @@
   DownloadParams::StartCallback callback = std::move(start_callbacks_[guid]);
   start_callbacks_.erase(guid);
   if (!success) {
-    InvokeStartCallback(guid, client,
+    InvokeStartCallback(client, guid,
                         DownloadParams::StartResult::INTERNAL_ERROR,
                         std::move(callback));
     return;
@@ -217,7 +239,7 @@
   Entry* entry = model_->Get(guid);
   DCHECK(entry);
 
-  InvokeStartCallback(guid, client, DownloadParams::StartResult::ACCEPTED,
+  InvokeStartCallback(client, guid, DownloadParams::StartResult::ACCEPTED,
                       std::move(callback));
   download_helper_->StartDownload(
       entry->guid, entry->target_file_path, entry->request_params,
@@ -238,6 +260,38 @@
                                                   DownloadClient client,
                                                   const std::string& guid) {}
 
+Controller::State BackgroundDownloadServiceImpl::GetControllerState() {
+  switch (GetStatus()) {
+    case ServiceStatus::STARTING_UP:
+      return Controller::State::INITIALIZING;
+    case ServiceStatus::READY:
+      return Controller::State::READY;
+    case ServiceStatus::UNAVAILABLE:
+      return Controller::State::UNAVAILABLE;
+  }
+}
+
+const StartupStatus& BackgroundDownloadServiceImpl::GetStartupStatus() {
+  return startup_status_;
+}
+
+LogSource::EntryDetailsList
+BackgroundDownloadServiceImpl::GetServiceDownloads() {
+  EntryDetailsList list;
+  auto entries = model_->PeekEntries();
+  for (auto* entry : entries)
+    list.push_back(std::make_pair(entry, absl::nullopt));
+  return list;
+}
+
+absl::optional<LogSource::EntryDetails>
+BackgroundDownloadServiceImpl::GetServiceDownload(const std::string& guid) {
+  auto* entry = model_->Get(guid);
+
+  return absl::optional<LogSource::EntryDetails>(
+      std::make_pair(entry, absl::nullopt));
+}
+
 void BackgroundDownloadServiceImpl::OnDownloadFinished(
     DownloadClient download_client,
     const std::string& guid,
@@ -250,16 +304,18 @@
 
   // TODO(xingliu): Plumb more details from platform api for failure reasons and
   // bytes downloaded.
+  Entry* entry = model_->Get(guid);
   if (!success) {
     stats::LogDownloadCompletion(CompletionType::FAIL, file_size);
-    model_->Remove(guid);
+    if (entry) {
+      log_sink_->OnServiceDownloadFailed(CompletionType::UNKNOWN, *entry);
+      model_->Remove(guid);
+    }
     client->OnDownloadFailed(guid, CompletionInfo(),
                              download::Client::FailureReason::UNKNOWN);
-
     return;
   }
 
-  Entry* entry = model_->Get(guid);
   if (!entry)
     return;
 
@@ -267,7 +323,7 @@
   entry->completion_time = clock_->Now();
   entry->state = Entry::State::COMPLETE;
   model_->Update(*entry);
-
+  log_sink_->OnServiceDownloadChanged(guid);
   stats::LogDownloadCompletion(CompletionType::SUCCEED, file_size);
 
   CompletionInfo completion_info;
@@ -282,6 +338,7 @@
   uint64_t bytes_count = base::saturated_cast<uint64_t>(bytes_downloaded);
   MaybeUpdateProgress(guid, bytes_count);
 
+  log_sink_->OnServiceDownloadChanged(guid);
   download::Client* client = clients_->GetClient(download_client);
   if (!client)
     return;
diff --git a/components/download/internal/background_service/ios/background_download_service_impl.h b/components/download/internal/background_service/ios/background_download_service_impl.h
index 32f5b829..615ce6a 100644
--- a/components/download/internal/background_service/ios/background_download_service_impl.h
+++ b/components/download/internal/background_service/ios/background_download_service_impl.h
@@ -11,8 +11,10 @@
 
 #include "base/memory/weak_ptr.h"
 #include "base/time/clock.h"
+#include "components/download/internal/background_service/log_source.h"
 #include "components/download/internal/background_service/model_impl.h"
 #include "components/download/internal/background_service/service_config_impl.h"
+#include "components/download/internal/background_service/startup_status.h"
 #include "components/download/public/background_service/background_download_service.h"
 #include "components/download/public/task/download_task_types.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -22,12 +24,15 @@
 class BackgroundDownloadTaskHelper;
 class ClientSet;
 class FileMonitor;
+class Logger;
+class LogSink;
 class Model;
 struct Configuration;
 struct DownloadParams;
 struct SchedulingParams;
 
 class BackgroundDownloadServiceImpl : public BackgroundDownloadService,
+                                      public LogSource,
                                       public Model::Client {
  public:
   BackgroundDownloadServiceImpl(
@@ -36,6 +41,8 @@
       std::unique_ptr<BackgroundDownloadTaskHelper> download_helper,
       std::unique_ptr<FileMonitor> file_monitor,
       const base::FilePath& download_dir,
+      std::unique_ptr<Logger> logger,
+      LogSink* log_sink,
       base::Clock* clock);
   ~BackgroundDownloadServiceImpl() override;
 
@@ -67,10 +74,21 @@
                      DownloadClient client,
                      const std::string& guid) override;
 
+  // LogSource implementation.
+  Controller::State GetControllerState() override;
+  const StartupStatus& GetStartupStatus() override;
+  LogSource::EntryDetailsList GetServiceDownloads() override;
+  absl::optional<LogSource::EntryDetails> GetServiceDownload(
+      const std::string& guid) override;
+
+  void PruneDbRecords();
   void OnFileMonitorInitialized(bool success);
   void OnFilesPruned();
   void NotifyServiceUnavailable();
-
+  void InvokeStartCallback(DownloadClient client,
+                           const std::string& guid,
+                           DownloadParams::StartResult result,
+                           DownloadParams::StartCallback callback);
   void OnDownloadFinished(DownloadClient download_client,
                           const std::string& guid,
                           bool success,
@@ -88,7 +106,9 @@
   std::unique_ptr<Model> model_;
   std::unique_ptr<BackgroundDownloadTaskHelper> download_helper_;
   std::unique_ptr<FileMonitor> file_monitor_;
-  absl::optional<bool> init_success_;
+  std::unique_ptr<Logger> logger_;
+  LogSink* log_sink_;
+  StartupStatus startup_status_;
   std::map<std::string, DownloadParams::StartCallback> start_callbacks_;
   base::Time update_time_;
   base::Clock* clock_;
diff --git a/components/download/internal/background_service/ios/background_download_service_impl_unittest.cc b/components/download/internal/background_service/ios/background_download_service_impl_unittest.cc
index 99efff8..0b7d4a5 100644
--- a/components/download/internal/background_service/ios/background_download_service_impl_unittest.cc
+++ b/components/download/internal/background_service/ios/background_download_service_impl_unittest.cc
@@ -16,8 +16,10 @@
 #include "base/test/task_environment.h"
 #include "components/download/internal/background_service/client_set.h"
 #include "components/download/internal/background_service/ios/background_download_task_helper.h"
+#include "components/download/internal/background_service/test/black_hole_log_sink.h"
 #include "components/download/internal/background_service/test/mock_file_monitor.h"
 #include "components/download/internal/background_service/test/test_store.h"
+#include "components/download/public/background_service/test/empty_logger.h"
 #include "components/download/public/background_service/test/mock_client.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -81,9 +83,11 @@
     download_helper_ = download_helper.get();
     auto file_monitor = std::make_unique<NiceMock<MockFileMonitor>>();
     file_monitor_ = file_monitor.get();
+    auto logger = std::make_unique<test::EmptyLogger>();
     service_ = std::make_unique<BackgroundDownloadServiceImpl>(
         std::move(client_set), std::move(model), std::move(download_helper),
-        std::move(file_monitor), dir_.GetPath(), &clock_);
+        std::move(file_monitor), dir_.GetPath(), std::move(logger), &log_sink_,
+        &clock_);
     ON_CALL(*file_monitor_, DeleteUnknownFiles(_, _, _))
         .WillByDefault(RunOnceCallback<2>());
   }
@@ -117,6 +121,7 @@
   base::HistogramTester histogram_tester_;
 
  private:
+  test::BlackHoleLogSink log_sink_;
   std::unique_ptr<BackgroundDownloadServiceImpl> service_;
 };
 
diff --git a/components/download/internal/background_service/startup_status.cc b/components/download/internal/background_service/startup_status.cc
index 57becf9..ffa1048 100644
--- a/components/download/internal/background_service/startup_status.cc
+++ b/components/download/internal/background_service/startup_status.cc
@@ -27,4 +27,9 @@
   return driver_ok.value() && model_ok.value() && file_monitor_ok.value();
 }
 
+bool StartupStatus::Failed() const {
+  return (driver_ok && !driver_ok.value()) || (model_ok && !model_ok.value()) ||
+         (file_monitor_ok && !file_monitor_ok.value());
+}
+
 }  // namespace download
diff --git a/components/download/internal/background_service/startup_status.h b/components/download/internal/background_service/startup_status.h
index fda6b245..185faff 100644
--- a/components/download/internal/background_service/startup_status.h
+++ b/components/download/internal/background_service/startup_status.h
@@ -31,6 +31,9 @@
   // be called if Complete() is true.
   bool Ok() const;
 
+  // Whether any of the components have failed to initialize.
+  bool Failed() const;
+
  private:
   DISALLOW_COPY_AND_ASSIGN(StartupStatus);
 };
diff --git a/components/download/internal/background_service/test/BUILD.gn b/components/download/internal/background_service/test/BUILD.gn
index 5d5203e..d460c87 100644
--- a/components/download/internal/background_service/test/BUILD.gn
+++ b/components/download/internal/background_service/test/BUILD.gn
@@ -13,6 +13,8 @@
   testonly = true
 
   sources = [
+    "black_hole_log_sink.cc",
+    "black_hole_log_sink.h",
     "entry_utils.cc",
     "entry_utils.h",
     "mock_file_monitor.cc",
@@ -23,8 +25,6 @@
 
   if (!is_ios) {
     sources += [
-      "black_hole_log_sink.cc",
-      "black_hole_log_sink.h",
       "download_params_utils.cc",
       "download_params_utils.h",
       "mock_controller.cc",
diff --git a/components/download/resources/download_internals/BUILD.gn b/components/download/resources/download_internals/BUILD.gn
index ce7668b..39fb5b2 100644
--- a/components/download/resources/download_internals/BUILD.gn
+++ b/components/download/resources/download_internals/BUILD.gn
@@ -2,11 +2,9 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//chrome/common/features.gni")
 import("//third_party/closure_compiler/compile_js.gni")
 import("//tools/grit/grit_rule.gni")
 import("//ui/webui/resources/tools/generate_grd.gni")
-
 generate_grd("build_grd") {
   grd_prefix = "download_internals"
   out_grd = "$target_gen_dir/resources.grd"
diff --git a/components/download/resources/download_internals/download_internals.js b/components/download/resources/download_internals/download_internals.js
index aaed39139..df1629e 100644
--- a/components/download/resources/download_internals/download_internals.js
+++ b/components/download/resources/download_internals/download_internals.js
@@ -2,6 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// <if expr="is_ios">
+import 'chrome://resources/js/ios/web_ui.js';
+// </if>
+
 import {addWebUIListener} from 'chrome://resources/js/cr.m.js';
 import {$} from 'chrome://resources/js/util.m.js';
 
diff --git a/components/exo/client_controlled_shell_surface.cc b/components/exo/client_controlled_shell_surface.cc
index 323d691..c25cf64 100644
--- a/components/exo/client_controlled_shell_surface.cc
+++ b/components/exo/client_controlled_shell_surface.cc
@@ -1119,7 +1119,7 @@
     const {
   const ash::NonClientFrameViewAsh* frame_view = GetFrameView();
   if (frame_view->GetFrameEnabled()) {
-    gfx::Rect visible_bounds = ShellSurfaceBase::GetVisibleBounds();
+    gfx::Rect visible_bounds = GetVisibleBounds();
     if (widget_->IsMaximized() && frame_type_ == SurfaceFrameType::NORMAL) {
       // When the widget is maximized in clamshell mode, client sends
       // |geometry_| without taking caption height into account.
diff --git a/components/exo/extended_drag_source.cc b/components/exo/extended_drag_source.cc
index 105cf0f4..9876c5b 100644
--- a/components/exo/extended_drag_source.cc
+++ b/components/exo/extended_drag_source.cc
@@ -205,8 +205,12 @@
     return;
   }
 
-  // TODO(crbug.com/1099418): Support touch move source.
-  NOTIMPLEMENTED() << "Non-mouse window dragging not supported yet.";
+  if (event->IsGestureEvent()) {
+    handler->OnGestureEvent(event->AsGestureEvent());
+    return;
+  }
+
+  NOTREACHED() << "Only mouse and touch events are supported.";
 }
 
 void ExtendedDragSource::OnDataSourceDestroying(DataSource* source) {
diff --git a/components/flags_ui/feature_entry.h b/components/flags_ui/feature_entry.h
index 49aede56..b639120 100644
--- a/components/flags_ui/feature_entry.h
+++ b/components/flags_ui/feature_entry.h
@@ -106,14 +106,14 @@
     const char* command_line_value;
   };
 
-  // Configures one parameter for FEATURE_WITH_VARIATIONS_VALUE.
+  // Configures one parameter for FEATURE_WITH_PARAMS_VALUE.
   struct FeatureParam {
     const char* param_name;
     const char* param_value;
   };
 
   // Specified one variation (list of parameter values) for
-  // FEATURE_WITH_VARIATIONS_VALUE.
+  // FEATURE_WITH_PARAMS_VALUE.
   struct FeatureVariation {
     // Text that denotes the variation in chrome://flags. For each variation,
     // the user is shown an option labeled "Enabled <description_text>" (with
@@ -167,19 +167,19 @@
     } switches;
 
     struct {
-      // For FEATURE_VALUE or FEATURE_WITH_VARIATIONS_VALUE, the base::Feature
+      // For FEATURE_VALUE or FEATURE_WITH_PARAMS_VALUE, the base::Feature
       // this entry corresponds to. The same feature must not be used in
       // multiple FeatureEntries.
       const base::Feature* feature;
 
-      // This describes the options if type is FEATURE_WITH_VARIATIONS_VALUE.
+      // This describes the options if type is FEATURE_WITH_PARAMS_VALUE.
       // The first variation is the default "Enabled" variation, its
       // description_id is disregarded.
       base::span<const FeatureVariation> feature_variations;
 
       // The name of the FieldTrial in which the selected variation parameters
       // should be registered. This is used if type is
-      // FEATURE_WITH_VARIATIONS_VALUE.
+      // FEATURE_WITH_PARAMS_VALUE.
       const char* feature_trial_name;
     } feature;
 
@@ -209,12 +209,12 @@
   const FeatureEntry::Choice& ChoiceForOption(int index) const;
 
   // Returns the state of the feature at |index|. Only applicable for types
-  // FEATURE_VALUE and FEATURE_WITH_VARIATIONS_VALUE.
+  // FEATURE_VALUE and FEATURE_WITH_PARAMS_VALUE.
   FeatureEntry::FeatureState StateForOption(int index) const;
 
   // Returns the variation for the option at |index| or nullptr if there is no
   // variation associated at |index|. Only applicable for types FEATURE_VALUE
-  // and FEATURE_WITH_VARIATIONS_VALUE.
+  // and FEATURE_WITH_PARAMS_VALUE.
   const FeatureEntry::FeatureVariation* VariationForOption(int index) const;
 };
 
diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc
index dc3faba..b552a4f2 100644
--- a/components/language/core/common/language_experiments.cc
+++ b/components/language/core/common/language_experiments.cc
@@ -53,6 +53,7 @@
 const char kEnforceRankerKey[] = "enforce_ranker";
 const char kOverrideModelGeoValue[] = "geo";
 const char kOverrideModelDefaultValue[] = "default";
+const char kContentLanguagesDisableObserversParam[] = "disable_observers";
 
 OverrideLanguageModel GetOverrideLanguageModel() {
   std::map<std::string, std::string> params;
diff --git a/components/language/core/common/language_experiments.h b/components/language/core/common/language_experiments.h
index 5f0e651..6a09a65 100644
--- a/components/language/core/common/language_experiments.h
+++ b/components/language/core/common/language_experiments.h
@@ -28,6 +28,7 @@
 extern const char kOverrideModelGeoValue[];
 extern const char kOverrideModelDefaultValue[];
 extern const char kBackoffThresholdKey[];
+extern const char kContentLanguagesDisableObserversParam[];
 
 // Notify sync to update data on language determined.
 extern const base::Feature kNotifySyncOnLanguageDetermined;
diff --git a/components/lookalikes/core/lookalike_url_util.cc b/components/lookalikes/core/lookalike_url_util.cc
index b3b5125..fa252390 100644
--- a/components/lookalikes/core/lookalike_url_util.cc
+++ b/components/lookalikes/core/lookalike_url_util.cc
@@ -360,14 +360,53 @@
   return false;
 }
 
+// Identical to url_formatter::top_domains::HostnameWithoutRegistry(), but
+// respects de-facto public registries like .com.de using similar logic to
+// GetETLDPlusOne. See kPrivateRegistriesTreatedAsPublic definition for more
+// details. e.g. "google.com.de" returns "google". Call with an eTLD+1, not a
+// full hostname.
+std::string GetE2LDWithDeFactoPublicRegistries(
+    const std::string& domain_and_registry) {
+  if (domain_and_registry.empty()) {
+    return std::string();
+  }
+
+  size_t registry_size =
+      net::registry_controlled_domains::PermissiveGetHostRegistryLength(
+          domain_and_registry.c_str(),
+          net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
+          net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
+  const size_t private_registry_size =
+      net::registry_controlled_domains::PermissiveGetHostRegistryLength(
+          domain_and_registry.c_str(),
+          net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
+          net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
+
+  // If the registry lengths are the same using public and private registries,
+  // than this is just a public registry domain. Otherwise, we need to check if
+  // the registry ends with one of our anointed registries.
+  if (registry_size != private_registry_size) {
+    for (const auto* private_registry : kPrivateRegistriesTreatedAsPublic) {
+      if (base::EndsWith(domain_and_registry, private_registry)) {
+        registry_size = private_registry_size;
+      }
+    }
+  }
+
+  std::string out =
+      domain_and_registry.substr(0, domain_and_registry.size() - registry_size);
+  base::TrimString(out, ".", &out);
+  return out;
+}
+
 // Returns whether |embedded_target| and |embedding_domain| share the same e2LD,
 // (as in, e.g., google.com and google.org, or airbnb.com.br and airbnb.com).
-// Assumes |embedding_domain| is an eTLD+1.
+// Assumes |embedding_domain| is an eTLD+1. Respects de-facto public eTLDs.
 bool IsCrossTLDMatch(const DomainInfo& embedded_target,
                      const std::string& embedding_domain) {
   return (
-      embedded_target.domain_without_registry ==
-      url_formatter::top_domains::HostnameWithoutRegistry(embedding_domain));
+      GetE2LDWithDeFactoPublicRegistries(embedded_target.domain_and_registry) ==
+      GetE2LDWithDeFactoPublicRegistries(embedding_domain));
 }
 
 // Returns whether |embedded_target| is one of kDomainsPermittedInEndEmbeddings
diff --git a/components/lookalikes/core/lookalike_url_util_unittest.cc b/components/lookalikes/core/lookalike_url_util_unittest.cc
index 8429eea..accca0f 100644
--- a/components/lookalikes/core/lookalike_url_util_unittest.cc
+++ b/components/lookalikes/core/lookalike_url_util_unittest.cc
@@ -260,6 +260,11 @@
       {"foo.highengagement-co-uk.foo.com", "highengagement.co.uk",
        TargetEmbeddingType::kInterstitial},
 
+      // Cross-TLD matches should not trigger, even when they're embedding
+      // another domain, even when using a de-facto public eTLD.
+      {"google.com.mx", "", TargetEmbeddingType::kNone},  // public
+      {"google.com.de", "", TargetEmbeddingType::kNone},  // de-facto public
+
       // Engaged sites should trigger as specifically as possible, and should
       // trigger preferentially to top sites when possible.
       {"foo.highengagement.com.foo.com", "highengagement.com",
diff --git a/components/omnibox/browser/android/java/src/org/chromium/components/omnibox/AutocompleteResult.java b/components/omnibox/browser/android/java/src/org/chromium/components/omnibox/AutocompleteResult.java
index 80bf11b..f6f8662 100644
--- a/components/omnibox/browser/android/java/src/org/chromium/components/omnibox/AutocompleteResult.java
+++ b/components/omnibox/browser/android/java/src/org/chromium/components/omnibox/AutocompleteResult.java
@@ -56,6 +56,8 @@
     /** An empty, initialized AutocompleteResult object. */
     public static final AutocompleteResult EMPTY_RESULT =
             new AutocompleteResult(0, Collections.emptyList(), null);
+    /** A special value indicating that action has no particular index associated. */
+    public static final int NO_SUGGESTION_INDEX = -1;
 
     private final @NonNull SparseArray<GroupDetails> mGroupsDetails;
     private final @NonNull List<AutocompleteMatch> mSuggestions;
@@ -172,9 +174,12 @@
     /**
      * Verifies coherency of this AutocompleteResult object with its C++ counterpart.
      * Records histogram data reflecting the outcome.
+     *
+     * @param suggestionIndex The index of suggestion the code intends to operate on,
+     *         or NO_SUGGESTION_INDEX if there is no specific suggestion.
      * @return Whether Java and C++ AutocompleteResult objects are in sync.
      */
-    public boolean verifyCoherency() {
+    public boolean verifyCoherency(int suggestionIndex) {
         // May happen with either test data, or AutocompleteResult built from the ZeroSuggestCache.
         // This is a valid case, despite not meeting coherency criteria. Do not record.
         if (mNativeAutocompleteResult == 0) return false;
@@ -183,7 +188,7 @@
             nativeMatches[index] = mSuggestions.get(index).getNativeObjectRef();
         }
         return AutocompleteResultJni.get().verifyCoherency(
-                mNativeAutocompleteResult, nativeMatches);
+                mNativeAutocompleteResult, nativeMatches, suggestionIndex);
     }
 
     /** Returns a reference to Native AutocompleteResult object. */
@@ -231,7 +236,7 @@
      */
     public void groupSuggestionsBySearchVsURL(int firstIndex, int lastIndex) {
         if (mNativeAutocompleteResult != 0) {
-            if (!verifyCoherency()) {
+            if (!verifyCoherency(NO_SUGGESTION_INDEX)) {
                 // This may trigger if the Native (C++) object got updated and we haven't had a
                 // chance to reflect this update here. When this happens, do not rearrange the
                 // order of suggestions and wait for a corresponding update.
@@ -244,7 +249,7 @@
                     mNativeAutocompleteResult, firstIndex, lastIndex);
             // Verify that the Native AutocompleteResult update has been properly
             // reflected on the Java part.
-            assert verifyCoherency() : "Post-group verification failed";
+            assert verifyCoherency(NO_SUGGESTION_INDEX) : "Post-group verification failed";
         }
     }
 
@@ -252,6 +257,7 @@
     interface Natives {
         void groupSuggestionsBySearchVsURL(
                 long nativeAutocompleteResult, int firstIndex, int lastIndex);
-        boolean verifyCoherency(long nativeAutocompleteResult, long[] matches);
+        boolean verifyCoherency(
+                long nativeAutocompleteResult, long[] matches, long suggestionIndex);
     }
 }
diff --git a/components/omnibox/browser/autocomplete_result.h b/components/omnibox/browser/autocomplete_result.h
index 34e77c2..084e5f2 100644
--- a/components/omnibox/browser/autocomplete_result.h
+++ b/components/omnibox/browser/autocomplete_result.h
@@ -77,7 +77,8 @@
   // AutocompleteMatch objects held by this instance of the AutocompleteResult
   // and returns true if the two sets are same.
   bool VerifyCoherency(JNIEnv* env,
-                       const base::android::JavaParamRef<jlongArray>& matches);
+                       const base::android::JavaParamRef<jlongArray>& matches,
+                       jint match_index);
 #endif
 
   // Moves matches from |old_matches| to provide a consistent result set.
diff --git a/components/omnibox/browser/autocomplete_result_android.cc b/components/omnibox/browser/autocomplete_result_android.cc
index 2792dac2..ebf592d 100644
--- a/components/omnibox/browser/autocomplete_result_android.cc
+++ b/components/omnibox/browser/autocomplete_result_android.cc
@@ -29,12 +29,17 @@
 using base::android::ToJavaIntArray;
 
 namespace {
+// Special value passed to VerifyCoherency() suggesting that the action
+// requesting verification has no specific index associated with it.
+constexpr const int kNoMatchIndex = -1;
+
 // Used for histograms, append only.
 enum class MatchVerificationResult {
   VALID_MATCH = 0,
   WRONG_MATCH = 1,
   BAD_RESULT_SIZE = 2,
   NATIVE_MATCH_DEAD = 3,
+  INVALID_MATCH_POSITION = 4,
   // Keep as the last entry:
   COUNT
 };
@@ -122,7 +127,8 @@
 
 bool AutocompleteResult::VerifyCoherency(
     JNIEnv* env,
-    const JavaParamRef<jlongArray>& j_matches_array) {
+    const JavaParamRef<jlongArray>& j_matches_array,
+    jint match_index) {
   DCHECK(j_matches_array);
 
   std::vector<jlong> j_matches;
@@ -137,6 +143,15 @@
     return false;
   }
 
+  if (match_index != kNoMatchIndex && match_index >= static_cast<int>(size())) {
+    UMA_HISTOGRAM_ENUMERATION("Android.Omnibox.InvalidMatch",
+                              MatchVerificationResult::INVALID_MATCH_POSITION,
+                              MatchVerificationResult::COUNT);
+    NOTREACHED() << "Requested action index is not valid: " << match_index
+                 << " outside of " << size() << " limit";
+    return false;
+  }
+
   for (auto index = 0u; index < size(); index++) {
     if (reinterpret_cast<intptr_t>(match_at(index)) != j_matches[index]) {
       UMA_HISTOGRAM_ENUMERATION("Android.Omnibox.InvalidMatch",
diff --git a/components/paint_preview/OWNERS b/components/paint_preview/OWNERS
index a56f4c78..c637e40 100644
--- a/components/paint_preview/OWNERS
+++ b/components/paint_preview/OWNERS
@@ -1,3 +1,6 @@
 ckitagawa@chromium.org
 fredmello@chromium.org
 yfriedman@chromium.org
+
+# HarfBuzz subsetting integration
+per-file common/subset-font*=file://third_party/harfbuzz-ng/OWNERS
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
index 17de4d8..82e78f6 100644
--- a/components/password_manager/core/browser/BUILD.gn
+++ b/components/password_manager/core/browser/BUILD.gn
@@ -113,6 +113,8 @@
     "login_database.cc",
     "login_database.h",
     "manage_passwords_referrer.h",
+    "move_password_to_account_store_helper.cc",
+    "move_password_to_account_store_helper.h",
     "multi_store_form_fetcher.cc",
     "multi_store_form_fetcher.h",
     "multi_store_password_save_manager.cc",
diff --git a/components/password_manager/core/browser/android_affiliation/mock_affiliated_match_helper.cc b/components/password_manager/core/browser/android_affiliation/mock_affiliated_match_helper.cc
index f7b79e0..8e822ea 100644
--- a/components/password_manager/core/browser/android_affiliation/mock_affiliated_match_helper.cc
+++ b/components/password_manager/core/browser/android_affiliation/mock_affiliated_match_helper.cc
@@ -47,6 +47,11 @@
     PasswordFormsCallback result_callback) {
   const std::vector<AffiliationAndBrandingInformation>& information =
       OnInjectAffiliationAndBrandingInformationCalled();
+  if (information.empty()) {
+    std::move(result_callback).Run(std::move(forms));
+    return;
+  }
+
   ASSERT_EQ(information.size(), forms.size());
   for (size_t i = 0; i < forms.size(); ++i) {
     forms[i]->affiliated_web_realm = information[i].affiliated_web_realm;
diff --git a/components/password_manager/core/browser/form_fetcher_impl.cc b/components/password_manager/core/browser/form_fetcher_impl.cc
index 1443d8d..aa548f3 100644
--- a/components/password_manager/core/browser/form_fetcher_impl.cc
+++ b/components/password_manager/core/browser/form_fetcher_impl.cc
@@ -10,7 +10,6 @@
 #include <utility>
 
 #include "build/build_config.h"
-#include "components/password_manager/core/browser/android_affiliation/affiliated_match_helper.h"
 #include "components/password_manager/core/browser/browser_save_password_progress_logger.h"
 #include "components/password_manager/core/browser/credentials_filter.h"
 #include "components/password_manager/core/browser/multi_store_form_fetcher.h"
@@ -203,8 +202,9 @@
   return result;
 }
 
-void FormFetcherImpl::ProcessPasswordStoreResults(
+void FormFetcherImpl::FindMatchesAndNotifyConsumers(
     std::vector<std::unique_ptr<PasswordForm>> results) {
+  DCHECK_EQ(State::WAITING, state_);
   insecure_credentials_.clear();
   for (const auto& form : results) {
     for (const auto& issue : form->password_issues) {
@@ -214,22 +214,6 @@
       insecure_credentials_.back().in_store = form->in_store;
     }
   }
-  if (client_->GetProfilePasswordStore()->affiliated_match_helper()) {
-    client_->GetProfilePasswordStore()
-        ->affiliated_match_helper()
-        ->InjectAffiliationAndBrandingInformation(
-            std::move(results),
-            AndroidAffiliationService::StrategyOnCacheMiss::FAIL,
-            base::BindOnce(&FormFetcherImpl::FindMatchesAndNotifyConsumers,
-                           weak_ptr_factory_.GetWeakPtr()));
-  } else {
-    FindMatchesAndNotifyConsumers(std::move(results));
-  }
-}
-
-void FormFetcherImpl::FindMatchesAndNotifyConsumers(
-    std::vector<std::unique_ptr<PasswordForm>> results) {
-  DCHECK_EQ(State::WAITING, state_);
   state_ = State::NOT_WAITING;
   SplitResults(std::move(results));
 
@@ -289,7 +273,7 @@
     return;
   }
 
-  ProcessPasswordStoreResults(std::move(results));
+  FindMatchesAndNotifyConsumers(std::move(results));
 }
 
 void FormFetcherImpl::OnGetSiteStatistics(
@@ -299,7 +283,7 @@
 
 void FormFetcherImpl::ProcessMigratedForms(
     std::vector<std::unique_ptr<PasswordForm>> forms) {
-  ProcessPasswordStoreResults(std::move(forms));
+  FindMatchesAndNotifyConsumers(std::move(forms));
 }
 
 }  // namespace password_manager
diff --git a/components/password_manager/core/browser/form_fetcher_impl.h b/components/password_manager/core/browser/form_fetcher_impl.h
index 0279751..398f366 100644
--- a/components/password_manager/core/browser/form_fetcher_impl.h
+++ b/components/password_manager/core/browser/form_fetcher_impl.h
@@ -63,12 +63,6 @@
   std::unique_ptr<FormFetcher> Clone() override;
 
  protected:
-  // Processes password form results and forwards them to the
-  // AffiliatedMatchHelper to inject branding information. Calls
-  // FindMatchesAndNotifyConsumers afterwards.
-  void ProcessPasswordStoreResults(
-      std::vector<std::unique_ptr<PasswordForm>> results);
-
   // Actually finds best matches and notifies consumers.
   void FindMatchesAndNotifyConsumers(
       std::vector<std::unique_ptr<PasswordForm>> results);
diff --git a/components/password_manager/core/browser/form_fetcher_impl_unittest.cc b/components/password_manager/core/browser/form_fetcher_impl_unittest.cc
index 985a53c..db290c38 100644
--- a/components/password_manager/core/browser/form_fetcher_impl_unittest.cc
+++ b/components/password_manager/core/browser/form_fetcher_impl_unittest.cc
@@ -879,34 +879,6 @@
           mock_store_.get(), std::vector<std::unique_ptr<PasswordForm>>());
 }
 
-TEST_P(FormFetcherImplTest, BrandingInformationInjected) {
-  Fetch();
-
-  std::vector<MockAffiliatedMatchHelper::AffiliationAndBrandingInformation>
-      affiliation_info_for_results = {
-          {"android://hash@com.example.android/", "Android App Name", GURL()}};
-
-  PasswordForm form = CreateHTMLForm("android://hash@com.example.android/",
-                                     "username_value", "password_value");
-  form.in_store = PasswordForm::Store::kProfileStore;
-  auto mock_helper = std::make_unique<MockAffiliatedMatchHelper>();
-  // Injects expected branding information.
-  mock_helper->ExpectCallToInjectAffiliationAndBrandingInformation(
-      affiliation_info_for_results);
-  // Settings affiliated match helper for the password store.
-  mock_store_->SetAffiliatedMatchHelper(std::move(mock_helper));
-
-  std::vector<std::unique_ptr<PasswordForm>> results;
-  results.push_back(std::make_unique<PasswordForm>(form));
-  form_fetcher_->OnGetPasswordStoreResultsFrom(mock_store_.get(),
-                                               std::move(results));
-  EXPECT_EQ(FormFetcher::State::NOT_WAITING, form_fetcher_->GetState());
-
-  // The results should contain branding information.
-  EXPECT_EQ(form_fetcher_->GetNonFederatedMatches()[0]->app_display_name,
-            "Android App Name");
-}
-
 INSTANTIATE_TEST_SUITE_P(All,
                          FormFetcherImplTest,
                          testing::Values(false, true));
diff --git a/components/password_manager/core/browser/move_password_to_account_store_helper.cc b/components/password_manager/core/browser/move_password_to_account_store_helper.cc
new file mode 100644
index 0000000..9cb55a9
--- /dev/null
+++ b/components/password_manager/core/browser/move_password_to_account_store_helper.cc
@@ -0,0 +1,49 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/password_manager/core/browser/move_password_to_account_store_helper.h"
+
+#include <utility>
+
+#include "components/password_manager/core/browser/form_fetcher_impl.h"
+#include "components/password_manager/core/browser/password_form_digest.h"
+#include "components/password_manager/core/browser/password_form_metrics_recorder.h"
+#include "components/password_manager/core/browser/password_save_manager_impl.h"
+
+namespace password_manager {
+
+MovePasswordToAccountStoreHelper::MovePasswordToAccountStoreHelper(
+    const PasswordForm& form,
+    PasswordManagerClient* client,
+    base::OnceClosure done_callback)
+    : form_(form),
+      client_(client),
+      done_callback_(std::move(done_callback)),
+      form_fetcher_(FormFetcherImpl::CreateFormFetcherImpl(
+          PasswordFormDigest(form),
+          client,
+          /*should_migrate_http_passwords=*/true)) {
+  form_fetcher_->Fetch();
+  form_fetcher_->AddConsumer(this);
+}
+
+MovePasswordToAccountStoreHelper::~MovePasswordToAccountStoreHelper() {
+  form_fetcher_->RemoveConsumer(this);
+}
+
+void MovePasswordToAccountStoreHelper::OnFetchCompleted() {
+  std::unique_ptr<PasswordSaveManagerImpl> save_manager =
+      PasswordSaveManagerImpl::CreatePasswordSaveManagerImpl(client_);
+  save_manager->Init(client_, form_fetcher_.get(), /*metrics_recorder=*/nullptr,
+                     /*votes_uploader=*/nullptr);
+  save_manager->CreatePendingCredentials(form_, {}, {}, /*is_http_auth=*/false,
+                                         /*is_credential_api_save=*/false);
+  // TODO(crbug.com/1237836): Make the trigger configurable.
+  save_manager->MoveCredentialsToAccountStore(
+      metrics_util::MoveToAccountStoreTrigger::kExplicitlyTriggeredInSettings);
+  std::move(done_callback_).Run();
+  // |this| might be deleted now!
+}
+
+}  // namespace password_manager
diff --git a/components/password_manager/core/browser/move_password_to_account_store_helper.h b/components/password_manager/core/browser/move_password_to_account_store_helper.h
new file mode 100644
index 0000000..e7de177a
--- /dev/null
+++ b/components/password_manager/core/browser/move_password_to_account_store_helper.h
@@ -0,0 +1,39 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_MOVE_PASSWORD_TO_ACCOUNT_STORE_HELPER_H_
+#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_MOVE_PASSWORD_TO_ACCOUNT_STORE_HELPER_H_
+
+#include <memory>
+
+#include "base/callback.h"
+#include "components/password_manager/core/browser/form_fetcher.h"
+#include "components/password_manager/core/browser/password_form.h"
+
+namespace password_manager {
+
+class PasswordManagerClient;
+
+// Used for moving a form from the profile store to the account store.
+class MovePasswordToAccountStoreHelper : public FormFetcher::Consumer {
+ public:
+  // Starts moving |form|. |done_callback| is run when done.
+  MovePasswordToAccountStoreHelper(const PasswordForm& form,
+                                   PasswordManagerClient* client,
+                                   base::OnceClosure done_callback);
+  ~MovePasswordToAccountStoreHelper() override;
+
+ private:
+  // FormFetcher::Consumer.
+  void OnFetchCompleted() override;
+
+  PasswordForm form_;
+  PasswordManagerClient* const client_;
+  base::OnceClosure done_callback_;
+  std::unique_ptr<FormFetcher> form_fetcher_;
+};
+
+}  // namespace password_manager
+
+#endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_MOVE_PASSWORD_TO_ACCOUNT_STORE_HELPER_H_
diff --git a/components/password_manager/core/browser/multi_store_form_fetcher.cc b/components/password_manager/core/browser/multi_store_form_fetcher.cc
index 26c0624..8fc212ca 100644
--- a/components/password_manager/core/browser/multi_store_form_fetcher.cc
+++ b/components/password_manager/core/browser/multi_store_form_fetcher.cc
@@ -148,7 +148,7 @@
     BrowserSavePasswordProgressLogger(client_->GetLogManager())
         .LogNumber(Logger::STRING_ON_GET_STORE_RESULTS_METHOD, results.size());
   }
-  ProcessPasswordStoreResults(std::move(partial_results_));
+  FindMatchesAndNotifyConsumers(std::move(partial_results_));
 }
 
 void MultiStoreFormFetcher::ProcessMigratedForms(
diff --git a/components/password_manager/core/browser/password_store.cc b/components/password_manager/core/browser/password_store.cc
index f1fd263..2fce65f 100644
--- a/components/password_manager/core/browser/password_store.cc
+++ b/components/password_manager/core/browser/password_store.cc
@@ -250,22 +250,29 @@
 
   scoped_refptr<GetLoginsWithAffiliationsRequestHandler> request_handler =
       new GetLoginsWithAffiliationsRequestHandler(form, consumer->GetWeakPtr(),
-                                                  this);
+                                                  /*store=*/this);
 
   if (affiliated_match_helper_) {
+    auto branding_injection_for_affiliations_callback =
+        base::BindOnce(&PasswordStore::InjectAffiliationAndBrandingInformation,
+                       this, request_handler->AffiliatedLoginsClosure());
     // The backend *is* the password_store and can therefore be passed with
     // base::Unretained.
     affiliated_match_helper_->GetAffiliatedAndroidAndWebRealms(
-        form, request_handler->AffiliationsClosure().Then(
-                  base::BindOnce(&PasswordStoreBackend::FillMatchingLoginsAsync,
-                                 base::Unretained(backend_),
-                                 request_handler->AffiliatedLoginsClosure(),
-                                 /*include_psl=*/false)));
+        form, request_handler->AffiliationsClosure().Then(base::BindOnce(
+                  &PasswordStoreBackend::FillMatchingLoginsAsync,
+                  base::Unretained(backend_),
+                  std::move(branding_injection_for_affiliations_callback),
+                  /*include_psl=*/false)));
   } else {
     request_handler->AffiliatedLoginsClosure().Run({});
   }
 
-  backend_->FillMatchingLoginsAsync(request_handler->LoginsForFormClosure(),
+  auto branding_injection_callback =
+      base::BindOnce(&PasswordStore::InjectAffiliationAndBrandingInformation,
+                     this, request_handler->LoginsForFormClosure());
+
+  backend_->FillMatchingLoginsAsync(std::move(branding_injection_callback),
                                     FormSupportsPSL(form), {form});
 }
 
@@ -451,7 +458,7 @@
 void PasswordStore::InjectAffiliationAndBrandingInformation(
     LoginsReply callback,
     LoginsResult forms) {
-  if (affiliated_match_helper_) {
+  if (affiliated_match_helper_ && !forms.empty()) {
     affiliated_match_helper_->InjectAffiliationAndBrandingInformation(
         std::move(forms), AndroidAffiliationService::StrategyOnCacheMiss::FAIL,
         std::move(callback));
diff --git a/components/password_manager/core/browser/password_store_unittest.cc b/components/password_manager/core/browser/password_store_unittest.cc
index 5dce484..01c420b 100644
--- a/components/password_manager/core/browser/password_store_unittest.cc
+++ b/components/password_manager/core/browser/password_store_unittest.cc
@@ -877,6 +877,101 @@
   store->ShutdownOnUIThread();
 }
 
+TEST_F(PasswordStoreTest, GetLoginsWithBrandingInformationForExactMatch) {
+  scoped_refptr<PasswordStoreImpl> store = CreatePasswordStore();
+  store->Init(nullptr);
+  PasswordFormData form_data = {PasswordForm::Scheme::kHtml,
+                                kTestWebRealm1,
+                                kTestWebOrigin1,
+                                "",
+                                u"",
+                                u"",
+                                u"",
+                                u"username_value_1",
+                                u"",
+                                kTestLastUsageTime,
+                                1};
+  std::unique_ptr<PasswordForm> credential =
+      FillPasswordFormWithData(form_data);
+  store->AddLogin(*credential);
+
+  PasswordFormDigest observed_form = {PasswordForm::Scheme::kHtml,
+                                      kTestWebRealm1, GURL(kTestWebOrigin1)};
+
+  std::vector<std::unique_ptr<PasswordForm>> expected_results;
+  expected_results.push_back(std::make_unique<PasswordForm>(*credential));
+
+  auto mock_helper = std::make_unique<MockAffiliatedMatchHelper>();
+  std::vector<MockAffiliatedMatchHelper::AffiliationAndBrandingInformation>
+      affiliation_info_for_results = {
+          {kTestWebRealm1, kTestAndroidName1, GURL(kTestAndroidIconURL1)}};
+  mock_helper->ExpectCallToInjectAffiliationAndBrandingInformation(
+      affiliation_info_for_results);
+  store->SetAffiliatedMatchHelper(std::move(mock_helper));
+
+  expected_results[0]->affiliated_web_realm = kTestWebRealm1;
+  expected_results[0]->app_display_name = kTestAndroidName1;
+  expected_results[0]->app_icon_url = GURL(kTestAndroidIconURL1);
+
+  MockPasswordStoreConsumer mock_consumer;
+  EXPECT_CALL(mock_consumer,
+              OnGetPasswordStoreResultsConstRef(
+                  UnorderedPasswordFormElementsAre(&expected_results)));
+
+  store->GetLogins(observed_form, &mock_consumer);
+  WaitForPasswordStore();
+  store->ShutdownOnUIThread();
+}
+
+TEST_F(PasswordStoreTest, GetLoginsWithBrandingInformationForAffiliatedLogins) {
+  scoped_refptr<PasswordStoreImpl> store = CreatePasswordStore();
+  store->Init(nullptr);
+  PasswordFormData form_data = {PasswordForm::Scheme::kHtml,
+                                kTestAndroidRealm1,
+                                "",
+                                "",
+                                u"",
+                                u"",
+                                u"",
+                                u"username_value_3",
+                                u"",
+                                kTestLastUsageTime,
+                                1};
+  std::unique_ptr<PasswordForm> credential =
+      FillPasswordFormWithData(form_data);
+  store->AddLogin(*credential);
+
+  PasswordFormDigest observed_form = {PasswordForm::Scheme::kHtml,
+                                      kTestWebRealm1, GURL(kTestWebOrigin1)};
+
+  std::vector<std::unique_ptr<PasswordForm>> expected_results;
+  expected_results.push_back(std::make_unique<PasswordForm>(*credential));
+  expected_results[0]->is_affiliation_based_match = true;
+
+  auto mock_helper = std::make_unique<MockAffiliatedMatchHelper>();
+  mock_helper->ExpectCallToGetAffiliatedAndroidRealms(observed_form,
+                                                      {kTestAndroidRealm1});
+  std::vector<MockAffiliatedMatchHelper::AffiliationAndBrandingInformation>
+      affiliation_info_for_results = {
+          {kTestWebRealm1, kTestAndroidName1, GURL(kTestAndroidIconURL1)}};
+  mock_helper->ExpectCallToInjectAffiliationAndBrandingInformation(
+      affiliation_info_for_results);
+  store->SetAffiliatedMatchHelper(std::move(mock_helper));
+
+  expected_results[0]->affiliated_web_realm = kTestWebRealm1;
+  expected_results[0]->app_display_name = kTestAndroidName1;
+  expected_results[0]->app_icon_url = GURL(kTestAndroidIconURL1);
+
+  MockPasswordStoreConsumer mock_consumer;
+  EXPECT_CALL(mock_consumer,
+              OnGetPasswordStoreResultsConstRef(
+                  UnorderedPasswordFormElementsAre(&expected_results)));
+
+  store->GetLogins(observed_form, &mock_consumer);
+  WaitForPasswordStore();
+  store->ShutdownOnUIThread();
+}
+
 // The 'bool' param corresponds to 'use_federated_login' in the test.
 class PasswordStoreFederationTest : public PasswordStoreTest,
                                     public testing::WithParamInterface<bool> {};
diff --git a/components/pdf/renderer/BUILD.gn b/components/pdf/renderer/BUILD.gn
index 1f1eda1..0c1eb72 100644
--- a/components/pdf/renderer/BUILD.gn
+++ b/components/pdf/renderer/BUILD.gn
@@ -12,7 +12,6 @@
 
   public = [
     "internal_plugin_renderer_helpers.h",
-    "pdf_accessibility_action_handler.h",
     "pdf_accessibility_tree.h",
     "pdf_ax_action_target.h",
     "pdf_internal_plugin_delegate.h",
diff --git a/components/pdf/renderer/DEPS b/components/pdf/renderer/DEPS
index 3844431..f31a6ef 100644
--- a/components/pdf/renderer/DEPS
+++ b/components/pdf/renderer/DEPS
@@ -7,6 +7,7 @@
   "+pdf/accessibility_structs.h",
   "+pdf/buildflags.h",
   "+pdf/mojom/pdf.mojom.h",
+  "+pdf/pdf_accessibility_action_handler.h",
   "+pdf/pdf_features.h",
   "+pdf/pdf_view_web_plugin.h",
   "+ppapi",
diff --git a/components/pdf/renderer/pdf_accessibility_action_handler.h b/components/pdf/renderer/pdf_accessibility_action_handler.h
deleted file mode 100644
index e20f8c8b..0000000
--- a/components/pdf/renderer/pdf_accessibility_action_handler.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_PDF_RENDERER_PDF_ACCESSIBILITY_ACTION_HANDLER_H_
-#define COMPONENTS_PDF_RENDERER_PDF_ACCESSIBILITY_ACTION_HANDLER_H_
-
-namespace chrome_pdf {
-struct AccessibilityActionData;
-}  // namespace chrome_pdf
-
-namespace pdf {
-
-class PdfAccessibilityActionHandler {
- public:
-  virtual ~PdfAccessibilityActionHandler() = default;
-
-  virtual void HandleAccessibilityAction(
-      const chrome_pdf::AccessibilityActionData& action_data) = 0;
-};
-
-}  // namespace pdf
-
-#endif  // COMPONENTS_PDF_RENDERER_PDF_ACCESSIBILITY_ACTION_HANDLER_H_
diff --git a/components/pdf/renderer/pdf_accessibility_tree.cc b/components/pdf/renderer/pdf_accessibility_tree.cc
index e9e485b5..5e831c6 100644
--- a/components/pdf/renderer/pdf_accessibility_tree.cc
+++ b/components/pdf/renderer/pdf_accessibility_tree.cc
@@ -11,7 +11,6 @@
 #include "base/memory/ptr_util.h"
 #include "base/notreached.h"
 #include "base/strings/utf_string_conversion_utils.h"
-#include "components/pdf/renderer/pdf_accessibility_action_handler.h"
 #include "components/pdf/renderer/pdf_ax_action_target.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/renderer/render_accessibility.h"
@@ -19,6 +18,7 @@
 #include "content/public/renderer/render_thread.h"
 #include "content/public/renderer/render_view.h"
 #include "pdf/accessibility_structs.h"
+#include "pdf/pdf_accessibility_action_handler.h"
 #include "pdf/pdf_features.h"
 #include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "ui/accessibility/ax_enums.mojom.h"
@@ -1131,7 +1131,7 @@
 
 PdfAccessibilityTree::PdfAccessibilityTree(
     content::RenderFrame* render_frame,
-    PdfAccessibilityActionHandler* action_handler)
+    chrome_pdf::PdfAccessibilityActionHandler* action_handler)
     : content::RenderFrameObserver(render_frame),
       action_handler_(action_handler) {
   DCHECK(action_handler_);
diff --git a/components/pdf/renderer/pdf_accessibility_tree.h b/components/pdf/renderer/pdf_accessibility_tree.h
index 76e5a34..e14a933 100644
--- a/components/pdf/renderer/pdf_accessibility_tree.h
+++ b/components/pdf/renderer/pdf_accessibility_tree.h
@@ -19,6 +19,7 @@
 #include "ui/gfx/geometry/vector2d_f.h"
 
 namespace chrome_pdf {
+class PdfAccessibilityActionHandler;
 struct AccessibilityActionData;
 struct AccessibilityCharInfo;
 struct AccessibilityDocInfo;
@@ -40,13 +41,12 @@
 
 namespace pdf {
 
-class PdfAccessibilityActionHandler;
-
 class PdfAccessibilityTree : public content::PluginAXTreeSource,
                              public content::RenderFrameObserver {
  public:
-  PdfAccessibilityTree(content::RenderFrame* render_frame,
-                       PdfAccessibilityActionHandler* action_handler);
+  PdfAccessibilityTree(
+      content::RenderFrame* render_frame,
+      chrome_pdf::PdfAccessibilityActionHandler* action_handler);
   ~PdfAccessibilityTree() override;
 
   static bool IsDataFromPluginValid(
@@ -146,7 +146,7 @@
   ui::AXTree tree_;
 
   // Unowned. Must outlive `this`.
-  PdfAccessibilityActionHandler* const action_handler_;
+  chrome_pdf::PdfAccessibilityActionHandler* const action_handler_;
 
   // `zoom_` signifies the zoom level set in for the browser content.
   // `scale_` signifies the scale level set by user. Scale is applied
diff --git a/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc b/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc
index 88658f4..0670279 100644
--- a/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc
+++ b/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc
@@ -5,7 +5,6 @@
 #include "base/path_service.h"
 #include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
-#include "components/pdf/renderer/pdf_accessibility_action_handler.h"
 #include "components/pdf/renderer/pdf_accessibility_tree.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/common/content_switches.h"
@@ -14,6 +13,7 @@
 #include "content/public/renderer/render_view.h"
 #include "content/public/test/render_view_test.h"
 #include "pdf/accessibility_structs.h"
+#include "pdf/pdf_accessibility_action_handler.h"
 #include "pdf/pdf_features.h"
 #include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/public/web/web_local_frame.h"
@@ -82,12 +82,13 @@
 
 // This class overrides PdfAccessibilityActionHandler to record received
 // action data when tests make an accessibility action call.
-class TestPdfAccessibilityActionHandler : public PdfAccessibilityActionHandler {
+class TestPdfAccessibilityActionHandler
+    : public chrome_pdf::PdfAccessibilityActionHandler {
  public:
   TestPdfAccessibilityActionHandler() = default;
   ~TestPdfAccessibilityActionHandler() override = default;
 
-  // PdfAccessibilityActionHandler:
+  // chrome_pdf::PdfAccessibilityActionHandler:
   void HandleAccessibilityAction(
       const chrome_pdf::AccessibilityActionData& action_data) override {
     received_action_data_ = action_data;
diff --git a/components/pdf/renderer/pepper_pdf_host.h b/components/pdf/renderer/pepper_pdf_host.h
index 853f42d..706ee256 100644
--- a/components/pdf/renderer/pepper_pdf_host.h
+++ b/components/pdf/renderer/pepper_pdf_host.h
@@ -13,12 +13,12 @@
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "components/pdf/renderer/pdf_accessibility_action_handler.h"
 #include "ipc/ipc_platform_file.h"
 #include "mojo/public/cpp/bindings/associated_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "pdf/buildflags.h"
 #include "pdf/mojom/pdf.mojom.h"
+#include "pdf/pdf_accessibility_action_handler.h"
 #include "ppapi/c/ppb_image_data.h"
 #include "ppapi/c/private/ppb_pdf.h"
 #include "ppapi/host/resource_host.h"
@@ -50,7 +50,7 @@
 
 class PepperPDFHost : public ppapi::host::ResourceHost,
                       public mojom::PdfListener,
-                      public PdfAccessibilityActionHandler {
+                      public chrome_pdf::PdfAccessibilityActionHandler {
  public:
   class PrintClient {
    public:
@@ -91,7 +91,7 @@
   void SetSelectionBounds(const gfx::PointF& base,
                           const gfx::PointF& extent) override;
 
-  // PdfAccessibilityActionHandler:
+  // chrome_pdf::PdfAccessibilityActionHandler:
   void HandleAccessibilityAction(
       const chrome_pdf::AccessibilityActionData& action_data) override;
 
diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc
index 86b661f..187ca4d8 100644
--- a/components/permissions/contexts/geolocation_permission_context_android.cc
+++ b/components/permissions/contexts/geolocation_permission_context_android.cc
@@ -113,10 +113,13 @@
   GURL embedding_origin =
       PermissionUtil::GetLastCommittedOriginAsURL(web_contents);
 
+  content::RenderFrameHost* render_frame_host =
+      content::RenderFrameHost::FromID(id.render_process_id(),
+                                       id.render_frame_id());
+  DCHECK(render_frame_host);
   ContentSetting content_setting =
       GeolocationPermissionContext::GetPermissionStatus(
-          nullptr /* render_frame_host */, requesting_frame_origin,
-          embedding_origin)
+          render_frame_host, requesting_frame_origin, embedding_origin)
           .content_setting;
   if (content_setting == CONTENT_SETTING_ALLOW &&
       ShouldRepromptUserForPermissions(web_contents,
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index 419112a9..57b0438 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -720,6 +720,7 @@
         'DeviceLoginScreenShowOptionsInSystemTrayMenu',
         'DeviceLoginScreenAccessibilityShortcutsEnabled',
         'FloatingAccessibilityMenuEnabled',
+        'EnhancedNetworkVoicesInSelectToSpeakAllowed',
       ],
     },
     {
@@ -26932,6 +26933,38 @@
       When enabled, this will send metadata for installed Web Apps to Google to generate and install a shim Android app.
       Setting the policy to False disables this functionality.'''
     },
+    {
+      'name': 'EnhancedNetworkVoicesInSelectToSpeakAllowed',
+      'owners': ['file://ui/accessibility/OWNERS'],
+      'type': 'main',
+      'schema': { 'type': 'boolean' },
+      'supported_on': ['chrome_os:94-'],
+      'features': {
+        'can_be_recommended': True,
+        'dynamic_refresh': True,
+        'per_profile': True,
+      },
+      'items': [
+        {
+          'value': True,
+          'caption': 'Allow enhanced network text-to-speech voices when using Select-to-Speak',
+        },
+        {
+          'value': False,
+          'caption': 'Disallow enhanced network text-to-speech voices when using Select-to-Speak',
+        },
+      ],
+      'default': True,
+      'example_value': True,
+      'id': 888,
+      'caption': '''Allow the enhanced network text-to-speech voices in Select-to-speak''',
+      'tags': [],
+      'desc': '''Allow the enhanced network text-to-speech voices in Select-to-speak accessibility feature. These voices send text to Google's servers to synthesize natural-sounding speech.
+
+          If this policy is set to false, the enhanced network text-to-speech voices feature in Select-to-speak will always be disabled.
+
+          If this policy is set to true or unset, the enhanced network text-to-speech voices feature in Select-to-speak can be enabled or disabled by the user.''',
+    },
   ],
   'messages': {
     # Messages that are not associated to any policies.
@@ -27885,6 +27918,6 @@
   'placeholders': [],
   'deleted_policy_ids': [114, 115, 204, 205, 206, 412, 476, 544, 546, 562, 569, 578, 583, 585, 586, 587, 588, 589, 590, 591, 600, 668, 669],
   'deleted_atomic_policy_group_ids': [19],
-  'highest_id_currently_used': 887,
+  'highest_id_currently_used': 888,
   'highest_atomic_group_id_currently_used': 41
 }
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index ac54235..6353e44 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -93,6 +93,7 @@
 <translation id="1096105751829466145">Standaardzoekprovider</translation>
 <translation id="1099282607296956954">Elke site isoleren</translation>
 <translation id="1105572260329131950">Standaardiconen gebruiken voor beveiligde verbindingen</translation>
+<translation id="1110426799149444997">Regio doorzoeken uitzetten voor <ph name="GOOGLE_LENS_PRODUCT_NAME" />.</translation>
 <translation id="1117535567637097036">De protocolhandlers die via dit beleid zijn ingesteld, worden niet gebruikt bij de verwerking van Android-intenties.</translation>
 <translation id="1118093128235245168">Toestaan dat sites de gebruiker vragen om toegang te verlenen tot een aangesloten USB-apparaat</translation>
 <translation id="111910763555783249">Instellingen voor meldingen</translation>
@@ -352,6 +353,7 @@
       Als je het beleid niet instelt, probeert <ph name="PRODUCT_NAME" /> te detecteren of er een server op het intranet is. Alleen dan reageert het product op IWA-verzoeken. Als een server wordt gedetecteerd als internet, worden IWA-verzoeken ervan genegeerd door <ph name="PRODUCT_NAME" />.
 
       Opmerking: Gebruik bij meerdere servernamen een komma als scheidingsteken. Jokertekens (<ph name="WILDCARD_VALUE" />) zijn toegestaan.</translation>
+<translation id="1488724823347505879">Delen van Android-apps naar web-apps aanzetten</translation>
 <translation id="1495817006535797003">Als je dit beleid toepast, wordt elk van de benoemde herkomsten (origins) in een door komma's gescheiden lijst uitgevoerd in een eigen proces. Hiermee worden ook herkomsten geïsoleerd die worden benoemd door subdomeinen. Als je bijvoorbeeld https://example.com/ opgeeft, wordt ook https://foo.example.com/ geïsoleerd als onderdeel van de site https://example.com/.  Android isoleert bepaalde gevoelige sites standaard vanaf versie 77 van <ph name="PRODUCT_NAME" />. Dit beleid breidt die modus uit om specifieke extra herkomsten (origins) te isoleren.
 
       Als je het beleid niet toepast, worden alle vormen van site-isolatie uitgezet, waaronder isolatie van gevoelige sites en praktijktests van IsolateOriginsAndroid, SitePerProcessAndroid en andere site-isolatiemodussen. Gebruikers kunnen IsolateOrigins nog altijd handmatig aanzetten via de opdrachtregelmarkering.
@@ -727,6 +729,7 @@
       Vóór de uitrol heeft dit bedrijfsbeleid geen effect. Als dit bedrijfsbeleid na de uitrol is toegepast, wordt het standaardbeleid van Chrome voor verwijzende URL's ingesteld op de vorige waarde no-referrer-when-downgrade.
 
       Dit bedrijfsbeleid is standaard niet toegepast.</translation>
+<translation id="1960416154405676350">Regio doorzoeken aanzetten voor <ph name="GOOGLE_LENS_PRODUCT_NAME" />.</translation>
 <translation id="1962273523772270623">Verzameling van WebRTC-gebeurtenislogboeken van Google-services toestaan</translation>
 <translation id="1962864958436828230">Minimale groottelimiet instellen voor klembordbeperking ter voorkoming van datalekken</translation>
 <translation id="1964634611280150550">Incognitomodus staat uit</translation>
@@ -1511,6 +1514,7 @@
 <translation id="288448261660192095">Als je dit beleid toepast, worden de fysieke invoer- en uitvoerapparaten van hosts voor externe toegang uitgezet tijdens een externe verbinding.
 
       Als je het beleid niet toepast of niet instelt, kunnen zowel lokale als externe gebruikers met de host communiceren terwijl deze wordt gedeeld.</translation>
+<translation id="2884765974461416016">Delen van Android-apps naar web-apps uitzetten.</translation>
 <translation id="2886215882246310669">Bepaalt of <ph name="PRODUCT_OS_NAME" /> toestaat dat er nieuwe Family Link-gebruikersaccounts worden toegevoegd aan het apparaat.
       Dit beleid is alleen nuttig in combinatie met <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. Met dit beleid worden ook andere Family Link-accounts toegestaan dan de accounts die zijn gedefinieerd in de toelatingslijst.
       Dit beleid heeft geen effect op andere beleidsregels voor inloggen Het beleid heeft met name geen effect wanneer:
@@ -3694,6 +3698,7 @@
       Als je het beleid instelt, kunnen gebruikers dit niet wijzigen in <ph name="PRODUCT_NAME" />. Als je het beleid niet instelt, kunnen gebruikers kiezen of ze pdf-bestanden extern willen openen.</translation>
 <translation id="570062449808736508">Wanneer dit beleid is ingesteld op een niet-lege tekenreeks, leest de WebView de URL-beperkingen van de contentprovider met de opgegeven autoriteitsnaam.</translation>
 <translation id="5708969689202733975">Toegestane modi voor snel ontgrendelen configureren</translation>
+<translation id="5714563837055244378">Delen van Android-apps naar web-apps aanzetten.</translation>
 <translation id="5715617256528927547">Als je dit beleid instelt, geef je aan hoeveel uur het Group Policy Object (GPO) in het cachegeheugen wordt bewaard. Dit is de maximale periode dat GPO's kunnen worden gebruikt tot ze opnieuw worden gedownload. Het systeem gebruikt de in het cachegeheugen opgeslagen GPO's opnieuw in plaats van die opnieuw te moeten downloaden bij het ophalen van elk beleid, zolang de versie van de GPO's niet is gewijzigd.
 
       Als je het beleid instelt op 0, wordt opslaan van GPO's in het cachegeheugen uitgezet. Hierdoor wordt de server zwaarder belast, omdat de GPO's opnieuw worden gedownload bij het ophalen van elk beleid, ook als de GPO's ongewijzigd zijn.
@@ -4826,6 +4831,9 @@
 <translation id="710003290625031750">Uitgebreide schemabeschrijving:</translation>
 <translation id="7101550508196914704">De snelkoppeling voor apps niet tonen op de bookmarkbalk</translation>
 <translation id="7109384070286741861">CECPQ2 uitzetten</translation>
+<translation id="7122626777103192518">Als je het beleid instelt op True, wordt het delen van tekst/bestanden van Android-apps naar ondersteunde web-apps mogelijk via het ingebouwde deelsysteem van Android.
+      Als dit is aangezet, worden er voor geïnstalleerde web-apps metadata naar Google gestuurd om een Android-app te maken en te installeren.
+Als je dit beleid instelt op False, wordt de functionaliteit uitgezet.</translation>
 <translation id="7126716959063786004">Beëindiging van processen in Taakbeheer aanzetten</translation>
 <translation id="7126928806195745404">Instellingen voor JavaScript</translation>
 <translation id="7127892035367404455">Doelversie herstellen</translation>
@@ -5376,6 +5384,7 @@
 Dit beleid kan alleen worden ingesteld via de <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.</translation>
 <translation id="7816326058023670173">Geheim gedeeld tussen het apparaat van het kind en het apparaat van de ouder.</translation>
 <translation id="7818131573217430250">De standaardstatus van de modus voor hoog contrast op het inlogscherm instellen</translation>
+<translation id="7821864705813933283">Sta toe dat het menu-item voor regio doorzoeken van <ph name="GOOGLE_LENS_PRODUCT_NAME" /> wordt weergegeven in het contextmenu, als dat wordt ondersteund.</translation>
 <translation id="7823902813460802031">Als je dit beleid toepast, voorkomt <ph name="PRODUCT_OS_NAME" /> dat het apparaat in de ontwikkelaarsmodus gaat.
 
        Als je het beleid niet toepast of niet instelt, blijft de ontwikkelaarsmodus beschikbaar voor het apparaat.</translation>
@@ -5659,6 +5668,7 @@
 <translation id="8238421250255592181">Een Booleaanse markering die aangeeft of het schermtoetsenbord de optie voor automatisch aanvullen heeft.</translation>
 <translation id="8244171102276095471">RC4-coderingssuites in TLS aanzetten</translation>
 <translation id="8244525275280476362">Maximum vertraging voor ophalen na ongeldigverklaring voor beleid</translation>
+<translation id="8245574649143980200">Als je dit beleid toepast of niet instelt, kunnen gebruikers het menu-item voor regio doorzoeken van <ph name="GOOGLE_LENS_PRODUCT_NAME" /> in het contextmenu zien en gebruiken. Als je dit beleid niet toepast, kunnen gebruikers het menu-item voor regio doorzoeken van <ph name="GOOGLE_LENS_PRODUCT_NAME" /> niet zien in het contextmenu als regio doorzoeken voor <ph name="GOOGLE_LENS_PRODUCT_NAME" /> wordt ondersteund.</translation>
 <translation id="82530263956734297">Extensie-ID's die zijn vrijgesteld van de blokkeringslijst</translation>
 <translation id="8256688113167012935">Hiermee wordt de weergave van de accountnaam in <ph name="PRODUCT_OS_NAME" /> op het aanmeldscherm beheerd voor het bijbehorende lokale account van het apparaat.
 
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 1c992bc2..7ac8474 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -93,6 +93,7 @@
 <translation id="1096105751829466145">ผู้ให้บริการการค้นหาเริ่มต้น</translation>
 <translation id="1099282607296956954">เปิดใช้การแยกเว็บไซต์สำหรับทุกเว็บไซต์</translation>
 <translation id="1105572260329131950">ใช้ไอคอนเริ่มต้นสำหรับการเชื่อมต่อที่ปลอดภัย</translation>
+<translation id="1110426799149444997">ปิดใช้การค้นหาภูมิภาคของ <ph name="GOOGLE_LENS_PRODUCT_NAME" /></translation>
 <translation id="1117535567637097036">ไม่มีการใช้เครื่องจัดการโปรโตคอลที่ตั้งค่าผ่านนโยบายนี้ระหว่างการจัดการ Intent ของ Android</translation>
 <translation id="1118093128235245168">อนุญาตให้เว็บไซต์ขอสิทธิ์จากผู้ใช้เพื่อเข้าถึงอุปกรณ์ USB ที่เชื่อมต่ออยู่</translation>
 <translation id="111910763555783249">การตั้งค่าการแจ้งเตือน</translation>
@@ -352,6 +353,7 @@
       การไม่ตั้งค่านโยบายหมายความว่า <ph name="PRODUCT_NAME" /> จะพยายามตรวจหาว่าเซิร์ฟเวอร์อยู่บนอินทราเน็ตไหม หากใช่ก็จะตอบรับคำขอ IWA หากมีการตรวจพบว่าเซิร์ฟเวอร์เป็นอินเทอร์เน็ต <ph name="PRODUCT_NAME" /> จะไม่สนใจคำขอ IWA จากเซิร์ฟเวอร์
 
       หมายเหตุ: คั่นชื่อเซิร์ฟเวอร์หลายรายการด้วยเครื่องหมายจุลภาค ใช้ไวลด์การ์ด (<ph name="WILDCARD_VALUE" />) ได้</translation>
+<translation id="1488724823347505879">เปิดใช้การแชร์จากแอป Android ไปยังเว็บแอป</translation>
 <translation id="1495817006535797003">การตั้งค่านโยบายหมายความว่าต้นทางแต่ละแห่งที่มีชื่อในรายการที่คั่นด้วยจุลภาคจะทำงานในกระบวนการของตัวเอง และจะแยกต้นทางที่ตั้งชื่อตามโดเมนย่อย เช่น การระบุ https://example.com/ จะเป็นการแยก https://foo.example.com/ เนื่องจากเป็นส่วนหนึ่งของเว็บไซต์ https://example.com/  โปรดทราบว่า Android จะแยกเว็บไซต์ที่มีความละเอียดอ่อนบางเว็บไซต์โดยค่าเริ่มต้นใน <ph name="PRODUCT_NAME" /> เวอร์ชัน 77 เป็นต้นไป และนโยบายนี้จะขยายการทำงานของโหมดดังกล่าวให้แยกต้นทางบางรายการเพิ่มเติม
 
       การตั้งค่านโยบายเป็น "ปิดใช้" จะปิดการแยกเว็บไซต์ทุกรูปแบบ เช่น การแยกเว็บไซต์ที่มีความละเอียดอ่อน รวมถึงการทดลองใช้งานจริงของ IsolateOriginsAndroid และ SitePerProcessAndroid ตลอดจนโหมดการแยกเว็บไซต์อื่นๆ ผู้ใช้ยังคงเปิด IsolateOrigins ด้วยตนเองได้ผ่านการติดธงบรรทัดคำสั่ง
@@ -726,6 +728,7 @@
       ทั้งนี้ นโยบายระดับองค์กรนี้จะไม่มีผลก่อนการเปิดตัวดังกล่าว หลังจากการเปิดตัว เมื่อเปิดใช้นโยบายระดับองค์กรนี้ นโยบาย URL ที่มาตามค่าเริ่มต้นของ Chrome จะตั้งค่าเป็น "ไม่มี URL ที่มาเมื่อดาวน์เกรด" ซึ่งเป็นค่าของรุ่นก่อนหน้า
 
       นโยบายระดับองค์กรนี้จะปิดใช้โดยค่าเริ่มต้น</translation>
+<translation id="1960416154405676350">เปิดใช้การค้นหาภูมิภาคของ <ph name="GOOGLE_LENS_PRODUCT_NAME" /></translation>
 <translation id="1962273523772270623">อนุญาตให้รวบรวมบันทึกเหตุการณ์ WebRTC จากบริการของ Google</translation>
 <translation id="1962864958436828230">ตั้งขีดจำกัดข้อมูลขนาดเล็กสำหรับข้อจำกัดของคลิปบอร์ดเพื่อป้องกันข้อมูลรั่วไหล</translation>
 <translation id="1964634611280150550">ปิดใช้งานโหมดไม่ระบุตัวตน</translation>
@@ -1512,6 +1515,7 @@
 <translation id="288448261660192095">การตั้งค่านโยบายเป็น "เปิดใช้" จะปิดอุปกรณ์อินพุตและเอาต์พุตของโฮสต์การเข้าถึงระยะไกลระหว่างการเชื่อมต่อระยะไกล
 
       การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ตั้งค่าจะทำให้ทั้งผู้ใช้เครือข่ายภายในและผู้ใช้ระยะไกลโต้ตอบกับโฮสต์ระหว่างที่แชร์ได้</translation>
+<translation id="2884765974461416016">ปิดใช้การแชร์จาก Android ไปยังเว็บแอป</translation>
 <translation id="2886215882246310669">ควบคุมว่า <ph name="PRODUCT_OS_NAME" /> จะอนุญาตให้เพิ่มบัญชีผู้ใช้ Family Link บัญชีใหม่ลงในอุปกรณ์หรือไม่
       นโยบายนี้จะมีประโยชน์เมื่อใช้ร่วมกับ <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> ซึ่งจะอนุญาตให้มีการเพิ่มบัญชี Family Link นอกเหนือจากบัญชีที่ระบุไว้ในรายการที่อนุญาต
       นโยบายนี้ไม่มีผลต่อลักษณะการทำงานของนโยบายลงชื่อเข้าใช้อื่นๆ กล่าวโดยเจาะจงคือจะไม่มีผลในกรณีต่อไปนี้
@@ -3685,6 +3689,7 @@
       หากคุณตั้งค่านโยบายไว้ ผู้ใช้จะเปลี่ยนการตั้งค่าดังกล่าวใน <ph name="PRODUCT_NAME" /> ไม่ได้ หากไม่ได้ตั้งค่า ผู้ใช้เลือกได้ว่าจะเปิด PDF ภายนอกหรือไม่</translation>
 <translation id="570062449808736508">หากมีการตั้งค่านโยบายนี้เป็นสตริงที่ไม่ว่างเปล่า WebView จะอ่านข้อจำกัด URL จากผู้ให้บริการเนื้อหาที่มีชื่อผู้ออกใบรับรองที่ระบุ</translation>
 <translation id="5708969689202733975">กำหนดค่าโหมดปลดล็อกด่วนที่ได้รับอนุญาต</translation>
+<translation id="5714563837055244378">เปิดใช้การแชร์จาก Android ไปยังเว็บแอป</translation>
 <translation id="5715617256528927547">การตั้งค่านโยบายจะระบุอายุการใช้งาน (เป็นชั่วโมง) ของแคช Group Policy Object (GPO) ระบบใช้ GPO ที่มีระยะเวลาสูงสุดซ้ำได้ก่อนที่จะมีการดาวน์โหลดซ้ำ ระบบจะใช้ GPO ที่แคชไว้ซ้ำ (ตราบใดที่ยังเป็นเวอร์ชันเดิม) แทนการดาวน์โหลด GPO ซ้ำในการเรียกนโยบายทุกครั้ง
 
       การตั้งค่านโยบายเป็น 0 จะปิดการแคช GPO ซึ่งทำให้เซิร์ฟเวอร์ทำงานหนักขึ้น เนื่องจากระบบต้องดาวน์โหลด GPO ซ้ำทุกครั้งที่เรียกนโยบายแม้ว่า GPO จะเป็นรายการเดิมก็ตาม
@@ -4824,6 +4829,9 @@
 <translation id="710003290625031750">คำอธิบายสคีมาแบบขยาย</translation>
 <translation id="7101550508196914704">ไม่แสดงทางลัดของแอปในแถบบุ๊กมาร์ก</translation>
 <translation id="7109384070286741861">ปิดใช้ CECPQ2</translation>
+<translation id="7122626777103192518">การตั้งค่านโยบายเป็น "จริง" จะทำให้แชร์ข้อความ/ไฟล์จากแอป Android ไปยังเว็บแอปที่รองรับได้โดยใช้ระบบการแชร์ในตัวของ Android
+      เมื่อเปิดใช้ การดำเนินการนี้จะส่งข้อมูลเมตาของเว็บแอปที่ติดตั้งไปยัง Google เพื่อสร้างและติดตั้งแอป Android แบบมี Shim
+      การตั้งค่านโยบายเป็น "เท็จ" จะปิดใช้ฟังก์ชันการทำงานนี้</translation>
 <translation id="7126716959063786004">เปิดใช้การหยุดกระบวนการในตัวจัดการงาน</translation>
 <translation id="7126928806195745404">การตั้งค่า JavaScript</translation>
 <translation id="7127892035367404455">ย้อนกลับไปเวอร์ชันเป้าหมาย</translation>
@@ -5374,6 +5382,7 @@
       นโยบายนี้ตั้งค่าได้จาก<ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" /> เท่านั้น</translation>
 <translation id="7816326058023670173">ข้อมูลลับที่แชร์ระหว่างอุปกรณ์ของบุตรหลานและผู้ปกครอง</translation>
 <translation id="7818131573217430250">ตั้งค่าสถานะเริ่มต้นของโหมดคอนทราสต์สูงบนหน้าจอการเข้าสู่ระบบ</translation>
+<translation id="7821864705813933283">อนุญาตให้รายการในเมนูการค้นหาภูมิภาคของ <ph name="GOOGLE_LENS_PRODUCT_NAME" /> แสดงในเมนูตามบริบท (หากรองรับ)</translation>
 <translation id="7823902813460802031">การตั้งค่านโยบายเป็น "เปิดใช้" หมายความว่า <ph name="PRODUCT_OS_NAME" /> จะหยุดไม่ให้อุปกรณ์เข้าสู่โหมดนักพัฒนาซอฟต์แวร์
 
        การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้อุปกรณ์ใช้โหมดนักพัฒนาซอฟต์แวร์ได้เสมอ</translation>
@@ -5652,6 +5661,7 @@
 <translation id="8238421250255592181">ธงบูลีนที่ระบุว่าแป้นพิมพ์บนหน้าจอจะมีฟีเจอร์การเติมคำอัตโนมัติหรือไม่</translation>
 <translation id="8244171102276095471">เปิดใช้ชุดการเข้ารหัส RC4 ใน TLS</translation>
 <translation id="8244525275280476362">การหน่วงเวลาสูงสุดในการดึงข้อมูลภายหลังการลบล้างนโยบาย</translation>
+<translation id="8245574649143980200">การไม่ตั้งค่านโยบายหรือตั้งค่าเป็น "เปิดใช้" จะอนุญาตให้ผู้ใช้ดูและใช้รายการในเมนูการค้นหาภูมิภาคของ <ph name="GOOGLE_LENS_PRODUCT_NAME" /> ในเมนูตามบริบท การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้ผู้ใช้ไม่เห็นรายการในเมนูการค้นหาภูมิภาคของ <ph name="GOOGLE_LENS_PRODUCT_NAME" /> ในเมนูตามบริบทกรณีที่รองรับการค้นหาภูมิภาคของ <ph name="GOOGLE_LENS_PRODUCT_NAME" /></translation>
 <translation id="82530263956734297">รหัสส่วนขยายที่ได้รับการยกเว้นจากรายการที่บล็อก</translation>
 <translation id="8256688113167012935">ควบคุมชื่อบัญชี <ph name="PRODUCT_OS_NAME" /> ที่แสดงในหน้าลงชื่อเข้าใช้สำหรับบัญชีภายในอุปกรณ์ที่เกี่ยวข้องกัน
 
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index a7c3082..401c2b4 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -1702,6 +1702,9 @@
 <translation id="3030000825273123558">启用指标报告</translation>
 <translation id="3031796805169553856">允许跨源发送 WebAssembly 模块</translation>
 <translation id="3032322294267258117">此政策旨在控制与通过 GAIA(不使用 SAML)验证身份的用户相关的设置。</translation>
+<translation id="3034855514833090741">如果此政策已启用,在初始设置期间系统会显示 Google 助理 Voice Match 流程。如果此政策已停用,在初始设置期间系统不会显示 Google 助理 Voice Match 流程。
+
+      不设置此政策等同于已启用此政策。</translation>
 <translation id="3038323923255997294">在<ph name="PRODUCT_NAME" />关闭后继续运行后台应用</translation>
 <translation id="3041707370546071653">是否保存 Kerberos 密码。如果未设置或设为 false,系统将不保存密码。如果未指定密码,此属性将被忽略。</translation>
 <translation id="3041887182529293512">如果此政策设为 True 或未设置,系统将会在“新标签页”页面上显示根据用户的浏览记录、兴趣或位置信息自动生成的内容建议。
@@ -2443,6 +2446,7 @@
       若要详细了解安全浏览功能,请访问 https://developers.google.com/safe-browsing。
       请注意,停用此政策可能会妨碍 <ph name="PRODUCT_NAME" /> 开发者及时提供重要的安全性修复程序,因此我们不建议您这样做。</translation>
 <translation id="3997519162482760140">可通过 SAML 登录页面访问视频捕获设备的网址</translation>
+<translation id="4004523942550416237">在初始设置期间不显示 Google 助理 Voice Match 流程</translation>
 <translation id="4007646377576030214"> 请注意,此政策已在 M87 中弃用,并已从 M89 中移除。请改用 <ph name="MANAGED_GUEST_SESSION_PRIVACY_WARNINGS_POLICY_NAME" /> 来配置受管理访客会话的隐私权警告。
 
       此政策旨在控制 <ph name="PRODUCT_OS_NAME" />上受管理访客会话的自动启动通知。
@@ -4465,6 +4469,7 @@
 <translation id="6782977971207381602">如果此政策已启用,系统会允许设备在 <ph name="PRODUCT_OS_NAME" />下运行虚拟机。<ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> 和 <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> 必须均已启用,才能使用 <ph name="PRODUCT_CROSTINI_NAME" />。如果此政策已停用,意味着设备无法运行虚拟机。如果将此政策的状态改为已停用,此政策将开始应用于新启动的虚拟机,而非应用于已在运行的虚拟机。
 
       如果某部受管理的设备未设置此政策,该设备便无法运行虚拟机。不受管理的设备可以运行虚拟机。</translation>
+<translation id="6786666051053129545">启用 Google 助理 Voice Match 流程</translation>
 <translation id="6786747875388722282">扩展程序</translation>
 <translation id="6786967369487349613">设置漫游个人资料目录</translation>
 <translation id="6789422336869764846">如果此政策已启用或未设置,已注册的设备将会报告设备的开发者模式切换按钮在机器启动时的状态。
@@ -4782,6 +4787,7 @@
       如果您将此政策设为强制性要求,用户便无法更改或覆盖它。
 
       如果未设置此政策,工具栏将默认放置在屏幕底部,但用户可以更改工具栏的位置。</translation>
+<translation id="7039815268521168329">在初始设置期间显示 Google 助理 Voice Match 流程</translation>
 <translation id="7040229947030068419">值示例:</translation>
 <translation id="7041170641363384736">允许设置自定义时间表以指定应于何时重新启动设备。此政策目前仅适用于已在自助服务终端会话中启用“自动启动”应用的设备。如果此政策设为 True,设备便会依照所设时间表重新启动。若要取消任何其他已排定的重新启动,您必须撤消在此政策中指定的设置。</translation>
 <translation id="7044883996351280650">控制 Android 备份和恢复服务</translation>
diff --git a/components/policy/tools/syntax_check_policy_template_json.py b/components/policy/tools/syntax_check_policy_template_json.py
index a2ab1a9..302d4c4 100755
--- a/components/policy/tools/syntax_check_policy_template_json.py
+++ b/components/policy/tools/syntax_check_policy_template_json.py
@@ -1017,7 +1017,7 @@
           container_name='features')
 
       # 'internal_only' feature must be an optional boolean flag.
-      platform_only = self._CheckContains(features,
+      internal_only = self._CheckContains(features,
                                           'internal_only',
                                           bool,
                                           optional=True,
diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp
index 50e74ce..cb84b9c 100644
--- a/components/policy_strings.grdp
+++ b/components/policy_strings.grdp
@@ -648,12 +648,18 @@
   <message name="IDS_POLICY_DLP_PRINTING_BLOCKED_MESSAGE" desc="The message for notification informing the user that printing is blocked.">
     Printing this content is blocked by administrator policy
   </message>
-  <message name="IDS_POLICY_DLP_PRINTING_WARNING_TITLE" desc="The title for notification informing the user that printing is not recommended.">
+  <message name="IDS_POLICY_DLP_PRINTING_WARN_TITLE" desc="The title for notification informing the user that printing is not recommended.">
     Confidential file
   </message>
-  <message name="IDS_POLICY_DLP_PRINTING_WARNING_MESSAGE" desc="The message for notification informing the user that printing is not recommended.">
+  <message name="IDS_POLICY_DLP_PRINTING_WARN_MESSAGE" desc="The message for notification informing the user that printing is not recommended.">
     This document is confidential and printing is not advised by your administrator.
   </message>
+  <message name="IDS_POLICY_DLP_PRINTING_WARN_CONTINUE_BUTTON" desc="Continue dialog button label for warning before printing.">
+    Continue
+  </message>
+  <message name="IDS_POLICY_DLP_PRINTING_WARN_CANCEL_BUTTON" desc="Cancel dialog button label for warning before printing.">
+    Cancel
+  </message>
   <message name="IDS_POLICY_DLP_SCREEN_CAPTURE_PAUSED_TITLE" desc="The title for notification informing the user that screen capture is paused.">
     Screen capture paused
   </message>
diff --git a/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARNING_MESSAGE.png.sha1 b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARNING_MESSAGE.png.sha1
deleted file mode 100644
index 2b61e4e..0000000
--- a/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARNING_MESSAGE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2d64c1dcdd3bb00e144069fd1201ba2d13454a1c
\ No newline at end of file
diff --git a/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARNING_TITLE.png.sha1 b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARNING_TITLE.png.sha1
deleted file mode 100644
index 2b61e4e..0000000
--- a/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARNING_TITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2d64c1dcdd3bb00e144069fd1201ba2d13454a1c
\ No newline at end of file
diff --git a/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_CANCEL_BUTTON.png.sha1 b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_CANCEL_BUTTON.png.sha1
new file mode 100644
index 0000000..b9569f83
--- /dev/null
+++ b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_CANCEL_BUTTON.png.sha1
@@ -0,0 +1 @@
+2f121591484d78893080101443cdbd407254b82f
\ No newline at end of file
diff --git a/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_CONTINUE_BUTTON.png.sha1 b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_CONTINUE_BUTTON.png.sha1
new file mode 100644
index 0000000..b9569f83
--- /dev/null
+++ b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_CONTINUE_BUTTON.png.sha1
@@ -0,0 +1 @@
+2f121591484d78893080101443cdbd407254b82f
\ No newline at end of file
diff --git a/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_MESSAGE.png.sha1 b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_MESSAGE.png.sha1
new file mode 100644
index 0000000..b9569f83
--- /dev/null
+++ b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_MESSAGE.png.sha1
@@ -0,0 +1 @@
+2f121591484d78893080101443cdbd407254b82f
\ No newline at end of file
diff --git a/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_TITLE.png.sha1 b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_TITLE.png.sha1
new file mode 100644
index 0000000..b9569f83
--- /dev/null
+++ b/components/policy_strings_grdp/IDS_POLICY_DLP_PRINTING_WARN_TITLE.png.sha1
@@ -0,0 +1 @@
+2f121591484d78893080101443cdbd407254b82f
\ No newline at end of file
diff --git a/components/startup_metric_utils/browser/startup_metric_utils.cc b/components/startup_metric_utils/browser/startup_metric_utils.cc
index 7a33b36..90b23a1f 100644
--- a/components/startup_metric_utils/browser/startup_metric_utils.cc
+++ b/components/startup_metric_utils/browser/startup_metric_utils.cc
@@ -594,38 +594,6 @@
   return g_chrome_main_entry_ticks;
 }
 
-void RecordWebFooterDidFirstVisuallyNonEmptyPaint(base::TimeTicks ticks) {
-  DCHECK(!g_application_start_ticks.is_null());
-
-  static bool is_first_call = true;
-  if (!is_first_call || ticks.is_null())
-    return;
-  is_first_call = false;
-  if (!ShouldLogStartupHistogram())
-    return;
-
-  UmaHistogramWithTraceAndTemperature(
-      &base::UmaHistogramMediumTimes,
-      "Startup.WebFooterExperiment.DidFirstVisuallyNonEmptyPaint",
-      g_application_start_ticks, ticks);
-}
-
-void RecordWebFooterCreation(base::TimeTicks ticks) {
-  DCHECK(!g_application_start_ticks.is_null());
-
-  static bool is_first_call = true;
-  if (!is_first_call || ticks.is_null())
-    return;
-  is_first_call = false;
-  if (!ShouldLogStartupHistogram())
-    return;
-
-  UmaHistogramWithTraceAndTemperature(
-      &base::UmaHistogramMediumTimes,
-      "Startup.WebFooterExperiment.WebFooterCreation",
-      g_application_start_ticks, ticks);
-}
-
 void RecordExternalStartupMetric(const std::string& histogram_name,
                                  base::TimeTicks completion_ticks,
                                  bool set_non_browser_ui_displayed) {
diff --git a/components/startup_metric_utils/browser/startup_metric_utils.h b/components/startup_metric_utils/browser/startup_metric_utils.h
index be29c3d4..1a17451 100644
--- a/components/startup_metric_utils/browser/startup_metric_utils.h
+++ b/components/startup_metric_utils/browser/startup_metric_utils.h
@@ -86,12 +86,6 @@
 // recorded yet. This method is expected to be called from the UI thread.
 base::TimeTicks MainEntryPointTicks();
 
-// Record metrics for the web-footer experiment. See https://crbug.com/993502.
-// These functions must be called after RecordApplicationStartTime(), because
-// they compute time deltas based on application start time.
-void RecordWebFooterDidFirstVisuallyNonEmptyPaint(base::TimeTicks ticks);
-void RecordWebFooterCreation(base::TimeTicks ticks);
-
 // Call this to record an arbitrary startup timing histogram with startup
 // temperature and a trace event. Records the time between `completion_ticks`
 // and the application start.
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index 74f88dd..e0d055d 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Kan vra om Bluetooth-toestelle in die omtrek te ontdek</translation>
 <translation id="1426410128494586442">Ja</translation>
 <translation id="1428146450423315676">Stapelaar 7</translation>
+<translation id="1428729058023778569">Jy sien hierdie waarskuwing omdat hierdie werf nie HTTPS ondersteun nie. <ph name="BEGIN_LEARN_MORE_LINK" />Kom meer te wete<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">Druk uit</translation>
 <translation id="1436185428532214179">Kan vra om lêers of vouers op jou toestel te wysig</translation>
 <translation id="1442386063175183758">Uitvoublad regs</translation>
@@ -648,6 +649,7 @@
 <translation id="3282497668470633863">Voeg naam op kaart by</translation>
 <translation id="3286372614333682499">portret</translation>
 <translation id="3287510313208355388">Laai af wanneer jy aanlyn is</translation>
+<translation id="3288238092761586174"><ph name="URL" /> sal dalk bykomende stappe moet doen om jou betaling te verifieer</translation>
 <translation id="3293642807462928945">Kom meer te wete oor <ph name="POLICY_NAME" />-beleid</translation>
 <translation id="3295444047715739395">Bekyk en bestuur jou wagwoorde in Chrome-instellings</translation>
 <translation id="3303855915957856445">Geen soekresultate gevind nie</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 2dd316d..cce9d5c 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Websitet kan anmode om tilladelse til at søge efter Bluetooth-enheder i nærheden</translation>
 <translation id="1426410128494586442">Ja</translation>
 <translation id="1428146450423315676">Stabler 7</translation>
+<translation id="1428729058023778569">Du får vist denne advarsel, fordi dette website ikke understøtter HTTPS. <ph name="BEGIN_LEARN_MORE_LINK" />Få flere oplysninger<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">Udskriv</translation>
 <translation id="1436185428532214179">Websitet kan anmode om tilladelse til at redigere filer og mapper på din enhed</translation>
 <translation id="1442386063175183758">Portfals i højre side</translation>
@@ -648,6 +649,7 @@
 <translation id="3282497668470633863">Tilføj navn på kort</translation>
 <translation id="3286372614333682499">stående</translation>
 <translation id="3287510313208355388">Download, når du er online</translation>
+<translation id="3288238092761586174"><ph name="URL" /> er muligvis nødt til at gennemføre yderligere trin for at bekræfte din betaling</translation>
 <translation id="3293642807462928945">Få flere oplysninger om politikken <ph name="POLICY_NAME" /></translation>
 <translation id="3295444047715739395">Se og administrer dine adgangskoder i Chrome-indstillingerne</translation>
 <translation id="3303855915957856445">Der blev ikke fundet nogen søgeresultater</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 06fc78c..a0672aa 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Engedélyt kérhet a közeli Bluetooth-eszközök felfedezésére</translation>
 <translation id="1426410128494586442">Igen</translation>
 <translation id="1428146450423315676">7. kötegelő</translation>
+<translation id="1428729058023778569">Azért látja ezt a figyelmeztetést, mert ez a webhely nem támogatja a HTTPS-t. <ph name="BEGIN_LEARN_MORE_LINK" />További információ<ph name="END_LEARN_MORE_LINK" />.</translation>
 <translation id="1430915738399379752">Nyomtatás</translation>
 <translation id="1436185428532214179">Engedélyt kérhet arra, hogy szerkeszthesse az Ön eszközén található fájlokat és mappákat</translation>
 <translation id="1442386063175183758">Jobb oldalon kihajtható</translation>
@@ -646,6 +647,7 @@
 <translation id="3282497668470633863">Adja meg a kártyán szereplő nevet</translation>
 <translation id="3286372614333682499">álló</translation>
 <translation id="3287510313208355388">Letöltés online állapotban</translation>
+<translation id="3288238092761586174">Előfordulhat, hogy a(z) <ph name="URL" /> webhelynek további lépések megtételére van szüksége az Ön fizetésének ellenőrzéséhez.</translation>
 <translation id="3293642807462928945">További információ a(z) <ph name="POLICY_NAME" /> házirendről</translation>
 <translation id="3295444047715739395">Jelszavait a Chrome-beállítások között tekintheti meg és kezelheti</translation>
 <translation id="3303855915957856445">Nincs találat</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index 8cb21232..b6a94492 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">ສາມາດຂໍຄົ້ນພົບອຸປະກອນ Bluetooth ທີ່ຢູ່ໃກ້ຄຽງ</translation>
 <translation id="1426410128494586442">ແມ່ນແລ້ວ</translation>
 <translation id="1428146450423315676">ສະແຕັກເກີ້ 7</translation>
+<translation id="1428729058023778569">ທ່ານເຫັນຄຳເຕືອນນີ້ເນື່ອງຈາກເວັບໄຊນີ້ບໍ່ຮອງຮັບ HTTPS. <ph name="BEGIN_LEARN_MORE_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">ພິມ</translation>
 <translation id="1436185428532214179">ສາມາດຂໍແກ້ໄຂໄຟລ໌ ແລະ ໂຟນເດີຢູ່ອຸປະກອນຂອງທ່ານ</translation>
 <translation id="1442386063175183758">ພັບທົບເບື້ອງຂວາ</translation>
@@ -648,6 +649,7 @@
 <translation id="3282497668470633863">ເພີ່ມຊື່ໃນບັດ</translation>
 <translation id="3286372614333682499">ແນວຕັ້ງ</translation>
 <translation id="3287510313208355388">ດາວໂຫຼດເມື່ອອອນລາຍ</translation>
+<translation id="3288238092761586174"><ph name="URL" /> ອາດຕ້ອງເຮັດຂັ້ນຕອນເພີ່ມເຕີມເພື່ອຢັ້ງຢືນການຈ່າຍເງິນຂອງທ່ານ</translation>
 <translation id="3293642807462928945">ສຶກສາເພີ່ມເຕີມກ່ຽວກັບນະໂຍບາຍ <ph name="POLICY_NAME" /></translation>
 <translation id="3295444047715739395">ເບິ່ງ ແລະ ຈັດການລະຫັດຜ່ານຂອງທ່ານໃນການຕັ້ງຄ່າ Chrome</translation>
 <translation id="3303855915957856445">ບໍ່ພົບຜົນການຊອກຫາໃດໆ</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 29f84e5..90171164 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Gali būti prašoma atrasti netoliese esančius „Bluetooth“ įrenginius</translation>
 <translation id="1426410128494586442">Taip</translation>
 <translation id="1428146450423315676">7 dėtuvė</translation>
+<translation id="1428729058023778569">Matote šį įspėjimą, nes ši svetainė nepalaiko HTTPS. <ph name="BEGIN_LEARN_MORE_LINK" />Sužinokite daugiau<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">Spausdinti</translation>
 <translation id="1436185428532214179">Gali būti prašoma redaguoti failus ir aplankus jūsų įrenginyje</translation>
 <translation id="1442386063175183758">Atvartas dešinėje</translation>
@@ -649,6 +650,7 @@
 <translation id="3282497668470633863">Ant kortelės pateikto vardo pridėjimas</translation>
 <translation id="3286372614333682499">stačia</translation>
 <translation id="3287510313208355388">Atsisiųsti prisijungus</translation>
+<translation id="3288238092761586174"><ph name="URL" /> gali reikėti imtis papildomų veiksmų, kad patvirtintų jūsų mokėjimą</translation>
 <translation id="3293642807462928945">Sužinokite daugiau apie „<ph name="POLICY_NAME" />“ politiką</translation>
 <translation id="3295444047715739395">Peržiūrėkite ir tvarkykite slaptažodžius „Chrome“ nustatymuose</translation>
 <translation id="3303855915957856445">Nerasta jokių paieškos rezultatų</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index c2a505f7..d6188d5 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Ойролцоох Bluetooth төхөөрөмжүүдийг илрүүлэхийг хүсэх боломжтой</translation>
 <translation id="1426410128494586442">Тийм</translation>
 <translation id="1428146450423315676">Гарах цаасыг зэрэгцүүлэх тавцан 7</translation>
+<translation id="1428729058023778569">Энэ сайт HTTPS-г дэмждэггүй тул та энэ сануулгыг харж байна. <ph name="BEGIN_LEARN_MORE_LINK" />Нэмэлт мэдээлэл авах<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">Хэвлэх</translation>
 <translation id="1436185428532214179">Таны төхөөрөмж дээрх файлууд эсвэл фолдеруудыг засахыг хүсэх боломжтой</translation>
 <translation id="1442386063175183758">Доод хэсгийг дотогш нь нугалж эвхэх баруун хаалган нугалаа</translation>
@@ -649,6 +650,7 @@
 <translation id="3282497668470633863">Картанд нэр нэмэх</translation>
 <translation id="3286372614333682499">хөрөг зураг</translation>
 <translation id="3287510313208355388">Онлайн үедээ татна уу</translation>
+<translation id="3288238092761586174"><ph name="URL" /> таны төлбөрийг баталгаажуулахын тулд нэмэлт алхмыг хийх шаардлагатай байж магадгүй</translation>
 <translation id="3293642807462928945"><ph name="POLICY_NAME" /> удирдамжийн талаар дэлгэрэнгүй үзэх</translation>
 <translation id="3295444047715739395">Chrome-н тохиргоо дээрээс нууц үгсээ харах, удирдах</translation>
 <translation id="3303855915957856445">Хайлтын илэрц олдсонгүй</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 8b6d6918..63514e0 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Kan vragen of deze site bluetooth-apparaten in de buurt mag vinden</translation>
 <translation id="1426410128494586442">Ja</translation>
 <translation id="1428146450423315676">Stapeleenheid 7</translation>
+<translation id="1428729058023778569">Je ziet deze waarschuwing omdat deze site geen HTTPS ondersteunt. <ph name="BEGIN_LEARN_MORE_LINK" />Meer informatie<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">Afdrukken</translation>
 <translation id="1436185428532214179">Kan vragen of deze site bestanden en mappen op je apparaat mag bewerken</translation>
 <translation id="1442386063175183758">Gatefold rechts</translation>
@@ -642,6 +643,7 @@
 <translation id="3282497668470633863">Naam op pas toevoegen</translation>
 <translation id="3286372614333682499">staand</translation>
 <translation id="3287510313208355388">Downloaden wanneer online</translation>
+<translation id="3288238092761586174"><ph name="URL" /> moet mogelijk aanvullende stappen nemen om je betaling te verifiëren</translation>
 <translation id="3293642807462928945">Meer informatie over het beleid <ph name="POLICY_NAME" /></translation>
 <translation id="3295444047715739395">Je wachtwoorden bekijken en beheren in de Chrome-instellingen</translation>
 <translation id="3303855915957856445">Geen zoekresultaten gevonden</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 7a1d4f4a..9785daf 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Może prosić o zgodę na wykrywanie urządzeń Bluetooth w pobliżu</translation>
 <translation id="1426410128494586442">Tak</translation>
 <translation id="1428146450423315676">Układarka 7</translation>
+<translation id="1428729058023778569">Widzisz to ostrzeżenie, ponieważ ta witryna nie obsługuje HTTPS. <ph name="BEGIN_LEARN_MORE_LINK" />Więcej informacji<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">Drukuj</translation>
 <translation id="1436185428532214179">Może prosić o zgodę na edytowanie plików i folderów na urządzeniu</translation>
 <translation id="1442386063175183758">Składanie od dołu do środka</translation>
@@ -644,6 +645,7 @@
 <translation id="3282497668470633863">Dodaj imię i nazwisko na karcie</translation>
 <translation id="3286372614333682499">orientacja pionowa</translation>
 <translation id="3287510313208355388">Pobierz, gdy będę online</translation>
+<translation id="3288238092761586174">Weryfikacja Twojej płatności może wymagać od <ph name="URL" /> podjęcia dodatkowych działań</translation>
 <translation id="3293642807462928945">Więcej informacji o zasadzie <ph name="POLICY_NAME" /></translation>
 <translation id="3295444047715739395">Wyświetl hasła i zarządzaj nimi w ustawieniach Chrome</translation>
 <translation id="3303855915957856445">Brak wyników wyszukiwania</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 2080350..d23590d 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Poate solicita permisiunea să descopere dispozitive Bluetooth din apropiere</translation>
 <translation id="1426410128494586442">Da</translation>
 <translation id="1428146450423315676">Receptorul de hârtie 7</translation>
+<translation id="1428729058023778569">Avertismentul se afișează deoarece acest site nu acceptă HTTPS. <ph name="BEGIN_LEARN_MORE_LINK" />Află mai multe<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">Printează</translation>
 <translation id="1436185428532214179">Poate solicita permisiunea de a modifica fișiere și dosare de pe dispozitiv</translation>
 <translation id="1442386063175183758">Îndoire tip fereastră spre dreapta</translation>
@@ -648,6 +649,7 @@
 <translation id="3282497668470633863">Adaugă numele de pe card</translation>
 <translation id="3286372614333682499">portret</translation>
 <translation id="3287510313208355388">Descarcă când ești online</translation>
+<translation id="3288238092761586174">Poate fi necesar ca <ph name="URL" /> să parcurgă câțiva pași suplimentari pentru a confirma plata</translation>
 <translation id="3293642807462928945">Află mai multe despre politica <ph name="POLICY_NAME" /></translation>
 <translation id="3295444047715739395">Afișează și gestionează parolele din setările Chrome</translation>
 <translation id="3303855915957856445">Nu s-au găsit rezultate de căutare</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index b3035f3..87394beb 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">Lahko zahteva odkrivanje naprav Bluetooth v bližini.</translation>
 <translation id="1426410128494586442">Da</translation>
 <translation id="1428146450423315676">Zlagalnik 7</translation>
+<translation id="1428729058023778569">To opozorilo je prikazano, ker spletno mesto ne podpira protokola HTTPS. <ph name="BEGIN_LEARN_MORE_LINK" />Več o tem<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">Natisni</translation>
 <translation id="1436185428532214179">Lahko zahteva urejanje datotek in map v napravi.</translation>
 <translation id="1442386063175183758">Prepogibanje v obliki okna z desne</translation>
@@ -648,6 +649,7 @@
 <translation id="3282497668470633863">Dodajanje imena na kartico</translation>
 <translation id="3286372614333682499">pokončno</translation>
 <translation id="3287510313208355388">Prenesi, ko je povezava</translation>
+<translation id="3288238092761586174">Gostitelj <ph name="URL" /> bo morda moral opraviti dodatne korake za preverjanje vašega plačila.</translation>
 <translation id="3293642807462928945">Preberite več o pravilniku <ph name="POLICY_NAME" /></translation>
 <translation id="3295444047715739395">Ogled in upravljanje gesel v nastavitvah v Chromu</translation>
 <translation id="3303855915957856445">Ni rezultatov iskanja</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 0a082272..be2f93e 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -1006,8 +1006,10 @@
 <translation id="4451135742916150903">HID சாதனங்களுடன் இணைய முயலும்போது அனுமதி கேட்க வேண்டும்</translation>
 <translation id="4460315069258617173">இந்தத் தளத்திற்கான பிரிவுகளை மூடும் வரை இருப்பிட அணுகல் கிடைக்கும்</translation>
 <translation id="4464826014807964867">உங்கள் நிறுவனம் வழங்கிய தகவல்களைக் கொண்ட இணையதளங்கள்</translation>
+<translation id="4465818729556336129">இந்த ஆவணம் ரகசியமானது, இதைப் பிரிண்ட் செய்வதை நிர்வாகி பரிந்துரைக்கவில்லை.</translation>
 <translation id="4476953670630786061">இந்தப் படிவம் பாதுகாப்பானதல்ல. ’தன்னிரப்பி’ அம்சம் முடக்கப்பட்டுள்ளது.</translation>
 <translation id="4477350412780666475">அடுத்த டிராக்</translation>
+<translation id="4481394504112738036">ரகசியமான ஃபைல்</translation>
 <translation id="4482953324121162758">இந்தத் தளம் மொழிபெயர்க்கப்படாது.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="449126573531210296">ஒத்திசைக்கப்பட்ட கடவுச்சொற்களை எனது Google கணக்கின் மூலம் என்க்ரிப்ட் செய்</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index a322efda..e13706c 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -1012,8 +1012,10 @@
 <translation id="4451135742916150903">HID పరికరాలకు కనెక్ట్ చేయడానికి సైట్ అనుమతి అడగవచ్చు</translation>
 <translation id="4460315069258617173">మీరు ఈ సైట్‌కు సంబంధించి ట్యాబ్‌లను మూసివేసే వరకు అనుమతించబడదు</translation>
 <translation id="4464826014807964867">మీ సంస్థకు సంబంధించిన సమాచారం ఉన్న వెబ్‌సైట్‌లు</translation>
+<translation id="4465818729556336129">ఈ డాక్యుమెంట్ గోప్యమైనది, దీనిని ప్రింట్ చేయకుండా ఉంటే మంచిదని మీ అడ్మినిస్ట్రేటర్ సూచించారు.</translation>
 <translation id="4476953670630786061">ఈ ఫారమ్ సురక్షితమైనది కాదు. ఆటోఫిల్ ఆఫ్ చేయబడింది.</translation>
 <translation id="4477350412780666475">తర్వాతి ట్రాక్</translation>
+<translation id="4481394504112738036">గోప్యమైన ఫైల్</translation>
 <translation id="4482953324121162758">ఈ సైట్ అనువదించబడదు.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="449126573531210296">సింక్ చేయబడిన పాస్‌వర్డ్‌లను మీ Google ఖాతాతో ఎన్‌క్రిప్ట్ చేయండి</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 185a7ac..f0e370a 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -139,6 +139,7 @@
 <translation id="1422930527989633628">สามารถขอทำการค้นหาอุปกรณ์บลูทูธใกล้เคียงได้</translation>
 <translation id="1426410128494586442">ยอมรับ</translation>
 <translation id="1428146450423315676">สแต็กเกอร์ 7</translation>
+<translation id="1428729058023778569">คุณเห็นคำเตือนนี้เพราะเว็บไซต์ไม่รองรับ HTTPS <ph name="BEGIN_LEARN_MORE_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="1430915738399379752">พิมพ์</translation>
 <translation id="1436185428532214179">สามารถขอแก้ไขไฟล์และโฟลเดอร์ในอุปกรณ์ของคุณได้</translation>
 <translation id="1442386063175183758">พับทบด้านขวา</translation>
@@ -644,6 +645,7 @@
 <translation id="3282497668470633863">เพิ่มชื่อบนบัตร</translation>
 <translation id="3286372614333682499">แนวตั้ง</translation>
 <translation id="3287510313208355388">ดาวน์โหลดเมื่อออนไลน์</translation>
+<translation id="3288238092761586174"><ph name="URL" /> อาจต้องทำตามขั้นตอนเพิ่มเติมเพื่อยืนยันการชำระเงิน</translation>
 <translation id="3293642807462928945">ดูข้อมูลเพิ่มเติมเกี่ยวกับนโยบาย <ph name="POLICY_NAME" /></translation>
 <translation id="3295444047715739395">ดูและจัดการรหัสผ่านในการตั้งค่า Chrome</translation>
 <translation id="3303855915957856445">ไม่พบผลการค้นหา</translation>
diff --git a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle_unittest.cc b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle_unittest.cc
index e7d4b088..0762260 100644
--- a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle_unittest.cc
+++ b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle_unittest.cc
@@ -871,6 +871,11 @@
   const GURL url(kURL);
   ConfigureForMatchParam(url);
   SimulateStartAndExpectProceed(url);
+  navigation_simulator()->SetReferrer(blink::mojom::Referrer::New(
+      RenderViewHostTestHarness::web_contents()
+          ->GetMainFrame()
+          ->GetLastCommittedURL(),
+      network::mojom::ReferrerPolicy::kStrictOriginWhenCrossOrigin));
   SimulateCommitAndExpectProceed();
   EXPECT_EQ(mojom::ActivationLevel::kEnabled,
             *observer()->GetPageActivationForLastCommittedLoad());
diff --git a/components/translate/content/android/java/src/org/chromium/components/translate/TranslateFeatureList.java b/components/translate/content/android/java/src/org/chromium/components/translate/TranslateFeatureList.java
index adac21f..c21e8cc 100644
--- a/components/translate/content/android/java/src/org/chromium/components/translate/TranslateFeatureList.java
+++ b/components/translate/content/android/java/src/org/chromium/components/translate/TranslateFeatureList.java
@@ -18,6 +18,7 @@
     /** Alphabetical: */
     public static final String CONTENT_LANGUAGES_IN_LANGUAGE_PICKER =
             "ContentLanguagesInLanguagePicker";
+    public static final String CONTENT_LANGUAGES_DISABLE_OBSERVERS_PARAM = "disable_observers";
     public static final String DETECTED_SOURCE_LANGUAGE_OPTION = "DetectedSourceLanguageOption";
 
     // Do not instantiate this class.
@@ -38,11 +39,28 @@
     }
 
     /**
+     * Returns a field trial param as a boolean for the specified feature.
+     *
+     * @param featureName The name of the feature.
+     * @param paramName The name of the param.
+     * @param defaultValue The boolean value to use if the param is not available.
+     * @return The parameter value as a boolean. Default value if the feature does not exist or the
+     *         specified parameter does not exist or its string value is neither "true" nor "false".
+     */
+    public static boolean getFieldTrialParamByFeatureAsBoolean(
+            String featureName, String paramName, boolean defaultValue) {
+        return TranslateFeatureListJni.get().getFieldTrialParamByFeatureAsBoolean(
+                featureName, paramName, defaultValue);
+    }
+
+    /**
      * The interface implemented by the automatically generated JNI bindings class
      * TranslateFeatureListJni.
      */
     @NativeMethods
     /* package */ interface Natives {
         boolean isEnabled(String featureName);
+        boolean getFieldTrialParamByFeatureAsBoolean(
+                String featureName, String paramName, boolean defaultValue);
     }
 }
diff --git a/components/translate/content/android/translate_feature_list.cc b/components/translate/content/android/translate_feature_list.cc
index a58ed41a..77ca7a6 100644
--- a/components/translate/content/android/translate_feature_list.cc
+++ b/components/translate/content/android/translate_feature_list.cc
@@ -44,5 +44,17 @@
   return base::FeatureList::IsEnabled(*feature);
 }
 
+static jboolean JNI_TranslateFeatureList_GetFieldTrialParamByFeatureAsBoolean(
+    JNIEnv* env,
+    const base::android::JavaParamRef<jstring>& jfeature_name,
+    const base::android::JavaParamRef<jstring>& jparam_name,
+    const jboolean jdefault_value) {
+  const base::Feature* feature = FindFeatureExposedToJava(
+      base::android::ConvertJavaStringToUTF8(env, jfeature_name));
+  const std::string& param_name = ConvertJavaStringToUTF8(env, jparam_name);
+  return base::GetFieldTrialParamByFeatureAsBool(*feature, param_name,
+                                                 jdefault_value);
+}
+
 }  // namespace android
 }  // namespace translate
diff --git a/components/translate/core/browser/translate_ui_delegate.cc b/components/translate/core/browser/translate_ui_delegate.cc
index acef6acc..ddbd2b6 100644
--- a/components/translate/core/browser/translate_ui_delegate.cc
+++ b/components/translate/core/browser/translate_ui_delegate.cc
@@ -89,14 +89,26 @@
   if (base::FeatureList::IsEnabled(
           language::kContentLanguagesInLanguagePicker)) {
     MaybeSetContentLanguages();
-    // Also start listening for changes in the accept languages.
-    PrefService* pref_service =
-        translate_manager->translate_client()->GetPrefs();
-    pref_change_registrar_.Init(pref_service);
-    pref_change_registrar_.Add(
-        language::prefs::kAcceptLanguages,
-        base::BindRepeating(&TranslateUIDelegate::MaybeSetContentLanguages,
-                            base::Unretained(this)));
+
+    if (!base::GetFieldTrialParamByFeatureAsBool(
+            language::kContentLanguagesInLanguagePicker,
+            language::kContentLanguagesDisableObserversParam,
+            false /* default */)) {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+      const std::string& pref_name = language::prefs::kPreferredLanguages;
+#else
+      const std::string& pref_name = language::prefs::kAcceptLanguages;
+#endif
+
+      // Also start listening for changes in the accept languages.
+      PrefService* pref_service =
+          translate_manager->translate_client()->GetPrefs();
+      pref_change_registrar_.Init(pref_service);
+      pref_change_registrar_.Add(
+          pref_name,
+          base::BindRepeating(&TranslateUIDelegate::MaybeSetContentLanguages,
+                              base::Unretained(this)));
+    }
   }
 
   std::string locale =
diff --git a/components/translate/core/browser/translate_ui_delegate_unittest.cc b/components/translate/core/browser/translate_ui_delegate_unittest.cc
index 99f6286..628b9f3 100644
--- a/components/translate/core/browser/translate_ui_delegate_unittest.cc
+++ b/components/translate/core/browser/translate_ui_delegate_unittest.cc
@@ -11,6 +11,8 @@
 #include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "components/language/core/browser/language_prefs.h"
+
 #include "components/infobars/core/infobar.h"
 #include "components/language/core/browser/language_model.h"
 #include "components/language/core/browser/language_prefs.h"
@@ -80,6 +82,38 @@
                                                       "ar", "fr");
   }
 
+  void testContentLanguages(bool disableObservers) {
+    scoped_feature_list_.InitAndEnableFeatureWithParameters(
+        language::kContentLanguagesInLanguagePicker,
+        {{language::kContentLanguagesDisableObserversParam,
+          disableObservers ? "true" : "false"}});
+    TranslateDownloadManager::GetInstance()->set_application_locale("en");
+    std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
+    prefs->AddToLanguageList("de", /*force_blocked=*/false);
+    prefs->AddToLanguageList("pl", /*force_blocked=*/false);
+
+    std::unique_ptr<TranslateUIDelegate> delegate =
+        std::make_unique<TranslateUIDelegate>(manager_->GetWeakPtr(), "en",
+                                              "fr");
+
+    std::vector<std::string> expected_codes = {"de", "pl"};
+    std::vector<std::string> actual_codes;
+
+    delegate->GetContentLanguagesCodes(&actual_codes);
+
+    EXPECT_THAT(expected_codes, ::testing::ContainerEq(actual_codes));
+
+    prefs->AddToLanguageList("it", /*force_blocked=*/false);
+
+    delegate->GetContentLanguagesCodes(&actual_codes);
+
+    if (disableObservers) {
+      expected_codes = {"de", "pl"};
+    } else {
+      expected_codes = {"de", "pl", "it"};
+    }
+    EXPECT_THAT(expected_codes, ::testing::ContainerEq(actual_codes));
+  }
   // Do not reorder. These are ordered for dependency on creation/destruction.
   MockTranslateDriver driver_;
   variations::ScopedVariationsIdsProvider scoped_variations_ids_provider_{
@@ -231,30 +265,13 @@
   EXPECT_EQ("fr", delegate_->GetTargetLanguageCode());
 }
 
-TEST_F(TranslateUIDelegateTest, ContentLanguagesWhenEnabled) {
-  scoped_feature_list_.InitAndEnableFeature(
-      language::kContentLanguagesInLanguagePicker);
-  TranslateDownloadManager::GetInstance()->set_application_locale("en");
-  std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
-  prefs->AddToLanguageList("de", /*force_blocked=*/false);
-  prefs->AddToLanguageList("pl", /*force_blocked=*/false);
+TEST_F(TranslateUIDelegateTest, ContentLanguagesWhenPrefChangeObserverEnabled) {
+  testContentLanguages(/*disableObservers=*/false);
+}
 
-  std::unique_ptr<TranslateUIDelegate> delegate =
-      std::make_unique<TranslateUIDelegate>(manager_->GetWeakPtr(), "en", "fr");
-  std::vector<std::string> expected_codes = {"de", "pl"};
-
-  std::vector<std::string> actual_codes;
-
-  delegate->GetContentLanguagesCodes(&actual_codes);
-
-  EXPECT_THAT(expected_codes, ::testing::ContainerEq(actual_codes));
-
-  // Mimic an update.
-  prefs->AddToLanguageList("it", /*force_blocked=*/false);
-  delegate->MaybeSetContentLanguages();
-  delegate->GetContentLanguagesCodes(&actual_codes);
-  expected_codes = {"de", "pl", "it"};
-  EXPECT_THAT(expected_codes, ::testing::ContainerEq(actual_codes));
+TEST_F(TranslateUIDelegateTest,
+       ContentLanguagesWhenPrefChangeObserverDisabled) {
+  testContentLanguages(/*disableObservers=*/true);
 }
 
 TEST_F(TranslateUIDelegateTest, ContentLanguagesWhenDisabled) {
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
index a447d04..58b7cd4 100644
--- a/components/variations/service/variations_service.cc
+++ b/components/variations/service/variations_service.cc
@@ -499,7 +499,7 @@
 void VariationsService::EnsureLocaleEquals(const std::string& locale) {
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   // Chrome OS may switch language on the fly.
-  DCHECK_EQ(locale, field_trial_creator_.application_locale());
+  return;
 #else
 
 #if defined(OS_ANDROID)
@@ -659,11 +659,8 @@
       std::move(resource_request), traffic_annotation);
   // Ensure our callback is called even with "304 Not Modified" responses.
   pending_seed_request_->SetAllowHttpErrorResults(true);
-  // Set the redirect callback so we can cancel on redirects.
-  // base::Unretained is safe here since this class owns
-  // |pending_seed_request_|'s lifetime.
-  pending_seed_request_->SetOnRedirectCallback(base::BindRepeating(
-      &VariationsService::OnSimpleLoaderRedirect, base::Unretained(this)));
+  // base::Unretained is safe here since this class scopes the lifetime of
+  // |pending_seed_request_|.
   pending_seed_request_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
       client_->GetURLLoaderFactory().get(),
       base::BindOnce(&VariationsService::OnSimpleLoaderComplete,
@@ -775,44 +772,18 @@
 void VariationsService::OnSimpleLoaderComplete(
     std::unique_ptr<std::string> response_body) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  OnSimpleLoaderCompleteOrRedirect(std::move(response_body), false);
-}
+  TRACE_EVENT0("browser", "VariationsService::OnSimpleLoaderComplete");
 
-void VariationsService::OnSimpleLoaderRedirect(
-    const net::RedirectInfo& redirect_info,
-    const network::mojom::URLResponseHead& response_head,
-    std::vector<std::string>* to_be_removed_headers) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  OnSimpleLoaderCompleteOrRedirect(nullptr, true);
-}
-
-void VariationsService::OnSimpleLoaderCompleteOrRedirect(
-    std::unique_ptr<std::string> response_body,
-    bool was_redirect) {
-  TRACE_EVENT0("browser", "VariationsService::OnSimpleLoaderCompleteOrRedirect");
   const bool is_first_request = !initial_request_completed_;
   initial_request_completed_ = true;
 
-  bool is_success = false;
-  int net_error = net::ERR_INVALID_REDIRECT;
-  scoped_refptr<net::HttpResponseHeaders> headers;
-
-  int response_code = -1;
-
-  // Variations seed fetches should not follow redirects, so if this request was
-  // redirected, keep the default values for |net_error| and |is_success| (treat
-  // it as a net::ERR_INVALID_REDIRECT), and the fetch will be cancelled when
-  // pending_seed_request is reset.
-  if (!was_redirect) {
-    const network::mojom::URLResponseHead* response_info =
-        pending_seed_request_->ResponseInfo();
-    if (response_info && response_info->headers) {
-      headers = response_info->headers;
-      response_code = headers->response_code();
-    }
-    net_error = pending_seed_request_->NetError();
-    is_success = headers && response_body && (net_error == net::OK);
-  }
+  const network::mojom::URLResponseHead* response_info =
+      pending_seed_request_->ResponseInfo();
+  const scoped_refptr<net::HttpResponseHeaders> headers =
+      response_info ? response_info->headers : nullptr;
+  const int response_code = headers ? headers->response_code() : -1;
+  const int net_error = pending_seed_request_->NetError();
+  const bool is_success = headers && response_body && (net_error == net::OK);
 
   pending_seed_request_.reset();
   if (last_request_was_http_retry_) {
diff --git a/components/variations/service/variations_service.h b/components/variations/service/variations_service.h
index 613d534..03de660eb 100644
--- a/components/variations/service/variations_service.h
+++ b/components/variations/service/variations_service.h
@@ -27,8 +27,6 @@
 #include "components/variations/variations_seed_store.h"
 #include "components/version_info/version_info.h"
 #include "components/web_resource/resource_request_allowed_notifier.h"
-#include "net/url_request/redirect_info.h"
-#include "services/network/public/mojom/url_response_head.mojom-forward.h"
 #include "url/gurl.h"
 
 class PrefService;
@@ -322,17 +320,6 @@
   // Called by SimpleURLLoader when |pending_seed_request_| load completes.
   void OnSimpleLoaderComplete(std::unique_ptr<std::string> response_body);
 
-  // Called by SimpleURLLoader when |pending_seed_request_| load is redirected.
-  void OnSimpleLoaderRedirect(
-      const net::RedirectInfo& redirect_info,
-      const network::mojom::URLResponseHead& response_head,
-      std::vector<std::string>* to_be_removed_headers);
-
-  // Handles post-fetch events.
-  void OnSimpleLoaderCompleteOrRedirect(
-      std::unique_ptr<std::string> response_body,
-      bool was_redirect);
-
   // Retry the fetch over HTTP, called by OnSimpleLoaderComplete when a request
   // fails. Returns true is the fetch was successfully started, this does not
   // imply the actual fetch was successful.
diff --git a/components/variations/service/variations_service_unittest.cc b/components/variations/service/variations_service_unittest.cc
index 9d79ff6..3def6a6 100644
--- a/components/variations/service/variations_service_unittest.cc
+++ b/components/variations/service/variations_service_unittest.cc
@@ -981,7 +981,7 @@
   EXPECT_FALSE(service.fetch_attempted());
 }
 
-TEST_F(VariationsServiceTest, SeedNotStoredWhenRedirected) {
+TEST_F(VariationsServiceTest, SeedStoredWhenRedirected) {
   VariationsService::EnableFetchForTesting();
 
   TestVariationsService service(
@@ -1006,7 +1006,7 @@
 
   service.set_intercepts_fetch(false);
   service.DoActualFetch();
-  EXPECT_FALSE(service.seed_stored());
+  EXPECT_TRUE(service.seed_stored());
 }
 
 TEST_F(VariationsServiceTest, NullResponseReceivedWithHTTPOk) {
diff --git a/components/vector_icons/BUILD.gn b/components/vector_icons/BUILD.gn
index 5c7c3bf..97767cd 100644
--- a/components/vector_icons/BUILD.gn
+++ b/components/vector_icons/BUILD.gn
@@ -58,6 +58,7 @@
     "lightbulb_outline.icon",
     "live_caption_off.icon",
     "live_caption_on.icon",
+    "location_off.icon",
     "location_on.icon",
     "lock.icon",
     "media_next_track.icon",
diff --git a/components/vector_icons/location_off.icon b/components/vector_icons/location_off.icon
new file mode 100644
index 0000000..bcdae99e
--- /dev/null
+++ b/components/vector_icons/location_off.icon
@@ -0,0 +1,27 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 12, 6.88f,
+R_ARC_TO, 2.5f, 2.5f, 0, 0, 1, 2.5f, 2.5f,
+R_CUBIC_TO, 0, 0.64f, -0.25f, 1.21f, -0.64f, 1.65f,
+R_LINE_TO, 3.38f, 3.38f,
+R_CUBIC_TO, 1, -1.46f, 1.76f, -3.02f, 1.76f, -5.28f,
+R_CUBIC_TO, 0, -3.87f, -3.13f, -7, -7, -7,
+R_CUBIC_TO, -1.94f, 0, -3.7f, 0.79f, -4.97f, 2.07f,
+R_LINE_TO, 3.32f, 3.32f,
+R_CUBIC_TO, 0.44f, -0.39f, 1.01f, -0.64f, 1.65f, -0.64f,
+CLOSE,
+MOVE_TO, 2.81f, 2.81f,
+LINE_TO, 1.39f, 4.22f,
+R_LINE_TO, 3.72f, 3.72f,
+R_CUBIC_TO, -0.07f, 0.39f, -0.11f, 0.78f, -0.11f, 1.19f,
+R_CUBIC_TO, 0, 5.34f, 4.21f, 6.79f, 6.03f, 12.28f,
+R_CUBIC_TO, 0.14f, 0.42f, 0.52f, 0.72f, 0.97f, 0.72f,
+R_CUBIC_TO, 0.45f, 0, 0.83f, -0.3f, 0.97f, -0.72f,
+R_CUBIC_TO, 0.49f, -1.49f, 1.17f, -2.68f, 1.88f, -3.74f,
+R_LINE_TO, 4.93f, 4.93f,
+R_LINE_TO, 1.41f, -1.41f,
+LINE_TO, 2.81f, 2.81f,
+CLOSE
diff --git a/content/browser/device_sensors/device_sensor_browsertest.cc b/content/browser/device_sensors/device_sensor_browsertest.cc
index 2dfaa32..a323fa93 100644
--- a/content/browser/device_sensors/device_sensor_browsertest.cc
+++ b/content/browser/device_sensors/device_sensor_browsertest.cc
@@ -13,7 +13,6 @@
 #include "base/run_loop.h"
 #include "base/threading/platform_thread.h"
 #include "build/build_config.h"
-#include "components/network_session_configurator/common/network_switches.h"
 #include "content/browser/generic_sensor/sensor_provider_proxy_impl.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/render_frame_host.h"
@@ -23,6 +22,7 @@
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/content_browser_test.h"
 #include "content/public/test/content_browser_test_utils.h"
+#include "content/public/test/content_mock_cert_verifier.h"
 #include "content/public/test/test_navigation_observer.h"
 #include "content/public/test/test_utils.h"
 #include "content/shell/browser/shell.h"
@@ -55,31 +55,6 @@
         base::NullCallback());
   }
 
-  void SetUpOnMainThread() override {
-    https_embedded_test_server_ = std::make_unique<net::EmbeddedTestServer>(
-        net::EmbeddedTestServer::TYPE_HTTPS);
-    // Serve both a.com and b.com (and any other domain).
-    host_resolver()->AddRule("*", "127.0.0.1");
-    ASSERT_TRUE(https_embedded_test_server_->InitializeAndListen());
-    content::SetupCrossSiteRedirector(https_embedded_test_server_.get());
-    https_embedded_test_server_->ServeFilesFromSourceDirectory(
-        "content/test/data/device_sensors");
-    https_embedded_test_server_->StartAcceptingConnections();
-
-    sensor_provider_ = std::make_unique<FakeSensorProvider>();
-    sensor_provider_->SetAccelerometerData(4, 5, 6);
-    sensor_provider_->SetLinearAccelerationSensorData(1, 2, 3);
-    sensor_provider_->SetGyroscopeData(7, 8, 9);
-    sensor_provider_->SetRelativeOrientationSensorData(1, 2, 3);
-    sensor_provider_->SetAbsoluteOrientationSensorData(4, 5, 6);
-  }
-
-  void SetUpCommandLine(base::CommandLine* command_line) override {
-    // HTTPS server only serves a valid cert for localhost, so this is needed
-    // to load pages from other hosts without an error.
-    command_line->AppendSwitch(switches::kIgnoreCertificateErrors);
-  }
-
   void DelayAndQuit(base::TimeDelta delay) {
     base::PlatformThread::Sleep(delay);
     base::RunLoop::QuitCurrentWhenIdleDeprecated();
@@ -100,10 +75,49 @@
   std::unique_ptr<net::EmbeddedTestServer> https_embedded_test_server_;
 
  private:
+  void SetUpOnMainThread() override {
+    ContentBrowserTest::SetUpOnMainThread();
+    mock_cert_verifier_.mock_cert_verifier()->set_default_result(net::OK);
+
+    https_embedded_test_server_ = std::make_unique<net::EmbeddedTestServer>(
+        net::EmbeddedTestServer::TYPE_HTTPS);
+    // Serve both a.com and b.com (and any other domain).
+    host_resolver()->AddRule("*", "127.0.0.1");
+    ASSERT_TRUE(https_embedded_test_server_->InitializeAndListen());
+    content::SetupCrossSiteRedirector(https_embedded_test_server_.get());
+    https_embedded_test_server_->ServeFilesFromSourceDirectory(
+        "content/test/data/device_sensors");
+    https_embedded_test_server_->StartAcceptingConnections();
+
+    sensor_provider_ = std::make_unique<FakeSensorProvider>();
+    sensor_provider_->SetAccelerometerData(4, 5, 6);
+    sensor_provider_->SetLinearAccelerationSensorData(1, 2, 3);
+    sensor_provider_->SetGyroscopeData(7, 8, 9);
+    sensor_provider_->SetRelativeOrientationSensorData(1, 2, 3);
+    sensor_provider_->SetAbsoluteOrientationSensorData(4, 5, 6);
+  }
+
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    ContentBrowserTest::SetUpCommandLine(command_line);
+    mock_cert_verifier_.SetUpCommandLine(command_line);
+  }
+
+  void SetUpInProcessBrowserTestFixture() override {
+    ContentBrowserTest::SetUpInProcessBrowserTestFixture();
+    mock_cert_verifier_.SetUpInProcessBrowserTestFixture();
+  }
+
+  void TearDownInProcessBrowserTestFixture() override {
+    ContentBrowserTest::TearDownInProcessBrowserTestFixture();
+    mock_cert_verifier_.TearDownInProcessBrowserTestFixture();
+  }
+
   void BindSensorProvider(
       mojo::PendingReceiver<device::mojom::SensorProvider> receiver) {
     sensor_provider_->Bind(std::move(receiver));
   }
+
+  content::ContentMockCertVerifier mock_cert_verifier_;
 };
 
 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, OrientationTest) {
diff --git a/content/browser/navigation_browsertest.cc b/content/browser/navigation_browsertest.cc
index c61affb..9dce62d 100644
--- a/content/browser/navigation_browsertest.cc
+++ b/content/browser/navigation_browsertest.cc
@@ -23,7 +23,6 @@
 #include "base/test/test_timeouts.h"
 #include "base/threading/thread_restrictions.h"
 #include "build/build_config.h"
-#include "components/network_session_configurator/common/network_switches.h"
 #include "content/browser/browser_url_handler_impl.h"
 #include "content/browser/child_process_security_policy_impl.h"
 #include "content/browser/network_service_instance_impl.h"
@@ -55,6 +54,7 @@
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/content_browser_test.h"
 #include "content/public/test/content_browser_test_utils.h"
+#include "content/public/test/content_mock_cert_verifier.h"
 #include "content/public/test/download_test_observer.h"
 #include "content/public/test/hit_test_region_observer.h"
 #include "content/public/test/navigation_handle_observer.h"
@@ -2695,25 +2695,33 @@
 // Tests for cookies. Provides an HTTPS server.
 class NavigationCookiesBrowserTest : public NavigationBaseBrowserTest {
  protected:
-  NavigationCookiesBrowserTest()
-      : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-
-  void SetUpCommandLine(base::CommandLine* command_line) override {
-    NavigationBaseBrowserTest::SetUpCommandLine(command_line);
-
-    // This is necessary to use https with arbitrary hostnames.
-    command_line->AppendSwitch(switches::kIgnoreCertificateErrors);
-  }
-
-  void SetUpOnMainThread() override {
-    https_server()->AddDefaultHandlers(GetTestDataFilePath());
-    NavigationBaseBrowserTest::SetUpOnMainThread();
-  }
-
+  NavigationCookiesBrowserTest() = default;
   net::EmbeddedTestServer* https_server() { return &https_server_; }
 
  private:
-  net::EmbeddedTestServer https_server_;
+  void SetUpOnMainThread() override {
+    NavigationBaseBrowserTest::SetUpOnMainThread();
+    mock_cert_verifier_.mock_cert_verifier()->set_default_result(net::OK);
+    https_server()->AddDefaultHandlers(GetTestDataFilePath());
+  }
+
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    NavigationBaseBrowserTest::SetUpCommandLine(command_line);
+    mock_cert_verifier_.SetUpCommandLine(command_line);
+  }
+
+  void SetUpInProcessBrowserTestFixture() override {
+    NavigationBaseBrowserTest::SetUpInProcessBrowserTestFixture();
+    mock_cert_verifier_.SetUpInProcessBrowserTestFixture();
+  }
+
+  void TearDownInProcessBrowserTestFixture() override {
+    NavigationBaseBrowserTest::TearDownInProcessBrowserTestFixture();
+    mock_cert_verifier_.TearDownInProcessBrowserTestFixture();
+  }
+
+  content::ContentMockCertVerifier mock_cert_verifier_;
+  net::EmbeddedTestServer https_server_{net::EmbeddedTestServer::TYPE_HTTPS};
 };
 
 // Test how cookies are inherited in about:srcdoc iframes.
diff --git a/content/browser/prerender/prerender_host.cc b/content/browser/prerender/prerender_host.cc
index 88cbf66..8928c79 100644
--- a/content/browser/prerender/prerender_host.cc
+++ b/content/browser/prerender/prerender_host.cc
@@ -9,6 +9,7 @@
 #include "base/run_loop.h"
 #include "base/trace_event/common/trace_event_common.h"
 #include "base/trace_event/trace_conversion_helper.h"
+#include "base/trace_event/typed_macros.h"
 #include "content/browser/prerender/prerender_host_registry.h"
 #include "content/browser/renderer_host/frame_tree.h"
 #include "content/browser/renderer_host/frame_tree_node.h"
@@ -563,6 +564,14 @@
     return false;
   }
 
+  // We don't check download_policy as it affects whether the download triggered
+  // by the NavigationRequest is allowed to proceed (or logs metrics) and
+  // doesn't affect the behaviour of the document created by a non-download
+  // navigation after commit (e.g. it doesn't affect future downloads in child
+  // frames). PrerenderNavigationThrottle has already ensured that the initial
+  // prerendering navigation isn't a download and as prerendering activation
+  // won't reach out to the network, it won't turn into a navigation as well.
+
   DCHECK(common_params_->base_url_for_data_url.is_empty());
   if (potential_activation.base_url_for_data_url !=
       common_params_->base_url_for_data_url) {
@@ -630,6 +639,15 @@
     return false;
   }
 
+  // The spec mandates matching the referrer policy, and not the referrer URL
+  // itself, so we only compare the referrer policy here. Referrer policy is a
+  // more predictable value to match than referrer URL.
+  // https://jeremyroman.github.io/alternate-loading-modes/#navigate-activation
+  if (potential_activation.referrer->policy !=
+      common_params_->referrer->policy) {
+    return false;
+  }
+
   return true;
 }
 
@@ -683,6 +701,7 @@
 }
 
 void PrerenderHost::Cancel(FinalStatus status) {
+  TRACE_EVENT("navigation", "PrerenderHost::Cancel", "final_status", status);
   // Already cancelled.
   if (final_status_)
     return;
diff --git a/content/browser/prerender/prerender_host_registry_unittest.cc b/content/browser/prerender/prerender_host_registry_unittest.cc
index 3315832..8a02800 100644
--- a/content/browser/prerender/prerender_host_registry_unittest.cc
+++ b/content/browser/prerender/prerender_host_registry_unittest.cc
@@ -76,6 +76,18 @@
   bool was_host_destroyed_ = false;
 };
 
+std::unique_ptr<NavigationSimulatorImpl> CreateActivation(
+    const GURL& prerendering_url,
+    WebContentsImpl& web_contents) {
+  std::unique_ptr<NavigationSimulatorImpl> navigation =
+      NavigationSimulatorImpl::CreateRendererInitiated(
+          prerendering_url, web_contents.GetMainFrame());
+  navigation->SetReferrer(blink::mojom::Referrer::New(
+      web_contents.GetMainFrame()->GetLastCommittedURL(),
+      network::mojom::ReferrerPolicy::kStrictOriginWhenCrossOrigin));
+  return navigation;
+}
+
 void ActivatePrerenderedPage(const GURL& prerendering_url,
                              WebContentsImpl& web_contents) {
   // Make sure the page for `prerendering_url` has been prerendered.
@@ -90,8 +102,7 @@
 
   // Activate the prerendered page.
   std::unique_ptr<NavigationSimulatorImpl> navigation =
-      NavigationSimulatorImpl::CreateRendererInitiated(
-          prerendering_url, web_contents.GetMainFrame());
+      CreateActivation(prerendering_url, web_contents);
   navigation->Commit();
   activation_observer.WaitUntilHostDestroyed();
 
@@ -432,8 +443,7 @@
 
   // Start activation.
   std::unique_ptr<NavigationSimulatorImpl> navigation =
-      NavigationSimulatorImpl::CreateRendererInitiated(kPrerenderingUrl,
-                                                       render_frame_host);
+      CreateActivation(kPrerenderingUrl, *web_contents);
   navigation->Start();
 
   // Wait until PrerenderCommitDeferringCondition runs.
@@ -515,8 +525,7 @@
     MockCommitDeferringConditionInstaller installer(condition.PassToDelegate());
 
     // Start trying to activate the prerendered page.
-    navigation = NavigationSimulatorImpl::CreateRendererInitiated(
-        kPrerenderingUrl, render_frame_host);
+    navigation = CreateActivation(kPrerenderingUrl, *web_contents);
     navigation->Start();
 
     // Wait for the condition to pause the activation.
@@ -581,8 +590,7 @@
     MockCommitDeferringConditionInstaller installer(condition.PassToDelegate());
 
     // Start trying to activate the prerendered page.
-    navigation = NavigationSimulatorImpl::CreateRendererInitiated(
-        kPrerenderingUrl, render_frame_host);
+    navigation = CreateActivation(kPrerenderingUrl, *web_contents);
     navigation->Start();
 
     // Wait for the condition to pause the activation.
@@ -761,6 +769,16 @@
       }));
 }
 
+TEST_F(PrerenderHostRegistryTest,
+       CompareInitialAndActivationCommonParams_ReferrerPolicy) {
+  CheckNotActivatedForParams(
+      base::BindLambdaForTesting([&](NavigationSimulatorImpl* navigation) {
+        navigation->SetReferrer(blink::mojom::Referrer::New(
+            web_contents()->GetMainFrame()->GetLastCommittedURL(),
+            network::mojom::ReferrerPolicy::kAlways));
+      }));
+}
+
 // End navigation parameter matching tests ---------
 
 }  // namespace
diff --git a/content/browser/prerender/prerender_host_unittest.cc b/content/browser/prerender/prerender_host_unittest.cc
index 76d20dde..1632c73 100644
--- a/content/browser/prerender/prerender_host_unittest.cc
+++ b/content/browser/prerender/prerender_host_unittest.cc
@@ -63,6 +63,18 @@
   EXPECT_TRUE(host.is_ready_for_activation());
 }
 
+std::unique_ptr<NavigationSimulatorImpl> CreateActivation(
+    const GURL& prerendering_url,
+    WebContentsImpl& web_contents) {
+  std::unique_ptr<NavigationSimulatorImpl> navigation =
+      NavigationSimulatorImpl::CreateRendererInitiated(
+          prerendering_url, web_contents.GetMainFrame());
+  navigation->SetReferrer(blink::mojom::Referrer::New(
+      web_contents.GetMainFrame()->GetLastCommittedURL(),
+      network::mojom::ReferrerPolicy::kStrictOriginWhenCrossOrigin));
+  return navigation;
+}
+
 void ActivatePrerenderedPage(const GURL& prerendering_url,
                              WebContentsImpl& web_contents) {
   // Make sure the page for `prerendering_url` has been prerendered.
@@ -77,8 +89,7 @@
 
   // Activate the prerendered page.
   std::unique_ptr<NavigationSimulatorImpl> navigation =
-      NavigationSimulatorImpl::CreateRendererInitiated(
-          prerendering_url, web_contents.GetMainFrame());
+      CreateActivation(prerendering_url, web_contents);
   navigation->Commit();
   activation_observer.WaitUntilHostDestroyed();
 
@@ -174,7 +185,6 @@
 TEST_F(PrerenderHostTest, MainFrameNavigationForReservedHost) {
   const GURL kOriginUrl("https://example.com/");
   std::unique_ptr<TestWebContents> web_contents = CreateWebContents(kOriginUrl);
-  RenderFrameHostImpl* initiator_rfh = web_contents->GetMainFrame();
   PrerenderHostRegistry* registry = web_contents->GetPrerenderHostRegistry();
 
   // Start prerendering a page.
@@ -199,8 +209,7 @@
     MockCommitDeferringConditionInstaller installer(condition.PassToDelegate());
 
     // Start trying to activate the prerendered page.
-    navigation = NavigationSimulatorImpl::CreateRendererInitiated(
-        kPrerenderingUrl, initiator_rfh);
+    navigation = CreateActivation(kPrerenderingUrl, *web_contents);
     navigation->Start();
 
     // Wait for the condition to pause the activation.
diff --git a/content/browser/renderer_host/render_frame_host_delegate.h b/content/browser/renderer_host/render_frame_host_delegate.h
index cb877f5..c74781c 100644
--- a/content/browser/renderer_host/render_frame_host_delegate.h
+++ b/content/browser/renderer_host/render_frame_host_delegate.h
@@ -83,6 +83,12 @@
 }
 }  // namespace blink
 
+namespace device {
+namespace mojom {
+class ScreenOrientation;
+}
+}  // namespace device
+
 namespace ui {
 class ClipboardFormatType;
 }
@@ -561,6 +567,12 @@
       RenderFrameHostImpl* source,
       blink::mojom::TextAutosizerPageInfoPtr page_info);
 
+  // Binds a ScreenOrientation object associated to |render_frame_host|.
+  virtual void BindScreenOrientation(
+      RenderFrameHost* render_frame_host,
+      mojo::PendingAssociatedReceiver<device::mojom::ScreenOrientation>
+          receiver) {}
+
   // Return true if we have seen a recent orientation change, which is used to
   // decide if we should consume user activation when entering fullscreen.
   virtual bool HasSeenRecentScreenOrientationChange();
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 51bcadd..488ce4c1 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -180,6 +180,7 @@
 #include "mojo/public/cpp/bindings/struct_ptr.h"
 #include "mojo/public/cpp/system/data_pipe.h"
 #include "net/base/schemeful_site.h"
+#include "services/device/public/mojom/screen_orientation.mojom.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
 #include "services/network/public/cpp/features.h"
@@ -3912,6 +3913,10 @@
 }
 
 void RenderFrameHostImpl::DidCallFocus() {
+  // This should not occur for prerenders but may occur for pages in
+  // the BackForwardCache depending on timing.
+  if (!IsActive())
+    return;
   delegate_->DidCallFocus();
 }
 
@@ -4562,6 +4567,13 @@
   TRACE_EVENT1("navigation", "RenderFrameHostImpl::OnRunBeforeUnloadConfirm",
                "frame_tree_node", frame_tree_node_->frame_tree_node_id());
 
+  // Inactive pages, such as prerendered pages, should not be able to put up a
+  // dialog.
+  if (!IsActive()) {
+    std::move(ipc_response_callback).Run(/*success=*/false);
+    return;
+  }
+
   // Allow at most one attempt to show a beforeunload dialog per navigation.
   RenderFrameHostImpl* beforeunload_initiator = GetBeforeUnloadInitiator();
   if (beforeunload_initiator) {
@@ -5293,6 +5305,10 @@
 
 #if defined(OS_ANDROID)
 void RenderFrameHostImpl::UpdateUserGestureCarryoverInfo() {
+  // This should not occur for prerenders but may occur for pages in
+  // the BackForwardCache depending on timing.
+  if (!IsActive())
+    return;
   delegate_->UpdateUserGestureCarryoverInfo();
 }
 #endif
@@ -5851,7 +5867,7 @@
 }
 
 void RenderFrameHostImpl::DidFinishDocumentLoad() {
-  dom_content_loaded_ = true;
+  document_associated_data_->dom_content_loaded_ = true;
   delegate_->DOMContentLoaded(this);
 }
 
@@ -7936,7 +7952,6 @@
   // TODO(crbug/1129537): support UKM source creation for failed navigations
   // too.
 
-  dom_content_loaded_ = false;
   has_committed_any_navigation_ = true;
   DCHECK(navigation_request && navigation_request->IsNavigationStarted() &&
          navigation_request->DidEncounterError());
@@ -8092,6 +8107,14 @@
       },
       base::Unretained(this)));
 
+  associated_registry_->AddInterface(base::BindRepeating(
+      [](RenderFrameHostImpl* impl,
+         mojo::PendingAssociatedReceiver<device::mojom::ScreenOrientation>
+             receiver) {
+        impl->delegate()->BindScreenOrientation(impl, std::move(receiver));
+      },
+      base::Unretained(this)));
+
   mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
       remote_interfaces;
   GetMojomFrameInRenderer()->GetInterfaceProvider(
@@ -10166,8 +10189,6 @@
   has_pagehide_handler_ = false;
   has_visibilitychange_handler_ = false;
 
-  dom_content_loaded_ = false;
-
   DCHECK(params.embedding_token.has_value());
   SetEmbeddingToken(params.embedding_token.value());
 
@@ -11707,7 +11728,7 @@
 }
 
 bool RenderFrameHostImpl::IsDOMContentLoaded() {
-  return dom_content_loaded_;
+  return document_associated_data_->dom_content_loaded_;
 }
 
 void RenderFrameHostImpl::UpdateIsAdSubframe(bool is_ad_subframe) {
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h
index 0577cbb5..53ae0467 100644
--- a/content/browser/renderer_host/render_frame_host_impl.h
+++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -3312,10 +3312,6 @@
   // document or not.
   bool is_loading_ = false;
 
-  // Indicates whether this RenderFrameHost has completed firing
-  // DOMContentLoaded or not.
-  bool dom_content_loaded_ = false;
-
   // The unique ID of the latest NavigationEntry that this RenderFrameHost is
   // showing. This may change even when this frame hasn't committed a page,
   // such as for a new subframe navigation in a different frame.  Tracking this
@@ -3778,6 +3774,10 @@
     // subframes.
     std::unique_ptr<PageImpl> owned_page;
 
+    // Indicates whether `blink::mojom::DidFinishDocumentLoad` was called for
+    // this document or not.
+    bool dom_content_loaded_ = false;
+
     // Prerender2:
     //
     // The URL that `blink.mojom.LocalFrameHost::DidFinishLoad()` passed to
diff --git a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
index 23a3d514..009711b 100644
--- a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
+++ b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
@@ -686,6 +686,30 @@
   web_contents()->SetJavaScriptDialogManagerForTesting(nullptr);
 }
 
+// Tests that requesting a before unload confirm dialog on a non-active
+// does not show a dialog.
+IN_PROC_BROWSER_TEST_F(RenderFrameHostImplBrowserTest,
+                       BeforeUnloadConfirmOnNonActive) {
+  TestJavaScriptDialogManager dialog_manager;
+  web_contents()->SetDelegate(&dialog_manager);
+
+  GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
+  GURL url_b(embedded_test_server()->GetURL("b.com", "/title1.html"));
+
+  EXPECT_TRUE(NavigateToURL(shell(), url_a));
+  RenderFrameHostImpl* rfh_a = root_frame_host();
+  LeaveInPendingDeletionState(rfh_a);
+
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  rfh_a->RunBeforeUnloadConfirm(true, base::DoNothing());
+
+  // We should not have seen a dialog because the page isn't active anymore.
+  EXPECT_EQ(0, dialog_manager.num_beforeunload_dialogs_seen());
+
+  web_contents()->SetDelegate(nullptr);
+  web_contents()->SetJavaScriptDialogManagerForTesting(nullptr);
+}
+
 // Test for crbug.com/80401.  Canceling a beforeunload dialog should reset
 // the URL to the previous page's URL.
 IN_PROC_BROWSER_TEST_F(RenderFrameHostImplBrowserTest,
diff --git a/content/browser/renderer_host/render_widget_host_input_event_router.cc b/content/browser/renderer_host/render_widget_host_input_event_router.cc
index c0b49575..0108119 100644
--- a/content/browser/renderer_host/render_widget_host_input_event_router.cc
+++ b/content/browser/renderer_host/render_widget_host_input_event_router.cc
@@ -380,6 +380,11 @@
     bubbling_gesture_scroll_origin_ = nullptr;
   }
 
+  if (view == last_mouse_move_root_view_) {
+    last_mouse_move_target_ = nullptr;
+    last_mouse_move_root_view_ = nullptr;
+  }
+
   if (view == last_mouse_move_target_) {
     // When a child iframe is destroyed, consider its parent to be to be the
     // most recent target, if possible. In some cases the parent might already
@@ -393,7 +398,10 @@
       last_mouse_move_target_ = nullptr;
     }
 
-    if (!last_mouse_move_target_ || view == last_mouse_move_root_view_)
+    // If both target and root are the view being destroyed, or the parent
+    // has already been destroyed, then also clear the root view pointer
+    // along with the target pointer.
+    if (!last_mouse_move_target_)
       last_mouse_move_root_view_ = nullptr;
   }
 
diff --git a/content/browser/screen_orientation/screen_orientation_provider.cc b/content/browser/screen_orientation/screen_orientation_provider.cc
index c944844..394df73 100644
--- a/content/browser/screen_orientation/screen_orientation_provider.cc
+++ b/content/browser/screen_orientation/screen_orientation_provider.cc
@@ -22,12 +22,17 @@
 ScreenOrientationProvider::ScreenOrientationProvider(WebContents* web_contents)
     : WebContentsObserver(web_contents),
       lock_applied_(false),
-      receivers_(web_contents,
-                 this,
-                 content::WebContentsFrameReceiverSetPassKey()) {}
+      receivers_(web_contents, this) {}
 
 ScreenOrientationProvider::~ScreenOrientationProvider() = default;
 
+void ScreenOrientationProvider::BindScreenOrientation(
+    RenderFrameHost* rfh,
+    mojo::PendingAssociatedReceiver<device::mojom::ScreenOrientation>
+        receiver) {
+  receivers_.Bind(rfh, std::move(receiver));
+}
+
 void ScreenOrientationProvider::LockOrientation(
     device::mojom::ScreenOrientationLockType orientation,
     LockOrientationCallback callback) {
diff --git a/content/browser/screen_orientation/screen_orientation_provider.h b/content/browser/screen_orientation/screen_orientation_provider.h
index 3999176..735b45c1 100644
--- a/content/browser/screen_orientation/screen_orientation_provider.h
+++ b/content/browser/screen_orientation/screen_orientation_provider.h
@@ -9,8 +9,8 @@
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "content/common/content_export.h"
+#include "content/public/browser/render_frame_host_receiver_set.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "content/public/browser/web_contents_receiver_set.h"
 #include "services/device/public/mojom/screen_orientation.mojom.h"
 #include "services/device/public/mojom/screen_orientation_lock_types.mojom.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -30,6 +30,11 @@
 
   ~ScreenOrientationProvider() override;
 
+  void BindScreenOrientation(
+      RenderFrameHost* rfh,
+      mojo::PendingAssociatedReceiver<device::mojom::ScreenOrientation>
+          receiver);
+
   // device::mojom::ScreenOrientation:
   void LockOrientation(device::mojom::ScreenOrientationLockType,
                        LockOrientationCallback callback) override;
@@ -77,7 +82,7 @@
 
   LockOrientationCallback pending_callback_;
 
-  WebContentsFrameReceiverSet<device::mojom::ScreenOrientation> receivers_;
+  RenderFrameHostReceiverSet<device::mojom::ScreenOrientation> receivers_;
 
   DISALLOW_COPY_AND_ASSIGN(ScreenOrientationProvider);
 };
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index e0e3f05..5ccdee4 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -6744,9 +6744,6 @@
   // http://crbug.com/728276
   base::ScopedClosureRunner fullscreen_block = ForSecurityDropFullscreen();
 
-  if (delegate_)
-    delegate_->WillRunBeforeUnloadConfirm();
-
   auto callback =
       base::BindOnce(&WebContentsImpl::OnDialogClosed, base::Unretained(this),
                      render_frame_host->GetProcess()->GetID(),
@@ -6764,8 +6761,7 @@
   javascript_dialog_dismiss_notifier_ =
       std::make_unique<JavaScriptDialogDismissNotifier>();
 
-  bool should_suppress = !render_frame_host->IsActive() ||
-                         (delegate_ && delegate_->ShouldSuppressDialogs(this));
+  bool should_suppress = delegate_ && delegate_->ShouldSuppressDialogs(this);
   bool has_non_devtools_handlers = delegate_ && dialog_manager_;
   bool has_handlers = page_handlers.size() || has_non_devtools_handlers;
   if (should_suppress || !has_handlers) {
@@ -8643,6 +8639,13 @@
   --suppress_unresponsive_renderer_count_;
 }
 
+void WebContentsImpl::BindScreenOrientation(
+    RenderFrameHost* rfh,
+    mojo::PendingAssociatedReceiver<device::mojom::ScreenOrientation>
+        receiver) {
+  screen_orientation_provider_->BindScreenOrientation(rfh, std::move(receiver));
+}
+
 bool WebContentsImpl::HasSeenRecentScreenOrientationChange() {
   static constexpr base::TimeDelta kMaxInterval =
       base::TimeDelta::FromSeconds(1);
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 7825502a..3a7d822 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -754,6 +754,10 @@
   void OnTextAutosizerPageInfoChanged(
       RenderFrameHostImpl* source,
       blink::mojom::TextAutosizerPageInfoPtr page_info) override;
+  void BindScreenOrientation(
+      RenderFrameHost* rfh,
+      mojo::PendingAssociatedReceiver<device::mojom::ScreenOrientation>
+          receiver) override;
   bool HasSeenRecentScreenOrientationChange() override;
   bool IsTransientAllowFullscreenActive() const override;
   bool IsBackForwardCacheSupported() override;
@@ -1369,6 +1373,8 @@
   FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest,
                            BeforeUnloadDialogSuppressedForDiscard);
   FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest,
+                           BeforeUnloadConfirmOnNonActive);
+  FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest,
                            PendingDialogMakesDiscardUnloadReturnFalse);
   FRIEND_TEST_ALL_PREFIXES(DevToolsProtocolTest, JavaScriptDialogNotifications);
   FRIEND_TEST_ALL_PREFIXES(DevToolsProtocolTest, JavaScriptDialogInterop);
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
index a4909e6..a0da74d 100644
--- a/content/public/browser/web_contents_delegate.h
+++ b/content/public/browser/web_contents_delegate.h
@@ -201,9 +201,6 @@
   // gestures.
   virtual bool CanOverscrollContent();
 
-  // Invoked prior to showing before unload handler confirmation dialog.
-  virtual void WillRunBeforeUnloadConfirm() {}
-
   // Returns true if javascript dialogs and unload alerts are suppressed.
   // Default is false.
   virtual bool ShouldSuppressDialogs(WebContents* source);
diff --git a/content/public/browser/web_contents_receiver_set.h b/content/public/browser/web_contents_receiver_set.h
index 44437df..36ba25e 100644
--- a/content/public/browser/web_contents_receiver_set.h
+++ b/content/public/browser/web_contents_receiver_set.h
@@ -31,7 +31,6 @@
 namespace content {
 
 class RenderFrameHost;
-class ScreenOrientationProvider;
 class TestFrameInterfaceBinder;
 class WebContentsImpl;
 class WebContentsReceiverSetBrowserTest;
@@ -96,7 +95,6 @@
   friend class ::chrome_browser_net::NetErrorTabHelper;
   friend class ::printing::PrintManager;
   friend class ::subresource_redirect::SubresourceRedirectObserver;
-  friend class ScreenOrientationProvider;
   friend class TestFrameInterfaceBinder;
   FRIEND_TEST_ALL_PREFIXES(WebContentsReceiverSetBrowserTest,
                            OverrideForTesting);
diff --git a/content/public/test/prerender_test_util.cc b/content/public/test/prerender_test_util.cc
index 57f37dca..6d521be 100644
--- a/content/public/test/prerender_test_util.cc
+++ b/content/public/test/prerender_test_util.cc
@@ -5,6 +5,7 @@
 #include "content/public/test/prerender_test_util.h"
 
 #include "base/callback_helpers.h"
+#include "base/trace_event/typed_macros.h"
 #include "content/browser/prerender/prerender_host_registry.h"
 #include "content/browser/renderer_host/frame_tree.h"
 #include "content/browser/renderer_host/render_frame_host_impl.h"
@@ -106,14 +107,18 @@
 
 PrerenderHostRegistryObserver::~PrerenderHostRegistryObserver() = default;
 
-void PrerenderHostRegistryObserver::WaitForTrigger(const GURL& gurl) {
-  impl_->WaitForTrigger(gurl);
+void PrerenderHostRegistryObserver::WaitForTrigger(const GURL& url) {
+  TRACE_EVENT("test", "PrerenderHostRegistryObserver::WaitForTrigger", "url",
+              url);
+  impl_->WaitForTrigger(url);
 }
 
 void PrerenderHostRegistryObserver::NotifyOnTrigger(
-    const GURL& gurl,
+    const GURL& url,
     base::OnceClosure callback) {
-  impl_->NotifyOnTrigger(gurl, std::move(callback));
+  TRACE_EVENT("test", "PrerenderHostRegistryObserver::NotifyOnTrigger", "url",
+              url);
+  impl_->NotifyOnTrigger(url, std::move(callback));
 }
 
 class PrerenderHostObserverImpl : public PrerenderHost::Observer {
@@ -204,10 +209,12 @@
 PrerenderHostObserver::~PrerenderHostObserver() = default;
 
 void PrerenderHostObserver::WaitForActivation() {
+  TRACE_EVENT("test", "PrerenderHostObserver::WaitForActivation");
   impl_->WaitForActivation();
 }
 
 void PrerenderHostObserver::WaitForDestroyed() {
+  TRACE_EVENT("test", "PrerenderHostObserver::WaitForDestroyed");
   impl_->WaitForDestroyed();
 }
 
@@ -237,6 +244,8 @@
 }
 
 void PrerenderTestHelper::WaitForPrerenderLoadCompletion(int host_id) {
+  TRACE_EVENT("test", "PrerenderTestHelper::WaitForPrerenderLoadCompletion",
+              "host_id", host_id);
   auto* host = GetPrerenderHostById(GetWebContents(), host_id);
   ASSERT_NE(host, nullptr);
   auto status = host->WaitForLoadStopForTesting();
@@ -247,6 +256,8 @@
 void PrerenderTestHelper::WaitForPrerenderLoadCompletion(
     WebContents& web_contents,
     const GURL& gurl) {
+  TRACE_EVENT("test", "PrerenderTestHelper::WaitForPrerenderLoadCompletion",
+              "web_contents", web_contents, "url", gurl);
   PrerenderHostRegistry& registry = GetPrerenderHostRegistry(&web_contents);
   PrerenderHost* host = registry.FindHostByUrlForTesting(gurl);
   // Wait for the host to be created if it hasn't yet.
@@ -261,10 +272,14 @@
 }
 
 void PrerenderTestHelper::WaitForPrerenderLoadCompletion(const GURL& gurl) {
+  TRACE_EVENT("test", "PrerenderTestHelper::WaitForPrerenderLoadCompletion",
+              "url", gurl);
   WaitForPrerenderLoadCompletion(*GetWebContents(), gurl);
 }
 
 int PrerenderTestHelper::AddPrerender(const GURL& prerendering_url) {
+  TRACE_EVENT("test", "PrerenderTestHelper::AddPrerender", "prerendering_url",
+              prerendering_url);
   EXPECT_TRUE(content::BrowserThread::CurrentlyOn(BrowserThread::UI));
   AddPrerenderAsync(prerendering_url);
 
@@ -275,6 +290,8 @@
 }
 
 void PrerenderTestHelper::AddPrerenderAsync(const GURL& prerendering_url) {
+  TRACE_EVENT("test", "PrerenderTestHelper::AddPrerenderAsync",
+              "prerendering_url", prerendering_url);
   EXPECT_TRUE(content::BrowserThread::CurrentlyOn(BrowserThread::UI));
   std::string script = JsReplace(kAddSpeculationRuleScript, prerendering_url);
 
@@ -287,6 +304,8 @@
 
 void PrerenderTestHelper::NavigatePrerenderedPage(int host_id,
                                                   const GURL& gurl) {
+  TRACE_EVENT("test", "PrerenderTestHelper::NavigatePrerenderedPage", "host_id",
+              host_id, "url", gurl);
   auto* prerender_host = GetPrerenderHostById(GetWebContents(), host_id);
   ASSERT_NE(prerender_host, nullptr);
   RenderFrameHostImpl* prerender_render_frame_host =
@@ -309,6 +328,8 @@
 // static
 void PrerenderTestHelper::NavigatePrimaryPage(WebContents& web_contents,
                                               const GURL& gurl) {
+  TRACE_EVENT("test", "PrerenderTestHelper::NavigatePrimaryPage",
+              "web_contents", web_contents, "url", gurl);
   if (web_contents.IsLoading()) {
     // Ensure that any ongoing navigation is complete prior to the construction
     // of |observer| below (this navigation may complete while executing ExecJs
@@ -379,6 +400,8 @@
 }
 
 void PrerenderTestHelper::WaitForRequest(const GURL& url, int count) {
+  TRACE_EVENT("test", "PrerenderTestHelper::WaitForRequest", "url", url,
+              "count", count);
   for (;;) {
     base::RunLoop run_loop;
     {
diff --git a/content/renderer/accessibility/render_accessibility_impl.cc b/content/renderer/accessibility/render_accessibility_impl.cc
index adf9cd1..a315ae2 100644
--- a/content/renderer/accessibility/render_accessibility_impl.cc
+++ b/content/renderer/accessibility/render_accessibility_impl.cc
@@ -358,8 +358,13 @@
     case ax::mojom::Action::kSetSelection:
       anchor->SetSelection(anchor.get(), data.anchor_offset, focus.get(),
                            data.focus_offset);
-      HandleAXEvent(
-          ui::AXEvent(root.AxID(), ax::mojom::Event::kLayoutComplete));
+      // Selection alters layout, so update layout before firing an
+      // event or we'll hit an assertion failure when trying to access
+      // |root| because layout isn't clean.
+      if (root.MaybeUpdateLayoutAndCheckValidity()) {
+        HandleAXEvent(
+            ui::AXEvent(root.AxID(), ax::mojom::Event::kLayoutComplete));
+      }
       break;
     case ax::mojom::Action::kScrollToMakeVisible:
       target->ScrollToMakeVisibleWithSubFocus(
@@ -448,7 +453,8 @@
     const WebAXObject& obj,
     bool subtree,
     ax::mojom::Action event_from_action,
-    std::vector<ui::AXEventIntent> event_intents) {
+    std::vector<ui::AXEventIntent> event_intents,
+    ax::mojom::Event event_type) {
   DCHECK(obj.AccessibilityIsIncludedInTree())
       << "Cannot serialize unincluded object: " << obj.ToString(true).Utf8();
   EnqueueDirtyObject(obj, ax::mojom::EventFrom::kAction, event_from_action,
@@ -458,7 +464,9 @@
     serializer_->InvalidateSubtree(obj);
 
   // If the event occurred on the focused object, process immediately.
-  if (obj.IsFocused())
+  // kLayoutComplete is an exception because it always fires on the root
+  // object but it doesn't imply immediate processing is needed.
+  if (obj.IsFocused() && event_type != ax::mojom::Event::kLayoutComplete)
     event_schedule_mode_ = EventScheduleMode::kProcessEventsImmediately;
 
   ScheduleSendPendingAccessibilityEvents();
@@ -506,9 +514,10 @@
   if (IsImmediateProcessingRequiredForEvent(event))
     event_schedule_mode_ = EventScheduleMode::kProcessEventsImmediately;
 
-  if (ShouldSerializeNodeForEvent(obj, event))
+  if (ShouldSerializeNodeForEvent(obj, event)) {
     MarkWebAXObjectDirty(obj, false, event.event_from_action,
-                         event.event_intents);
+                         event.event_intents, event.event_type);
+  }
 
   ScheduleSendPendingAccessibilityEvents();
 }
@@ -597,17 +606,6 @@
   if (obj.IsDetached())
     return false;
 
-  // If we were to return true for kLayoutComplete, that means calling
-  // MarkWebAXObjectDirty on the root node (since kLayoutComplete is fired
-  // on the root), and because the root is focusable, MarkWebAXObjectDirty
-  // sets the event schedule mode to kProcessEventsImmediately, which is
-  // inefficient. So it's best to not actually serialize a node in response
-  // to a kLayoutComplete event, but note that it will still ensure that a
-  // lower-priority update is scheduled, which will serialize any nodes whose
-  // bounding boxes have changed.
-  if (event.event_type == ax::mojom::Event::kLayoutComplete)
-    return false;
-
   if (event.event_type == ax::mojom::Event::kTextSelectionChanged &&
       !obj.IsAtomicTextField()) {
     // Selection changes on non-atomic text fields cause no change to the
diff --git a/content/renderer/accessibility/render_accessibility_impl.h b/content/renderer/accessibility/render_accessibility_impl.h
index 765c2a9..1e9440f 100644
--- a/content/renderer/accessibility/render_accessibility_impl.h
+++ b/content/renderer/accessibility/render_accessibility_impl.h
@@ -125,8 +125,8 @@
       const blink::WebAXObject& obj,
       bool subtree,
       ax::mojom::Action event_from_action = ax::mojom::Action::kNone,
-      std::vector<ui::AXEventIntent> event_intents = {});
-
+      std::vector<ui::AXEventIntent> event_intents = {},
+      ax::mojom::Event event_type = ax::mojom::Event::kNone);
 
   // Returns the main top-level document for this page, or NULL if there's
   // no view or frame.
diff --git a/crypto/scoped_capi_types.h b/crypto/scoped_capi_types.h
index f98dff8..19bca169 100644
--- a/crypto/scoped_capi_types.h
+++ b/crypto/scoped_capi_types.h
@@ -7,6 +7,8 @@
 
 #include <windows.h>
 
+#include <memory>
+
 #include "base/check.h"
 #include "base/macros.h"
 #include "base/scoped_generic.h"
@@ -53,6 +55,9 @@
 using ScopedHCRYPTHASH =
     base::ScopedGeneric<HCRYPTHASH, CAPITraits<HCRYPTHASH, CryptDestroyHash>>;
 
+using ScopedHCRYPTMSG =
+    base::ScopedGeneric<HCRYPTMSG, CAPITraits<HCRYPTMSG, CryptMsgClose>>;
+
 struct ChainEngineTraits {
   static HCERTCHAINENGINE InvalidValue() { return nullptr; }
   static void Free(HCERTCHAINENGINE engine) {
@@ -63,6 +68,26 @@
 using ScopedHCERTCHAINENGINE =
     base::ScopedGeneric<HCERTCHAINENGINE, ChainEngineTraits>;
 
+struct FreeCertContextFunctor {
+  void operator()(PCCERT_CONTEXT context) const {
+    if (context)
+      CertFreeCertificateContext(context);
+  }
+};
+
+using ScopedPCCERT_CONTEXT =
+    std::unique_ptr<const CERT_CONTEXT, FreeCertContextFunctor>;
+
+struct FreeCertChainContextFunctor {
+  void operator()(PCCERT_CHAIN_CONTEXT chain_context) const {
+    if (chain_context)
+      CertFreeCertificateChain(chain_context);
+  }
+};
+
+using ScopedPCCERT_CHAIN_CONTEXT =
+    std::unique_ptr<const CERT_CHAIN_CONTEXT, FreeCertChainContextFunctor>;
+
 }  // namespace crypto
 
 #endif  // CRYPTO_SCOPED_CAPI_TYPES_H_
diff --git a/device/udev_linux/udev0_loader.cc b/device/udev_linux/udev0_loader.cc
index fb11ec63..0c8ac949 100644
--- a/device/udev_linux/udev0_loader.cc
+++ b/device/udev_linux/udev0_loader.cc
@@ -6,6 +6,7 @@
 
 #include <memory>
 
+#include "base/debug/dump_without_crashing.h"
 #include "library_loaders/libudev0.h"
 
 namespace device {
@@ -18,6 +19,9 @@
   if (lib_loader_)
     return lib_loader_->loaded();
   lib_loader_ = std::make_unique<LibUdev0Loader>();
+  // TODO(crbug.com/1237497): Remove the next line if it triggers. Remove this
+  // entire file if it does not.
+  base::debug::DumpWithoutCrashing();
   return lib_loader_->Load("libudev.so.0");
 }
 
diff --git a/extensions/buildflags/buildflags.gni b/extensions/buildflags/buildflags.gni
index 170453ba..c1f1165 100644
--- a/extensions/buildflags/buildflags.gni
+++ b/extensions/buildflags/buildflags.gni
@@ -3,7 +3,7 @@
 # found in the LICENSE file.
 
 declare_args() {
-  enable_extensions = !is_android && !is_ios && !is_fuchsia
+  enable_extensions = !is_android && !is_ios
 
   # Compile time flag for the Autofill Assistant API.
   # WARNING: This must not be enabled in official builds.
diff --git a/headless/lib/browser/headless_clipboard.h b/headless/lib/browser/headless_clipboard.h
index 2956529e..80e2e0b 100644
--- a/headless/lib/browser/headless_clipboard.h
+++ b/headless/lib/browser/headless_clipboard.h
@@ -21,6 +21,8 @@
 class HeadlessClipboard : public ui::Clipboard {
  public:
   HeadlessClipboard();
+  HeadlessClipboard(const HeadlessClipboard&) = delete;
+  HeadlessClipboard& operator=(const HeadlessClipboard&) = delete;
   ~HeadlessClipboard() override;
 
  private:
@@ -125,8 +127,6 @@
 
   ui::ClipboardBuffer default_store_buffer_;
   mutable std::map<ui::ClipboardBuffer, DataStore> stores_;
-
-  DISALLOW_COPY_AND_ASSIGN(HeadlessClipboard);
 };
 
 }  // namespace headless
diff --git a/infra/config/dev/dev.star b/infra/config/dev/dev.star
index 767e20f..0f5d37e8 100644
--- a/infra/config/dev/dev.star
+++ b/infra/config/dev/dev.star
@@ -60,8 +60,6 @@
 luci.builder.defaults.experiments.set({
     # Launch Swarming tasks in "realms-aware mode", crbug.com/1136313.
     "luci.use_realms": 100,
-    # Enable resultsink for dev swarming tasks.
-    "chromium.resultdb.result_sink": 100,
 })
 luci.builder.defaults.test_presentation.set(resultdb.test_presentation(grouping_keys = ["status", "v.test_suite"]))
 
diff --git a/infra/config/generated/cr-buildbucket-dev.cfg b/infra/config/generated/cr-buildbucket-dev.cfg
index b490ea37..08d8081 100644
--- a/infra/config/generated/cr-buildbucket-dev.cfg
+++ b/infra/config/generated/cr-buildbucket-dev.cfg
@@ -58,10 +58,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -114,10 +110,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -170,10 +162,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -233,10 +221,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -290,10 +274,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -346,10 +326,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -402,10 +378,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -458,10 +430,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg
index 877cdbc2..59d421d 100644
--- a/infra/config/generated/cr-buildbucket.cfg
+++ b/infra/config/generated/cr-buildbucket.cfg
@@ -76,18 +76,6 @@
       build_numbers: YES
       service_account: "chromium-cipd-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -174,18 +162,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -272,18 +248,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -370,18 +334,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -468,18 +420,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -566,18 +506,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -664,18 +592,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -762,18 +678,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -860,18 +764,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -962,18 +854,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1066,18 +946,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1168,18 +1036,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1270,18 +1126,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1372,18 +1216,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1474,18 +1306,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1576,18 +1396,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1678,18 +1486,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1780,18 +1576,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1882,18 +1666,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -1984,18 +1756,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2086,18 +1846,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2187,18 +1935,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2289,18 +2025,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2391,18 +2115,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2493,18 +2205,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2595,18 +2295,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2697,18 +2385,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2795,18 +2471,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -2897,18 +2561,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3003,18 +2655,6 @@
         value: 50
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3107,18 +2747,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3209,18 +2837,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3311,18 +2927,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3413,18 +3017,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3509,18 +3101,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3611,18 +3191,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3713,18 +3281,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3815,18 +3371,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -3917,18 +3461,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4019,18 +3551,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4121,18 +3641,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4219,18 +3727,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4327,18 +3823,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4423,18 +3907,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4519,18 +3991,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4617,18 +4077,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4715,18 +4163,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4807,18 +4243,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4899,18 +4323,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -4991,18 +4403,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5083,18 +4483,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5178,18 +4566,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5273,18 +4649,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5365,18 +4729,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5457,18 +4809,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5549,18 +4889,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5641,18 +4969,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5733,18 +5049,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5831,18 +5135,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -5929,18 +5221,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6027,18 +5307,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6119,18 +5387,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6211,18 +5467,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6303,18 +5547,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6395,18 +5627,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6493,18 +5713,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6591,18 +5799,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6683,18 +5879,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6775,18 +5959,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6867,18 +6039,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -6959,18 +6119,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7061,18 +6209,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7163,18 +6299,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7264,18 +6388,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7366,18 +6478,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7468,18 +6568,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7570,18 +6658,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7672,18 +6748,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7774,18 +6838,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7876,18 +6928,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -7978,18 +7018,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8080,18 +7108,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8179,18 +7195,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8278,18 +7282,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8380,18 +7372,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8482,18 +7462,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8584,18 +7552,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8686,18 +7642,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8788,18 +7732,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8890,18 +7822,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -8991,18 +7911,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9092,18 +8000,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9190,18 +8086,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9288,18 +8172,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9389,18 +8261,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9490,18 +8350,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9586,18 +8434,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9682,18 +8518,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9784,18 +8608,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9882,18 +8694,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -9980,18 +8780,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10078,18 +8866,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10176,18 +8952,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10273,18 +9037,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10371,18 +9123,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10469,18 +9209,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10567,18 +9295,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10665,18 +9381,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10763,18 +9467,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10861,18 +9553,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -10957,18 +9637,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11054,18 +9722,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11156,18 +9812,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11258,18 +9902,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11360,18 +9992,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11466,18 +10086,6 @@
         value: 20
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11565,18 +10173,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11663,18 +10259,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11761,18 +10345,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11863,18 +10435,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -11965,18 +10525,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12063,18 +10611,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12161,18 +10697,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12262,18 +10786,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12363,18 +10875,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12465,18 +10965,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12567,18 +11055,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12669,18 +11145,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12770,18 +11234,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12872,18 +11324,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -12974,18 +11414,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13069,18 +11497,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13165,18 +11581,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13261,18 +11665,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13357,18 +11749,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13459,18 +11839,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13555,18 +11923,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13651,18 +12007,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13747,18 +12091,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13843,18 +12175,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -13945,18 +12265,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14041,18 +12349,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14137,18 +12433,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14233,18 +12517,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14329,18 +12601,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14431,18 +12691,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14533,18 +12781,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14635,18 +12871,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14737,18 +12961,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14839,18 +13051,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -14934,18 +13134,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15036,18 +13224,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15134,18 +13310,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15234,18 +13398,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15336,18 +13488,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15438,18 +13578,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15540,18 +13668,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15642,18 +13758,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15737,18 +13841,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15839,18 +13931,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -15937,18 +14017,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16039,18 +14107,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16141,18 +14197,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16239,18 +14283,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16337,18 +14369,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16433,18 +14453,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16529,18 +14537,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16628,18 +14624,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16728,18 +14712,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16826,18 +14798,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -16924,18 +14884,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17018,18 +14966,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17113,18 +15049,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17209,18 +15133,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17305,18 +15217,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17401,18 +15301,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17497,18 +15385,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17596,18 +15472,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17692,18 +15556,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17788,18 +15640,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17884,18 +15724,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -17980,18 +15808,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18076,18 +15892,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18172,18 +15976,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18271,18 +16063,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18367,18 +16147,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18462,18 +16230,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18557,18 +16313,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18652,18 +16396,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18747,18 +16479,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18842,18 +16562,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -18937,18 +16645,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19032,18 +16728,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19127,18 +16811,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19222,18 +16894,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19317,18 +16977,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19412,18 +17060,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19507,18 +17143,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19609,18 +17233,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19711,18 +17323,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19809,18 +17409,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -19907,18 +17495,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20005,18 +17581,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20102,18 +17666,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20204,18 +17756,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20306,18 +17846,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20408,18 +17936,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20506,18 +18022,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20604,18 +18108,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20705,18 +18197,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20803,18 +18283,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -20903,18 +18371,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21004,18 +18460,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21104,18 +18548,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21204,18 +18636,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21305,18 +18725,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21405,18 +18813,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21502,18 +18898,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21598,18 +18982,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21694,18 +19066,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21790,18 +19150,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21886,18 +19234,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -21982,18 +19318,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22078,18 +19402,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22174,18 +19486,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22270,18 +19570,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22366,18 +19654,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22462,18 +19738,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22558,18 +19822,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22654,18 +19906,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22750,18 +19990,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22845,18 +20073,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -22941,18 +20157,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23037,18 +20241,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23133,18 +20325,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23229,18 +20409,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23325,18 +20493,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23422,18 +20578,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23519,18 +20663,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23616,18 +20748,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23713,18 +20833,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23809,18 +20917,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -23904,18 +21000,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24000,18 +21084,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24096,18 +21168,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24192,18 +21252,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24288,18 +21336,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24384,18 +21420,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24479,18 +21503,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24575,18 +21587,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24671,18 +21671,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24767,18 +21755,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24867,18 +21843,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -24967,18 +21931,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25065,18 +22017,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25163,18 +22103,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25261,18 +22189,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25359,18 +22275,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25457,18 +22361,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25559,18 +22451,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25661,18 +22541,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25763,18 +22631,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25863,18 +22719,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -25960,18 +22804,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26061,18 +22893,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26158,18 +22978,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26255,18 +23063,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26355,18 +23151,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26455,18 +23239,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26555,18 +23327,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26656,18 +23416,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26753,18 +23501,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26852,18 +23588,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -26948,18 +23672,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27044,18 +23756,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27140,18 +23840,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27236,18 +23924,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27332,18 +24008,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27428,18 +24092,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27524,18 +24176,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27620,18 +24260,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27716,18 +24344,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27812,18 +24428,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -27914,18 +24518,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28010,18 +24602,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28110,18 +24690,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28210,18 +24778,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28301,18 +24857,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28396,18 +24940,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28491,18 +25023,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28592,18 +25112,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28688,18 +25196,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28784,18 +25280,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28880,18 +25364,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -28981,18 +25453,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29082,18 +25542,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29183,18 +25631,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29285,18 +25721,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29383,18 +25807,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29485,18 +25897,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29583,18 +25983,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29678,18 +26066,6 @@
       build_numbers: YES
       service_account: "chromium-cipd-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29777,18 +26153,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29870,18 +26234,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -29969,18 +26321,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30062,18 +26402,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30163,18 +26491,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30264,18 +26580,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30366,18 +26670,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30469,18 +26761,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30573,18 +26853,6 @@
       build_numbers: YES
       service_account: "chromium-cipd-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30671,18 +26939,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30769,18 +27025,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30871,18 +27115,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -30973,18 +27205,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31078,18 +27298,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31183,18 +27391,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31285,18 +27481,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31387,18 +27571,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31489,18 +27661,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31591,18 +27751,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31693,18 +27841,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31795,18 +27931,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31897,18 +28021,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -31999,18 +28111,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32097,18 +28197,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32199,18 +28287,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32272,6 +28348,7 @@
         '{'
         '  "$build/goma": {'
         '    "enable_ats": true,'
+        '    "jobs": 150,'
         '    "rpc_extra_params": "?prod",'
         '    "server_host": "goma.chromium.org",'
         '    "use_luci_auth": true'
@@ -32290,25 +28367,16 @@
         '      "v.test_suite"'
         '    ]'
         '  },'
-        '  "builder_group": "chromium.android.fyi",'
-        '  "recipe": "chromium"'
+        '  "builder_group": "chromium.android",'
+        '  "recipe": "chromium",'
+        '  "sheriff_rotations": ['
+        '    "android"'
+        '  ]'
         '}'
       execution_timeout_secs: 10800
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32399,18 +28467,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32501,18 +28557,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32603,18 +28647,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32705,18 +28737,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32807,18 +28827,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -32909,18 +28917,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33011,18 +29007,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33111,18 +29095,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33213,18 +29185,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33315,18 +29275,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33417,18 +29365,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33515,18 +29451,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33614,18 +29538,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33716,18 +29628,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -33906,18 +29806,6 @@
       build_numbers: YES
       service_account: "chromium-cipd-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34004,18 +29892,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34102,18 +29978,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34204,18 +30068,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34306,18 +30158,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34408,18 +30248,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34506,18 +30334,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34604,18 +30420,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34702,18 +30506,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34804,18 +30596,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -34906,18 +30686,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35004,18 +30772,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35102,18 +30858,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35200,18 +30944,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35301,18 +31033,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35402,18 +31122,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35503,18 +31211,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35604,18 +31300,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35705,18 +31389,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35803,18 +31475,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -35903,18 +31563,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36004,18 +31652,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36102,18 +31738,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36203,18 +31827,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36304,18 +31916,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36405,18 +32005,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36504,18 +32092,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36606,18 +32182,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36707,18 +32271,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36805,18 +32357,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -36903,18 +32443,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37001,18 +32529,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37099,18 +32615,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37197,18 +32701,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37297,18 +32789,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37399,18 +32879,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37501,18 +32969,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37602,18 +33058,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37695,18 +33139,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37795,18 +33227,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -37899,18 +33319,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38003,18 +33411,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38112,18 +33508,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38212,18 +33596,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38316,18 +33688,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38416,18 +33776,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38520,18 +33868,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38620,18 +33956,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38720,18 +34044,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38820,18 +34132,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -38920,18 +34220,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39020,18 +34308,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39120,18 +34396,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39246,18 +34510,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39347,18 +34599,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39445,18 +34685,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39545,18 +34773,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39643,18 +34859,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39744,18 +34948,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39843,18 +35035,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -39942,18 +35122,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40035,18 +35203,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40128,18 +35284,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40221,18 +35365,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40314,18 +35446,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40412,18 +35532,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40513,18 +35621,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40614,18 +35710,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40743,18 +35827,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40860,18 +35932,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -40958,18 +36018,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41060,18 +36108,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41162,18 +36198,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41260,18 +36284,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41358,18 +36370,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41456,18 +36456,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41554,18 +36542,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41648,18 +36624,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41742,18 +36706,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41843,18 +36795,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -41948,18 +36888,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42049,18 +36977,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42150,18 +37066,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42251,18 +37155,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42349,18 +37241,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42447,18 +37327,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42552,18 +37420,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42649,18 +37505,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42746,18 +37590,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42844,18 +37676,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -42949,18 +37769,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43051,18 +37859,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43149,18 +37945,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43244,18 +38028,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43342,18 +38114,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43443,18 +38203,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43541,18 +38289,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43641,18 +38377,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43746,18 +38470,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43847,18 +38559,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -43945,18 +38645,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44043,18 +38731,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44141,18 +38817,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44242,18 +38906,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44340,18 +38992,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44437,18 +39077,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44534,18 +39162,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44634,18 +39250,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44736,18 +39340,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44833,18 +39425,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -44931,18 +39511,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45032,18 +39600,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45133,18 +39689,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45234,18 +39778,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45335,18 +39867,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45437,18 +39957,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45539,18 +40047,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45637,18 +40133,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45733,18 +40217,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45832,18 +40304,6 @@
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experimental: YES
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -45931,18 +40391,6 @@
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experimental: YES
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46030,18 +40478,6 @@
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experimental: YES
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46132,18 +40568,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46225,18 +40649,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46318,18 +40730,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46414,18 +40814,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46507,18 +40895,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46603,18 +40979,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46696,18 +41060,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46789,18 +41141,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46882,18 +41222,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -46981,18 +41309,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47080,18 +41396,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47179,18 +41483,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47278,18 +41570,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47373,18 +41653,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47471,18 +41739,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47566,18 +41822,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47664,18 +41908,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47762,18 +41994,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47866,18 +42086,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -47962,18 +42170,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48058,18 +42254,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48156,18 +42340,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48254,18 +42426,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48350,18 +42510,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48446,18 +42594,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48544,18 +42680,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48639,18 +42763,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48734,18 +42846,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48830,18 +42930,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -48928,18 +43016,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49026,18 +43102,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49124,18 +43188,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49222,18 +43274,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49320,18 +43360,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49418,18 +43446,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49516,18 +43532,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49614,18 +43618,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49712,18 +43704,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49810,18 +43790,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -49908,18 +43876,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50006,18 +43962,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50108,18 +44052,6 @@
       build_numbers: YES
       service_account: "component-mapping-updater@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50198,18 +44130,6 @@
       build_numbers: YES
       service_account: "chromium-cipd-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50297,18 +44217,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50396,18 +44304,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50495,18 +44391,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50594,18 +44478,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50692,18 +44564,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50792,18 +44652,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50892,18 +44740,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -50994,18 +44830,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51092,18 +44916,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51190,18 +45002,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51291,18 +45091,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51392,18 +45180,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51492,18 +45268,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51589,18 +45353,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51687,18 +45439,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51788,18 +45528,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51889,18 +45617,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -51990,18 +45706,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52091,18 +45795,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52192,18 +45884,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52293,18 +45973,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52394,18 +46062,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52492,18 +46148,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52590,18 +46234,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52688,18 +46320,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52781,18 +46401,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52874,18 +46482,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -52967,18 +46563,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53060,18 +46644,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53165,18 +46737,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53263,18 +46823,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53361,18 +46909,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53459,18 +46995,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53559,18 +47083,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53659,18 +47171,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53757,18 +47257,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53857,18 +47345,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -53955,18 +47431,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54053,18 +47517,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54151,18 +47603,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54249,18 +47689,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54342,18 +47770,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54435,18 +47851,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54528,18 +47932,6 @@
       build_numbers: YES
       service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54626,18 +48018,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54724,18 +48104,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54843,14 +48211,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -54942,14 +48302,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -55041,14 +48393,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -55140,14 +48484,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -55239,14 +48575,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -55338,14 +48666,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -58152,18 +51472,6 @@
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.gtests_local"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -58328,14 +51636,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -58437,14 +51737,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -58546,14 +51838,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -58655,14 +51939,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -58764,14 +52040,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -58873,14 +52141,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -58982,14 +52242,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59091,14 +52343,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59214,14 +52458,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59323,14 +52559,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59432,14 +52660,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59541,14 +52761,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59650,14 +52862,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59759,14 +52963,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59868,14 +53064,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -59985,14 +53173,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60095,14 +53275,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60204,14 +53376,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60314,14 +53478,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60423,14 +53579,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60532,14 +53680,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60641,14 +53781,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60750,14 +53882,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60863,14 +53987,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -60976,14 +54092,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61085,14 +54193,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61195,14 +54295,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61304,14 +54396,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61414,14 +54498,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61523,14 +54599,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61632,14 +54700,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61741,14 +54801,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61850,14 +54902,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -61959,14 +55003,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62068,14 +55104,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62177,14 +55205,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62286,14 +55306,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62395,14 +55407,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62504,14 +55508,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62613,14 +55609,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62722,14 +55710,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62831,14 +55811,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -62940,14 +55912,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63049,14 +56013,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63159,14 +56115,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63268,14 +56216,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63377,14 +56317,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63487,14 +56419,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63596,14 +56520,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63705,14 +56621,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63814,14 +56722,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -63922,14 +56822,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64031,14 +56923,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64140,14 +57024,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64249,14 +57125,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64358,14 +57226,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64464,14 +57324,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64599,14 +57451,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64716,14 +57560,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64824,14 +57660,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -64933,14 +57761,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65041,14 +57861,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65150,14 +57962,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65259,14 +58063,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65368,14 +58164,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65476,14 +58264,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65585,14 +58365,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65693,14 +58465,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65802,14 +58566,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -65910,14 +58666,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66019,14 +58767,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66128,14 +58868,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66236,14 +58968,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66343,14 +59067,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66449,14 +59165,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66555,14 +59263,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66662,14 +59362,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66769,14 +59461,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66876,14 +59560,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -66983,14 +59659,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67092,14 +59760,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67201,14 +59861,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67310,14 +59962,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67419,14 +60063,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67528,14 +60164,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67637,14 +60265,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67746,14 +60366,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67855,14 +60467,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -67964,14 +60568,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68073,14 +60669,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68182,14 +60770,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68290,14 +60870,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68398,14 +60970,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68506,14 +61070,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68614,14 +61170,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68719,14 +61267,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68824,14 +61364,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -68929,14 +61461,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69034,14 +61558,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69139,14 +61655,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69244,14 +61752,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69349,14 +61849,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69454,14 +61946,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69559,14 +62043,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69664,14 +62140,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69769,14 +62237,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69874,14 +62334,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -69979,14 +62431,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70084,14 +62528,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70189,14 +62625,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70294,14 +62722,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70399,14 +62819,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70504,14 +62916,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70609,14 +63013,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70714,14 +63110,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70819,14 +63207,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -70924,14 +63304,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71029,14 +63401,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71134,14 +63498,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71239,14 +63595,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71344,14 +63692,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71447,14 +63787,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71550,14 +63882,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71653,14 +63977,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71756,14 +64072,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71859,14 +64167,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -71962,14 +64262,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72065,14 +64357,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72168,14 +64452,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72271,14 +64547,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72374,14 +64642,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72477,14 +64737,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72580,14 +64832,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72683,14 +64927,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72788,14 +65024,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72893,14 +65121,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -72998,14 +65218,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73103,14 +65315,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73208,14 +65412,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73313,14 +65509,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73418,14 +65606,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73523,14 +65703,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73628,14 +65800,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73733,14 +65897,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73838,14 +65994,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -73943,14 +66091,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74048,14 +66188,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74153,14 +66285,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74258,14 +66382,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74363,14 +66479,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74466,14 +66574,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74569,14 +66669,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74674,14 +66766,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74782,14 +66866,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -74893,14 +66969,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75012,14 +67080,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75123,14 +67183,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75242,14 +67294,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75353,14 +67397,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75464,14 +67500,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75575,14 +67603,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75693,14 +67713,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75804,14 +67816,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -75915,14 +67919,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76026,14 +68022,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76137,14 +68125,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76245,14 +68225,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76353,14 +68325,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76462,14 +68426,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76571,14 +68527,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76683,14 +68631,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76792,14 +68732,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -76901,14 +68833,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77010,14 +68934,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77119,14 +69035,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77228,14 +69136,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77337,14 +69237,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77447,14 +69339,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77556,14 +69440,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77665,14 +69541,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77774,14 +69642,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77883,14 +69743,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -77992,14 +69844,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78101,14 +69945,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78206,14 +70042,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78315,14 +70143,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78423,14 +70243,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78532,14 +70344,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78641,14 +70445,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78754,14 +70550,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78870,14 +70658,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -78980,14 +70760,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79090,14 +70862,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79197,14 +70961,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79306,14 +71062,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79415,14 +71163,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79524,14 +71264,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79627,14 +71359,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79736,14 +71460,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79845,14 +71561,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -79955,14 +71663,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80064,14 +71764,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80173,14 +71865,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80281,14 +71965,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80390,14 +72066,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80499,14 +72167,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80608,14 +72268,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80716,14 +72368,6 @@
         value: 50
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80825,14 +72469,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -80941,14 +72577,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81056,14 +72684,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81168,14 +72788,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81280,14 +72892,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81392,14 +72996,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81498,14 +73094,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81604,14 +73192,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81710,14 +73290,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81816,14 +73388,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -81926,14 +73490,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82035,14 +73591,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82144,14 +73692,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82253,14 +73793,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82362,14 +73894,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82471,14 +73995,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82581,14 +74097,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82690,14 +74198,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82799,14 +74299,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -82908,14 +74400,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83017,14 +74501,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83127,14 +74603,6 @@
         value: 50
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83236,14 +74704,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83346,14 +74806,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83456,14 +74908,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83565,14 +75009,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83674,14 +75110,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83783,14 +75211,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -83896,14 +75316,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84005,14 +75417,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84118,14 +75522,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84228,14 +75624,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84337,14 +75725,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84446,14 +75826,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84555,14 +75927,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84664,14 +76028,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84773,14 +76129,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84882,14 +76230,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -84990,14 +76330,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85093,14 +76425,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85202,14 +76526,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85309,14 +76625,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85416,14 +76724,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85524,14 +76824,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85630,14 +76922,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85737,14 +77021,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85843,14 +77119,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -85950,14 +77218,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86061,14 +77321,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86172,14 +77424,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86275,14 +77519,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86381,14 +77617,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86487,14 +77715,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86594,14 +77814,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86701,14 +77913,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86808,14 +78012,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -86915,14 +78111,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87022,14 +78210,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87129,14 +78309,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87236,14 +78408,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87343,14 +78507,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87450,14 +78606,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87557,14 +78705,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87664,14 +78804,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87771,14 +78903,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87879,14 +79003,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -87987,14 +79103,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88094,14 +79202,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88201,14 +79301,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88307,14 +79399,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88409,14 +79493,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88511,14 +79587,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88620,14 +79688,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88729,14 +79789,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88838,14 +79890,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -88947,14 +79991,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89056,14 +80092,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89165,14 +80193,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89274,14 +80294,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89383,14 +80395,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89492,14 +80496,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89601,14 +80597,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89711,14 +80699,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89824,14 +80804,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -89931,14 +80903,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90039,14 +81003,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90148,14 +81104,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90254,14 +81202,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90360,14 +81300,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90466,14 +81398,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90572,14 +81496,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90678,14 +81594,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90784,14 +81692,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90890,14 +81790,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -90999,14 +81891,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91108,14 +81992,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91217,14 +82093,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91330,14 +82198,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91439,14 +82299,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91548,14 +82400,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91657,14 +82501,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91772,14 +82608,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91881,14 +82709,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -91998,14 +82818,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92106,14 +82918,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92218,14 +83022,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92327,14 +83123,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92436,14 +83224,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92546,14 +83326,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92655,14 +83427,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92765,14 +83529,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92874,14 +83630,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -92983,14 +83731,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -93092,14 +83832,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -93201,14 +83933,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -93310,14 +84034,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -93412,14 +84128,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
@@ -93521,14 +84229,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.resultdb.result_sink"
-        value: 100
-      }
-      experiments {
-        key: "chromium.resultdb.result_sink.junit_tests"
-        value: 100
-      }
-      experiments {
         key: "luci.use_realms"
         value: 100
       }
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg
index 78933dd..e319769 100644
--- a/infra/config/generated/luci-milo.cfg
+++ b/infra/config/generated/luci-milo.cfg
@@ -2916,6 +2916,11 @@
     category: "cronet|asan"
   }
   builders {
+    name: "buildbucket/luci.chromium.ci/android-cronet-x86-dbg-10-tests"
+    category: "cronet|test"
+    short_name: "10"
+  }
+  builders {
     name: "buildbucket/luci.chromium.ci/android-cronet-arm-rel-kitkat-tests"
     category: "cronet|test"
     short_name: "k"
@@ -3461,11 +3466,6 @@
     short_name: "P"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/android-cronet-x86-dbg-10-tests"
-    category: "cronet|test"
-    short_name: "10"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/android-11-x86-fyi-rel"
     category: "emulator|11|x86"
     short_name: "rel"
diff --git a/infra/config/lib/ci.star b/infra/config/lib/ci.star
index 2f78ee9..cd5a6bd 100644
--- a/infra/config/lib/ci.star
+++ b/infra/config/lib/ci.star
@@ -117,11 +117,7 @@
         branches.value({branches.STANDARD_BRANCHES: "chrome_browser_release"}),
     )
 
-    # Enable "chromium.resultdb.result_sink" on ci builders.
     experiments = experiments or {}
-    experiments.setdefault("chromium.resultdb.result_sink", 100)
-    experiments.setdefault("chromium.resultdb.result_sink.junit_tests", 100)
-    experiments.setdefault("chromium.resultdb.result_sink.gtests_local", 100)
 
     goma_enable_ats = defaults.get_value_from_kwargs("goma_enable_ats", kwargs)
     if goma_enable_ats == args.COMPUTE:
diff --git a/infra/config/lib/try.star b/infra/config/lib/try.star
index d92c6b2..5074780 100644
--- a/infra/config/lib/try.star
+++ b/infra/config/lib/try.star
@@ -112,10 +112,7 @@
     if not branches.matches(branch_selector):
         return
 
-    # Enable "chromium.resultdb.result_sink" on try builders.
     experiments = experiments or {}
-    experiments.setdefault("chromium.resultdb.result_sink", 100)
-    experiments.setdefault("chromium.resultdb.result_sink.junit_tests", 100)
 
     merged_resultdb_bigquery_exports = [
         # TODO(crbug.com/1230801): Remove when all usages of this table have
diff --git a/infra/config/subprojects/chromium/ci.star b/infra/config/subprojects/chromium/ci.star
index 07ee0f3..a1d9cc1 100644
--- a/infra/config/subprojects/chromium/ci.star
+++ b/infra/config/subprojects/chromium/ci.star
@@ -857,7 +857,7 @@
     notifies = ["cronet"],
 )
 
-ci.android_fyi_builder(
+ci.android_builder(
     name = "android-cronet-x86-dbg-10-tests",
     console_view_entry = consoles.console_view_entry(
         category = "cronet|test",
diff --git a/ios/chrome/app/resources/BUILD.gn b/ios/chrome/app/resources/BUILD.gn
index 4debaf5..4e236c2 100644
--- a/ios/chrome/app/resources/BUILD.gn
+++ b/ios/chrome/app/resources/BUILD.gn
@@ -59,6 +59,7 @@
   sources = [
     "$root_gen_dir/components/components_resources.pak",
     "$root_gen_dir/components/dev_ui_components_resources.pak",
+    "$root_gen_dir/components/download_internals_resources.pak",
     "$root_gen_dir/components/sync_driver_sync_internals_resources.pak",
     "$root_gen_dir/ios/chrome/ios_resources.pak",
     "$root_gen_dir/ios/web/ios_web_resources.pak",
@@ -69,6 +70,7 @@
   ]
   deps = [
     ":ios_resources",
+    "//components/download/resources/download_internals:resources",
     "//components/resources",
     "//components/sync/driver/resources",
     "//ios/web:resources",
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb
index 39e7d30..32f2219 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Sekere byvoegings veroorsaak dat Chromium omval. Probeer om hulle te deïnstalleer:</translation>
 <translation id="2178608107313874732">Chromium kan nie nou jou kamera gebruik nie</translation>
 <translation id="2195025571279539885">Wil jy hê dat Chromium volgende keer moet aanbied om bladsye in <ph name="LANGUAGE_NAME" /> van hierdie werf af te vertaal?</translation>
+<translation id="2450140762465183767">Jy kan Chromium nou enige tyd gebruik wanneer jy op skakels in boodskappe, dokumente en ander programme tik.</translation>
+<translation id="2478931088402984578">Kies <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
 <translation id="2567507405773541360">Kry meer gedoen met 'n eenvoudige, veiliger Chromium wat vinniger as ooit vantevore is</translation>
 <translation id="2590893390871230428">Sinkroniseer jou Chromium-data</translation>
 <translation id="2650312721222849884">Skakel sinkronisering aan om jou oortjies te sien van waar ook al jy Chromium gebruik</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Chromium sal nie enige nuwe data na jou Google-rekening sinkroniseer nadat jy afgemeld het nie. Data wat voorheen gesinkroniseer is, bly in hierdie rekening.</translation>
 <translation id="9022552996538154597">Meld by Chromium aan</translation>
 <translation id="9089354809943900324">Chromium is verouderd</translation>
+<translation id="9110075932708282655">Gebruik Chromium by verstek</translation>
 <translation id="921174536258924340">Chromium kon nie alle wagwoorde nagaan nie. Probeer môre weer of <ph name="BEGIN_LINK" />gaan wagwoorde in jou Google-rekening na<ph name="END_LINK" />.</translation>
 <translation id="985602178874221306">Die Chromium-outeurs</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
index e274184c..504acb3 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Nogle tilføjelser får Chromium til at gå ned. Prøv at afinstallere:</translation>
 <translation id="2178608107313874732">Chromium kan ikke bruge dit kamera lige nu</translation>
 <translation id="2195025571279539885">Skal Chromium tilbyde at oversætte sider på <ph name="LANGUAGE_NAME" /> fra dette website næste gang?</translation>
+<translation id="2450140762465183767">Du kan nu bruge Chromium, hver gang du trykker på links i meddelelser, dokumenter og andre apps.</translation>
+<translation id="2478931088402984578">Vælg <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
 <translation id="2567507405773541360">Få mere fra hånden med Chromium, der er enkel, sikker og hurtigere end nogensinde</translation>
 <translation id="2590893390871230428">Synkroniser dine Chromium-data</translation>
 <translation id="2650312721222849884">Aktivér synkronisering for at se dine faner på alle de enheder, hvor du bruger Chromium</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Når du er logget ud, synkroniserer Chromium ikke nye data med din Google-konto. De data, der tidligere er blevet synkroniseret, forbliver på din konto.</translation>
 <translation id="9022552996538154597">Log ind på Chromium</translation>
 <translation id="9089354809943900324">Chromium er forældet</translation>
+<translation id="9110075932708282655">Brug Chromium som standard</translation>
 <translation id="921174536258924340">Chromium kunne ikke tjekke alle adgangskoder. Prøv igen i morgen, eller <ph name="BEGIN_LINK" />tjek adgangskoder på din Google-konto<ph name="END_LINK" />.</translation>
 <translation id="985602178874221306">Forfatterne til Chromium</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
index 2e104b37..07190b3 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Bizonyos bővítmények a Chromium összeomlását eredményezik. Távolítsa el a következőket:</translation>
 <translation id="2178608107313874732">A Chromium jelenleg nem tudja használni a kamerát</translation>
 <translation id="2195025571279539885">Szeretné, hogy a Chromium a jövőben felajánlja e webhely <ph name="LANGUAGE_NAME" /> nyelvű oldalainak fordítását?</translation>
+<translation id="2450140762465183767">Mostantól bármikor használhatja a Chromiumot, amikor üzenetekben, dokumentumokban és más alkalmazásokban linkekre kattint.</translation>
+<translation id="2478931088402984578">Válassza ki a <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /> böngészőt.</translation>
 <translation id="2567507405773541360">Még több mindent elvégezhet az egyszerű, biztonságos és minden eddiginél gyorsabb Chromium segítségével</translation>
 <translation id="2590893390871230428">Chromium-adatok szinkronizálása</translation>
 <translation id="2650312721222849884">Kapcsolja be a szinkronizálást, hogy bárhol hozzáférhessen a lapjaihoz, ahol a Chromiumot használja.</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Ha kijelentkezik, a Chromium nem fogja szinkronizálni az új adatokat az Ön Google-fiókjába. A korábban szinkronizált adatok megmaradnak a fiókban.</translation>
 <translation id="9022552996538154597">Bejelentkezés a Chromiumba</translation>
 <translation id="9089354809943900324">A Chromium elavult</translation>
+<translation id="9110075932708282655">A Chromium alapértelmezett használata</translation>
 <translation id="921174536258924340">A Chromium nem tudta ellenőrizni az összes jelszót. Próbálja újra holnap, vagy <ph name="BEGIN_LINK" />ellenőrizze jelszavait a Google-fiókjában<ph name="END_LINK" />.</translation>
 <translation id="985602178874221306">A Chromium szerzői</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
index 599a48fe..57cf20b 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">ບາງສ່ວນເສີມເຮັດໃຫ້ Chromium ຂັດຂ້ອງ. ກະລຸນາຖອນການຕິດຕັ້ງ:</translation>
 <translation id="2178608107313874732">Chromium ບໍ່ສາມາດໃຊ້ກ້ອງຖ່າຍຮູບຂອງທ່ານໄດ້ໃນຂະນະນີ້</translation>
 <translation id="2195025571279539885">ທ່ານຕ້ອງການໃຫ້ Chromium ສະເໜີແປໜ້າ <ph name="LANGUAGE_NAME" /> ຈາກເວັບໄຊນີ້ໃນຄັ້ງຕໍ່ໄປບໍ?</translation>
+<translation id="2450140762465183767">ຕອນນີ້ທ່ານສາມາດໃຊ້ Chromium ຕອນໃດກໍໄດ້ທີ່ທ່ານແຕະລິ້ງໃນຂໍ້ຄວາມ, ເອກະສານ ແລະ ແອັບອື່ນໆ.</translation>
+<translation id="2478931088402984578">ເລືອກ <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
 <translation id="2567507405773541360">ເຮັດສິ່ງຕ່າງໆໃຫ້ແລ້ວຫຼາຍຂຶ້ນດ້ວຍ Chromium ທີ່ງ່າຍ, ປອດໄພ ແລະ ໄວກວ່າທີ່ເຄີຍ</translation>
 <translation id="2590893390871230428">ຊິ້ງຂໍ້ມູນ Chromium ຂອງທ່ານ</translation>
 <translation id="2650312721222849884">ເພື່ອເຫັນແຖບຂອງທ່ານຈາກທຸກບ່ອນທີ່ທ່ານໃຊ້ Chromium, ກະລຸນາເປີດການຊິ້ງຂໍ້ມູນ</translation>
@@ -99,6 +101,7 @@
 <translation id="894437814105052438">ເມື່ອທ່ານອອກຈາກລະບົບ, Chromium ຈະບໍ່ຊິ້ງຂໍ້ມູນໃໝ່ໃດໆກັບບັນຊີ Google ຂອງທ່ານ. ຂໍ້ມູນທີ່ຊິ້ງໄວ້ກ່ອນໜ້າຈະຍັງຢູ່ໃນບັນຊີ.</translation>
 <translation id="9022552996538154597">ລົງຊື່ເຂົ້າ​ໃຊ້ Chromium</translation>
 <translation id="9089354809943900324">Chromium ຫຼ້າສະໄໝແລ້ວ</translation>
+<translation id="9110075932708282655">ໃຊ້ Chromium ເປັນຄ່າເລີ່ມຕົ້ນ</translation>
 <translation id="921174536258924340">Chromium ບໍ່ສາມາດກວດລະຫັດຜ່ານທັງໝົດໄດ້. ລອງໃໝ່ໃນມື້ອື່ນ ຫຼື <ph name="BEGIN_LINK" />ກວດລະຫັດຜ່ານໃນບັນຊີ Google ຂອງທ່ານ.<ph name="END_LINK" /></translation>
 <translation id="985602178874221306">ຜູ້ຂຽນ Chromium</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
index e9aa693a..c4aaeb5 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Naudojant kai kuriuos priedus „Chromium“ užstringa. Pašalinkite:</translation>
 <translation id="2178608107313874732">„Chromium“ šiuo metu negali naudoti fotoaparato</translation>
 <translation id="2195025571279539885">Ar norėtumėte, kad kitą kartą „Chromium“ būtų siūloma išversti šios svetainės puslapius <ph name="LANGUAGE_NAME" /> k.?</translation>
+<translation id="2450140762465183767">Dabar galite naudoti „Chromium“ bet kada palietę nuorodas pranešimuose, dokumentuose ir kitose programose.</translation>
+<translation id="2478931088402984578">Pasirinkite <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
 <translation id="2567507405773541360">Nuveikite daugiau naudodami paprastą, saugią ir spartesnę nei bet kada anksčiau „Chromium“</translation>
 <translation id="2590893390871230428">Sinchronizuoti „Chromium“ duomenis</translation>
 <translation id="2650312721222849884">Kad matytumėte skirtukus iš visų įrenginių, kuriuose naudojate „Chromium“, įjunkite sinchronizavimą</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Kai atsijungsite, „Chromium“ nesinchronizuos jokių naujų duomenų su jūsų „Google“ paskyra. Anksčiau sinchronizuoti duomenys lieka paskyroje.</translation>
 <translation id="9022552996538154597">Prisijungti prie „Chromium“</translation>
 <translation id="9089354809943900324">„Chromium“ versija yra pasenusi</translation>
+<translation id="9110075932708282655">„Chromium“ naudojimas pagal numatytuosius nustatymus</translation>
 <translation id="921174536258924340">„Chromium“ nepavyko patikrinti visų slaptažodžių. Bandykite dar kartą rytoj arba <ph name="BEGIN_LINK" />patikrinkite slaptažodžius „Google“ paskyroje<ph name="END_LINK" />.</translation>
 <translation id="985602178874221306">„Chromium“ autoriai</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
index 2de4cd1..81ae337 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Зарим нэмэлт онцлог нь Chromium-г эвдрэхэд хүргэдэг. Тиймээс тэдгээрийг устгана уу:</translation>
 <translation id="2178608107313874732">Chromium одоогоор таны камерыг ашиглах боломжгүй байна</translation>
 <translation id="2195025571279539885">Та дараагийн удаад Chromium-г энэ сайтаас <ph name="LANGUAGE_NAME" /> хуудсыг хөрвүүлэхийг зөвшөөрөх үү?</translation>
+<translation id="2450140762465183767">Та одоо Chromium-г хэзээд ч мессеж, документ болон бусад аппын холбоосыг товшин ашиглах боломжтой.</translation>
+<translation id="2478931088402984578"><ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" />-г сонгоно уу</translation>
 <translation id="2567507405773541360">Энгийн, аюулгүй бөгөөд урьд өмнөхөөс илүү хурдан Chromium-р илүү ихийг хийгээрэй</translation>
 <translation id="2590893390871230428">Chromium-н өгөгдлөө синк хийх</translation>
 <translation id="2650312721222849884">Та Chromium-г хаанаас ч ашигласан бай табуудаа харахын тулд синк хийхийг асаана уу</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Та гарсан үед Chromium таны Google Бүртгэлд ямар ч шинэ өгөгдөл синк хийхгүй. Өмнө нь синк хийсэн өгөгдөл бүртгэлд үлдэнэ.</translation>
 <translation id="9022552996538154597">Chromium дансандаа нэвтрэх</translation>
 <translation id="9089354809943900324">Chromium хуучирсан байна</translation>
+<translation id="9110075932708282655">Chromium-г өгөгдмөлөөр ашиглана уу</translation>
 <translation id="921174536258924340">Chromium бүх нууц үгийг шалгаж чадсангүй. Маргааш дахин оролдох буюу эсхүл <ph name="BEGIN_LINK" />Google Бүртгэлдээ байгаа нууц үгнүүдийг шалгана уу.<ph name="END_LINK" /></translation>
 <translation id="985602178874221306">Chromium-ыг бүтээгчид</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
index 51256d74..4d8f8f9 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Sommige add-ons kunnen ervoor zorgen dat Chromium crasht. Verwijder de volgende add-ons:</translation>
 <translation id="2178608107313874732">Chromium kan je camera momenteel niet gebruiken</translation>
 <translation id="2195025571279539885">Wil je dat Chromium de volgende keer aanbiedt om pagina's in het <ph name="LANGUAGE_NAME" /> op deze site te vertalen?</translation>
+<translation id="2450140762465183767">Je kunt Chromium nu gebruiken als je op links in berichten, documenten en andere apps tikt.</translation>
+<translation id="2478931088402984578">Selecteer <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" />.</translation>
 <translation id="2567507405773541360">Krijg meer gedaan met Chromium. Nu nog eenvoudiger, veiliger en sneller dan ooit</translation>
 <translation id="2590893390871230428">Je Chromium-gegevens synchroniseren</translation>
 <translation id="2650312721222849884">Zet de synchronisatie aan om je tabbladen te bekijken vanaf elk apparaat waarop je Chromium gebruikt</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Als je uitlogt, synchroniseert Chromium geen nieuwe gegevens met je Google-account. Eerder gesynchroniseerde gegevens blijven in het account staan.</translation>
 <translation id="9022552996538154597">Inloggen bij Chromium</translation>
 <translation id="9089354809943900324">Chromium is verouderd</translation>
+<translation id="9110075932708282655">Chromium standaard gebruiken</translation>
 <translation id="921174536258924340">Chromium kan niet alle wachtwoorden checken. Probeer het morgen opnieuw of <ph name="BEGIN_LINK" />check de wachtwoorden in je Google-account<ph name="END_LINK" />.</translation>
 <translation id="985602178874221306">De auteurs van Chromium</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
index 8786419..4ff1010 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Niektóre dodatki mogą powodować awarie Chromium. Odinstaluj je.</translation>
 <translation id="2178608107313874732">Chromium nie może teraz użyć aparatu</translation>
 <translation id="2195025571279539885">Czy następnym razem Chromium ma zaproponować Ci tłumaczenie stron tej witryny, których język to <ph name="LANGUAGE_NAME" />?</translation>
+<translation id="2450140762465183767">Teraz możesz używać Chromium za każdym razem, gdy klikniesz link w wiadomościach, dokumentach i w innych aplikacjach.</translation>
+<translation id="2478931088402984578">Wybierz <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
 <translation id="2567507405773541360">Zwiększ produktywność, korzystając z prostej, bezpiecznej i wyjątkowo szybkiej przeglądarki Chromium</translation>
 <translation id="2590893390871230428">Synchronizuj dane Chromium</translation>
 <translation id="2650312721222849884">Aby widzieć swoje karty zawsze, kiedy korzystasz z Chromium, włącz synchronizację</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Gdy się wylogujesz, Chromium nie zsynchronizuje żadnych nowych danych z Twoim kontem Google. Dane, które zostały zsynchronizowane wcześniej, pozostaną na koncie.</translation>
 <translation id="9022552996538154597">Zaloguj się w Chromium</translation>
 <translation id="9089354809943900324">Chromium jest nieaktualny</translation>
+<translation id="9110075932708282655">Używaj domyślnie Chromium</translation>
 <translation id="921174536258924340">Przeglądarce Chromium nie udało się sprawdzić wszystkich haseł. Spróbuj ponownie jutro lub <ph name="BEGIN_LINK" />sprawdź hasła na koncie Google<ph name="END_LINK" />.</translation>
 <translation id="985602178874221306">Autorzy Chromium</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
index 27f0e5183..ffd0ea7 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Unele suplimente blochează Chromium. Dezinstalează:</translation>
 <translation id="2178608107313874732">Momentan, Chromium nu poate folosi camera foto</translation>
 <translation id="2195025571279539885">Dorești ca data viitoare Chromium să propună traducerea paginilor în limba <ph name="LANGUAGE_NAME" /> de pe acest site?</translation>
+<translation id="2450140762465183767">Acum poți folosi Chromium oricând atingi linkuri în mesaje, documente și alte aplicații.</translation>
+<translation id="2478931088402984578">Selectează <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
 <translation id="2567507405773541360">Poți să faci mai multe cu browserul Chromium, simplu, sigur și mai rapid ca oricând</translation>
 <translation id="2590893390871230428">Sincronizează-ți datele din Chromium</translation>
 <translation id="2650312721222849884">Activează sincronizarea ca să vezi toate filele tale deschise în Chromium</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Când te deconectezi, Chromium nu va sincroniza datele noi cu Contul tău Google. Datele sincronizate anterior rămân în cont.</translation>
 <translation id="9022552996538154597">Conectați-vă la Chromium</translation>
 <translation id="9089354809943900324">Chromium nu este actualizat</translation>
+<translation id="9110075932708282655">Folosește Chromium în mod prestabilit</translation>
 <translation id="921174536258924340">Chromium nu a putut verifica toate parolele. Încearcă din nou mâine sau <ph name="BEGIN_LINK" />verifică parolele din Contul Google<ph name="END_LINK" />.</translation>
 <translation id="985602178874221306">The Chromium Authors</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
index 356cbbf7..f4e8394 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">Nekateri dodatki povzročajo zrušitve Chromiuma. Odstranite jih:</translation>
 <translation id="2178608107313874732">Chromium trenutno ne more uporabljati fotoaparata</translation>
 <translation id="2195025571279539885">Želite, da Chromium naslednjič ponudi prevod strani v jeziku <ph name="LANGUAGE_NAME" /> s tega spletnega mesta?</translation>
+<translation id="2450140762465183767">Zdaj lahko uporabljate Chromium, kadar koli se dotaknete povezav v sporočilih, dokumentih in drugih aplikacijah.</translation>
+<translation id="2478931088402984578">Izberite <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
 <translation id="2567507405773541360">Opravite več s preprostim in varnim Chromiumom, ki je hitrejši kot kdaj prej.</translation>
 <translation id="2590893390871230428">Sinhroniziranje podatkov v Chromiumu</translation>
 <translation id="2650312721222849884">Če si želite ogledati zavihke iz naprav, v katerih uporabljate Chromium, vklopite sinhronizacijo</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Če se odjavite, Chromium ne bo več sinhroniziral novih podatkov v račun Google. Predhodno sinhronizirani podatki ostanejo v računu.</translation>
 <translation id="9022552996538154597">Prijava v Chromium</translation>
 <translation id="9089354809943900324">Chromium je zastarel</translation>
+<translation id="9110075932708282655">Privzeto uporabljajte Chromium</translation>
 <translation id="921174536258924340">Chromiumu ni uspelo preveriti vseh gesel. Poskusite znova jutri ali <ph name="BEGIN_LINK" />preverite gesla v računu Google.<ph name="END_LINK" /></translation>
 <translation id="985602178874221306">Ustvarjalci Chromiuma</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
index f79f4ea..acab94f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
@@ -72,6 +72,7 @@
 <translation id="7018284295775193585">Chromium உலாவியைப் புதுப்பிக்க முடியாது</translation>
 <translation id="7045244423563602563">Chromiumமைப் பிரத்தியேகமாக்குங்கள்</translation>
 <translation id="7099326575020694068">Chromiumமால் காட்சிப் பிரிப்புப் பயன்முறையில் கேமராவைப் பயன்படுத்த முடியாது</translation>
+<translation id="7108914401277488191">Chromium மூலம் பலவற்றைச் செய்திடுங்கள்</translation>
 <translation id="7118091470949186573">இனி எப்போது வேண்டுமானாலும் மெசேஜ்கள், ஆவணங்கள், பிற ஆப்ஸ் ஆகியவற்றில் உள்ள இணைப்புகளை Chromiumமில் திறக்கலாம்.</translation>
 <translation id="7208566199746267865">கணக்குகளை இணையத்துடன் இணைத்து, Chromium உங்கள் நேரத்தைச் சேமிக்கும். அமைப்புகளில் கணக்குகளைச் சேர்க்கலாம் அல்லது அகற்றலாம்.</translation>
 <translation id="725427773388857052">தரவு மீறல்கள், பாதுகாப்பற்ற இணையதளங்கள் மற்றும் பல பாதுகாப்புச் சிக்கல்களிலிருந்து உங்களைப் பாதுகாக்க Chromium உதவும்.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
index 117bdf87..723c69af 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
@@ -72,6 +72,7 @@
 <translation id="7018284295775193585">Chromium అప్‌డేట్ అవ్వడం సాధ్యపడలేదు</translation>
 <translation id="7045244423563602563">Chromiumను మీకు నచ్చిన విధంగా తయారు చేసుకోండి</translation>
 <translation id="7099326575020694068">Chromium విభజన వీక్షణ మోడ్‌లో మీ కెమెరాను ఉపయోగించలేదు</translation>
+<translation id="7108914401277488191">Chromiumతో మరింత ప్రభావవంతంగా పనులు చేసుకోండి</translation>
 <translation id="7118091470949186573">మెసేజ్‌లు, డాక్యుమెంట్‌లు, ఇతర యాప్‌లలో లింక్‌లను ట్యాప్ చేయడం ద్వారా మీరు ఎప్పుడైనా Chromiumను ఉపయోగించవచ్చు.</translation>
 <translation id="7208566199746267865">మీ ఖాతాలను వెబ్‌లో అందించడం ద్వారా Chromium, మీ సమయాన్ని ఆదా చేస్తుంది. మీరు సెట్టింగ్‌ల్లో ఖాతాలను జోడించవచ్చు లేదా తీసివేయవచ్చు.</translation>
 <translation id="725427773388857052">డేటా ఉల్లంఘనలు, సురక్షితం కాని వెబ్‌సైట్‌లు, మరిన్నింటి నుండి మిమ్మల్ని సురక్షితంగా ఉంచడంలో Chromium సహాయపడగలదు.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
index 3532bb7..5f29f35 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
@@ -22,6 +22,8 @@
 <translation id="2168108852149185974">ส่วนเสริมบางรายการทำให้ Chromium ขัดข้อง โปรดถอนการติดตั้ง:</translation>
 <translation id="2178608107313874732">Chromium ไม่สามารถใช้กล้องถ่ายรูปได้ในขณะนี้</translation>
 <translation id="2195025571279539885">คุณต้องการให้ Chromium เสนอการแปลหน้าภาษา<ph name="LANGUAGE_NAME" />จากเว็บไซต์นี้ในครั้งถัดไปไหม</translation>
+<translation id="2450140762465183767">ตอนนี้คุณจะใช้ Chromium ทุกครั้งที่แตะลิงก์ในข้อความ เอกสาร และแอปอื่นๆ</translation>
+<translation id="2478931088402984578">เลือก <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
 <translation id="2567507405773541360">ทำสิ่งต่างๆ ได้มากขึ้นด้วย Chromium ที่ใช้งานง่าย ปลอดภัย และรวดเร็วกว่าที่เคย</translation>
 <translation id="2590893390871230428">ซิงค์ข้อมูล Chromium</translation>
 <translation id="2650312721222849884">เปิดการซิงค์เพื่อดูแท็บที่เปิดไว้จากอุปกรณ์ที่คุณใช้ Chromium</translation>
@@ -100,6 +102,7 @@
 <translation id="894437814105052438">Chromium จะไม่ซิงค์ข้อมูลใหม่กับบัญชี Google ของคุณเมื่อออกจากระบบ แต่ข้อมูลที่ซิงค์ไว้ก่อนหน้านี้จะยังอยู่ในบัญชี</translation>
 <translation id="9022552996538154597">ลงชื่อเข้าใช้ Chromium</translation>
 <translation id="9089354809943900324">Chromium ล้าสมัย</translation>
+<translation id="9110075932708282655">ใช้ Chromium โดยค่าเริ่มต้น</translation>
 <translation id="921174536258924340">Chromium ตรวจสอบรหัสผ่านได้ไม่ครบทั้งหมด โปรดลองอีกครั้งในวันพรุ่งนี้หรือ<ph name="BEGIN_LINK" />ตรวจสอบรหัสผ่านในบัญชี Google<ph name="END_LINK" /></translation>
 <translation id="985602178874221306">The Chromium Authors</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb
index 8b021e21..4392c6a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Chrome kon nie alle wagwoorde nagaan nie. Probeer môre weer.</translation>
 <translation id="2869959624320573933">Meld by Chrome aan</translation>
 <translation id="2919738076569633423">Deur Chrome te gebruik, stem jy in tot die <ph name="BEGIN_LINK_TOS" />diensbepalings<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">Kies <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /></translation>
 <translation id="3030414234702425231">Omdat jy afmeld uit 'n rekening wat deur <ph name="SIGNOUT_MANAGED_DOMAIN" /> bestuur word, sal jou Chrome-data op hierdie toestel uitgevee word. Jou data sal in jou Google-rekening bly.</translation>
 <translation id="3167189358072330585">Jou rekening werk nie in Google Chrome nie. Kontak asseblief jou domeinadministrateur of gebruik 'n gewone Google-rekening om aan te meld.</translation>
 <translation id="3173834708294760622">Google Chrome-bladsy</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">Maak Chrome oop elke keer wanneer jy op skakels in ander programme tik</translation>
 <translation id="5854621639439811139">Chrome-wenk. Sekere knoppies soos Back, Forward en Search is nou aan die onderkant van jou skerm.</translation>
 <translation id="5876773482963502140">As jy Chrome toelaat om jou ligging te ken, stuur Chrome dit na enige werwe wat jy toelaat. Werwe kan vir jou ligging vra wanneer hulle plaaslike inligting het om vir jou te wys, soos winkels in die omtrek of nuus.</translation>
+<translation id="6054613632208573261">Gebruik Chrome by verstek</translation>
 <translation id="6063091872902370735">Laat Chrome-aanmelding toe</translation>
 <translation id="6181930887571472871">Skakel oor na Chrome</translation>
 <translation id="6238746320622508509">Laat Chrome toe om jou Incognito-oortjies te sluit.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">Welkom by Chrome</translation>
 <translation id="7662994914830945754">Meld aan en skakel sinkronisering aan om jou oortjies te sien van waar ook al jy Chrome gebruik</translation>
 <translation id="766361182512894255">Jou wagwoord is in 'n dataskending blootgestel. Chrome beveel aan dat jy die wagwoord nou verander.</translation>
+<translation id="7693590760643069321">Jy kan Chrome nou enige tyd gebruik wanneer jy op skakels in boodskappe, dokumente en ander programme tik.</translation>
 <translation id="7698568245838009292">Chrome wil toegang tot die kamera hê</translation>
 <translation id="7855730255114109580">Google Chrome is op datum</translation>
 <translation id="8022947259858476807">Gebruik by verstek Chrome om skakels oop te maak, van legstukke af te soek, en wagwoorde outomaties by ander programme in te vul</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
index f604a67..4002a49 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Chrome kunne ikke tjekke alle adgangskoder. Prøv igen i morgen.</translation>
 <translation id="2869959624320573933">Log ind i Chrome</translation>
 <translation id="2919738076569633423">Når du bruger Chrome, accepterer du <ph name="BEGIN_LINK_TOS" />servicevilkårene<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">Vælg <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /></translation>
 <translation id="3030414234702425231">Da du er ved at logge ud af en konto, der administreres af <ph name="SIGNOUT_MANAGED_DOMAIN" />, slettes dine Chrome-data på denne enhed. Dine data forbliver på din Google-konto.</translation>
 <translation id="3167189358072330585">Din konto fungerer ikke sammen med Google Chrome. Kontakt din domæneadministrator, eller brug en almindelig Google-konto til at logge ind.</translation>
 <translation id="3173834708294760622">Google Chrome-side</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">Åbn Chrome, hver gang du trykker på links i andre apps</translation>
 <translation id="5854621639439811139">Chrome-tip. Nogle knapper som f.eks. Tilbage, Frem og Søg findes nu nederst på skærmen.</translation>
 <translation id="5876773482963502140">Hvis du giver Chrome tilladelse til at kende din placering, sender Chrome den til de websites, du giver tilladelse til. Websites kan anmode om adgang til din placering, når de vil vise dig lokale oplysninger, f.eks. butikker i nærheden eller nyheder.</translation>
+<translation id="6054613632208573261">Brug Chrome som standard</translation>
 <translation id="6063091872902370735">Tillad login via Chrome</translation>
 <translation id="6181930887571472871">Skift til Chrome</translation>
 <translation id="6238746320622508509">Lad Chrome låse dine inkognitofaner.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">Velkommen til Chrome</translation>
 <translation id="7662994914830945754">Log ind, og aktivér synkronisering på alle de enheder, hvor du bruger Chrome, for at se dine faner på dem</translation>
 <translation id="766361182512894255">Din adgangskode er blevet offentliggjort i forbindelse med et brud på datasikkerheden. Chrome anbefaler, at du skifter din adgangskode med det samme.</translation>
+<translation id="7693590760643069321">Du kan nu bruge Chrome, hver gang du trykker på links i meddelelser, dokumenter og andre apps.</translation>
 <translation id="7698568245838009292">Chrome anmoder om adgang til kameraet</translation>
 <translation id="7855730255114109580">Google Chrome er opdateret</translation>
 <translation id="8022947259858476807">Brug som standard Chrome til at åbne links, søge efter widgets og udfylde adgangskoder automatisk i andre apps</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
index 15e45ef..ddc0f772 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">A Chrome nem tudta ellenőrizni az összes jelszót. Próbálkozzon újra holnap.</translation>
 <translation id="2869959624320573933">Bejelentkezés a Chrome-ba</translation>
 <translation id="2919738076569633423">A Chrome használatával elfogadja az <ph name="BEGIN_LINK_TOS" />általános szerződési feltételeket<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">Válassza ki a <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /> böngészőt.</translation>
 <translation id="3030414234702425231">Mivel kijelentkezik a(z) <ph name="SIGNOUT_MANAGED_DOMAIN" /> által felügyelt fiókból, törli az eszközön található Chrome-adatokat. Ezek az adatok Google-fiókjában továbbra is megmaradnak.</translation>
 <translation id="3167189358072330585">Fiókja nem működik a Google Chrome-on. Lépjen kapcsolatba domainrendszergazdájával, vagy használjon normál Google-fiókot a bejelentkezéshez.</translation>
 <translation id="3173834708294760622">A Google Chrome oldala</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">A Chrome megnyitása mindig, amikor más alkalmazásokban lévő linkekre koppint</translation>
 <translation id="5854621639439811139">Tipp a Chrome használatához. Egyes gombok (például a Vissza, az Előre vagy a Keresés) mostantól a képernyő alján jelennek meg.</translation>
 <translation id="5876773482963502140">Ha engedélyezi a Chrome számára a helyadatok használatát, akkor a böngésző továbbítja a helyadatokat az Ön által engedélyezett webhelyeknek. A webhelyek akkor kérhetnek hozzáférést a helyadatokhoz, ha helyi információkat jelenítenek meg (pl. közeli boltok vagy helyi hírek esetén).</translation>
+<translation id="6054613632208573261">A Chrome használata alapértelmezettként</translation>
 <translation id="6063091872902370735">Chrome-bejelentkezés engedélyezése</translation>
 <translation id="6181930887571472871">Váltás Chrome-ra</translation>
 <translation id="6238746320622508509">Az inkognitó lapok zárolásának engedélyezése a Chrome számára.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">A Chrome üdvözli Önt!</translation>
 <translation id="7662994914830945754">Jelentkezzen be, és kapcsolja be a szinkronizálást, hogy bárhol hozzáférhessen a lapjaihoz, ahol a Chrome-ot használja.</translation>
 <translation id="766361182512894255">Jelszava adatvédelmi incidens során nyilvánosságra került. A Chrome a jelszó azonnali módosítását javasolja.</translation>
+<translation id="7693590760643069321">Mostantól bármikor használhatja a Chrome-ot, amikor üzenetekben, dokumentumokban és más alkalmazásokban linkekre kattint.</translation>
 <translation id="7698568245838009292">A Chrome hozzá szeretne férni a kamerához</translation>
 <translation id="7855730255114109580">A Google Chrome naprakész</translation>
 <translation id="8022947259858476807">A Chrome-ot alapértelmezett böngészőként használva linkek nyithatók meg, modulokban lehet keresni, és jelszavak tölthetők be automatikusan az egyéb alkalmazásokban</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
index 949a684..5883411 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານທັງໝົດໄດ້. ກະລຸນາລອງໃໝ່ໃນມື້ອື່ນ.</translation>
 <translation id="2869959624320573933">ເຂົ້າສູ່ລະບົບຫາ Chrome</translation>
 <translation id="2919738076569633423">ໂດຍການໃຊ້ Chrome, ແມ່ນຖືວ່າທ່ານເຫັນນຳ <ph name="BEGIN_LINK_TOS" />ຂໍ້ກຳນົດບໍລິການ<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">ເລືອກ <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /></translation>
 <translation id="3030414234702425231">ເພາະວ່າທ່ານກຳລັງອອກຈາກລະບົບບັນຊີທີ່ຈັດການໂດຍ <ph name="SIGNOUT_MANAGED_DOMAIN" />, ຂໍ້ມູນ Chrome ຂອງທ່ານຈະຖືກລຶບອອກຈາກອຸປະກອນນີ້. ຂໍ້ມູນຂອງທ່ານຈະຍັງຄົງຢູ່ໃນບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="3167189358072330585">ບັນຊີຂອງທ່ານໃຊ້ບໍ່ໄດ້ຢູ່ໃນ Google Chrome. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງໂດເມນຂອງທ່ານ ຫຼືໃຊ້ບັນຊີ Google ປົກກະຕິ ເພື່ອເຂົ້າສູ່ລະບົບ.</translation>
 <translation id="3173834708294760622">ໜ້າ Google Chrome</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">ເປີດ Chrome ຕອນໃດກໍໄດ້ທີ່ທ່ານແຕະໃສ່ລິ້ງໃນແອັບອື່ນ</translation>
 <translation id="5854621639439811139">ເຄັດລັບກ່ຽວກັບ Chrome. ດຽວນີ້ບາງປຸ່ມຢູ່ສ່ວນລຸ່ມຂອງໜ້າຈໍ ເຊັ່ນ: ກັບຄືນ, ສົ່ງຕໍ່ ແລະ ຊອກຫາ.</translation>
 <translation id="5876773482963502140">ຫາກທ່ານອະນຸຍາດໃຫ້ Chrome ຮູ້ສະຖານທີ່ຂອງທ່ານ, Chrome ຈະສົ່ງມັນໄປຫາເວັບໄຊໃດກໍຕາມທີ່ທ່ານອະນຸຍາດ. ເວັບໄຊອາດຂໍສະຖານທີ່ຂອງທ່ານເມື່ອພວກມັນມີຂໍ້ມູນໃນທ້ອງຖິ່ນທີ່ຈະສະແດງໃຫ້ທ່ານເຫັນ ເຊັ່ນ: ຮ້ານຄ້າທີ່ຢູ່ໃກ້ຄຽງ ຫຼື ຂ່າວ.</translation>
+<translation id="6054613632208573261">ໃຊ້ Chrome ເປັນຄ່າເລີ່ມຕົ້ນ</translation>
 <translation id="6063091872902370735">ອະນຸຍາດການເຂົ້າສູ່ລະບົບ Chrome</translation>
 <translation id="6181930887571472871">ປ່ຽນເປັນ Chrome</translation>
 <translation id="6238746320622508509">ອະນຸຍາດໃຫ້ Chrome ລັອກແຖບບໍ່ເປີດເຜີຍຕົວຕົນຂອງທ່ານ.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">ຍິນ​ດີ​ຕ້ອນ​ຮັບສູ່ Chrome</translation>
 <translation id="7662994914830945754">ເພື່ອເຫັນແຖບຂອງທ່ານຈາກທຸກບ່ອນທີ່ທ່ານໃຊ້ Chrome, ກະລຸນາເຂົ້າສູ່ລະບົບ ແລະ ເປີດການຊິ້ງຂໍ້ມູນ</translation>
 <translation id="766361182512894255">ລະຫັດຜ່ານຂອງທ່ານຮົ່ວໄຫຼໃນການລະເມີດຂໍ້ມູນ. Chrome ແນະນຳໃຫ້ປ່ຽນລະຫັດຜ່ານຕອນນີ້ເລີຍ.</translation>
+<translation id="7693590760643069321">ຕອນນີ້ທ່ານສາມາດໃຊ້ Chrome ຕອນໃດກໍໄດ້ທີ່ທ່ານແຕະລິ້ງໃນຂໍ້ຄວາມ, ເອກະສານ ແລະ ແອັບອື່ນໆ.</translation>
 <translation id="7698568245838009292">Chrome ຕ້ອງການເຂົ້າເຖິງກ້ອງຖ່າຍຮູບ</translation>
 <translation id="7855730255114109580">Google Chrome ແມ່ນເວີຊັນໃໝ່ຫຼ້າສຸດແລ້ວ</translation>
 <translation id="8022947259858476807">ໃຊ້ Chrome ເປັນຄ່າເລີ່ມຕົ້ນເພື່ອເປີດລິ້ງ, ຊອກຫາຈາກວິດເຈັດ ແລະ ການຕື່ມຂໍ້ມູນລະຫັດຜ່ານອັດຕະໂນມັດໃນແອັບອື່ນໆ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
index 81acb9cd..d2f152f2 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">„Chrome“ nepavyko patikrinti visų slaptažodžių. Rytoj bandykite dar kartą.</translation>
 <translation id="2869959624320573933">Prisijunkite prie „Chrome“</translation>
 <translation id="2919738076569633423">Naudodami „Chrome“ sutinkate su <ph name="BEGIN_LINK_TOS" />paslaugų teikimo sąlygomis<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">Pasirinkite <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /></translation>
 <translation id="3030414234702425231">Atsijungiate nuo paskyros, kurią valdo <ph name="SIGNOUT_MANAGED_DOMAIN" />, todėl „Chrome“ duomenys bus ištrinti iš šio įrenginio. Duomenys išliks jūsų „Google“ paskyroje.</translation>
 <translation id="3167189358072330585">Paskyra neveikia sistemoje „Google Chrome“. Susisiekite su domeno administratoriumi arba prisijungdami naudokite įprastą „Google“ paskyrą.</translation>
 <translation id="3173834708294760622">„Google Chrome“ puslapis</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">Bet kada palietus nuorodas kitose programose, bus atidaroma „Chrome“</translation>
 <translation id="5854621639439811139">„Chrome“ patarimas. Kai kurie mygtukai dabar yra ekrano apačioje, pvz., mygtukai „Atgal“, „Pirmyn“ ir „Ieškoti“.</translation>
 <translation id="5876773482963502140">Jei leidžiate „Chrome“ nustatyti jūsų vietovę, „Chrome“ siunčia ją bet kurioms svetainėms, kurioms suteikiate leidimą. Svetainės gali prašyti jūsų vietovės, kai jose yra jums rodytinos vietinės informacijos, pvz., netoliese esančių parduotuvių ar naujienų.</translation>
+<translation id="6054613632208573261">„Chrome“ naudojimas pagal numatytuosius nustatymus</translation>
 <translation id="6063091872902370735">Leisti „Chrome“ prisijungimą</translation>
 <translation id="6181930887571472871">Perjungimas į „Chrome“</translation>
 <translation id="6238746320622508509">Leiskite „Chrome“ užrakinti jūsų inkognito skirtukus.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">Sveiki, tai „Chrome“</translation>
 <translation id="7662994914830945754">Kad matytumėte skirtukus iš visų įrenginių, kuriuose naudojate „Chrome“, prisijunkite ir įjunkite sinchronizavimą</translation>
 <translation id="766361182512894255">Jūsų slaptažodis atskleistas įvykus duomenų saugos pažeidimui. „Chrome“ rekomenduoja dabar pakeisti slaptažodį.</translation>
+<translation id="7693590760643069321">Dabar galite naudoti „Chrome“ bet kada palietę nuorodas pranešimuose, dokumentuose ir kitose programose.</translation>
 <translation id="7698568245838009292">„Chrome“ nori pasiekti fotoaparatą</translation>
 <translation id="7855730255114109580">„Google Chrome“ yra naujausios versijos</translation>
 <translation id="8022947259858476807">Naudokite „Chrome“ pagal numatytuosius nustatymus, kad atidarytumėte nuorodas, ieškotumėte iš valdiklių ir automatiškai pildytumėte slaptažodžius kitose programose</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
index d2e7161..cc98028 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Chrome бүх нууц үгийг шалгаж чадсангүй. Маргааш дахин оролдоно уу.</translation>
 <translation id="2869959624320573933">Chrome-д нэвтэрнэ үү</translation>
 <translation id="2919738076569633423">Chrome-г ашигласнаар та <ph name="BEGIN_LINK_TOS" />Үйлчилгээний нөхцөлийг<ph name="END_LINK_TOS" /> зөвшөөрч байна.</translation>
+<translation id="2957447865124070833"><ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" />-г сонгоно уу</translation>
 <translation id="3030414234702425231">Та <ph name="SIGNOUT_MANAGED_DOMAIN" />-н удирддаг бүртгэлээс гарч байгаа тул таны Chrome-н өгөгдлийг энэ төхөөрөмжөөс устгана. Таны өгөгдөл таны Google Бүртгэлд хэвээр үлдэнэ.</translation>
 <translation id="3167189358072330585">Таны бүртгэл Google Chrome-д ажиллахгүй байна. Нэвтрэхийн тулд та домайн админтайгаа холбогдох, эсвэл Google Бүртгэлийн энгийн хувилбарыг ашиглаарай.</translation>
 <translation id="3173834708294760622">Google Chrome-н хуудас</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">Бусад апп дахь холбоосыг товших бүрдээ Chrome-г нээгээрэй</translation>
 <translation id="5854621639439811139">Chrome-н зөвлөгөө. Буцаах, Урагшлуулах, Хайх зэрэг зарим товчлуур таны дэлгэцийн доод хэсэгт байрладаг боллоо.</translation>
 <translation id="5876773482963502140">Хэрэв та Chrome-д таны байршлыг мэдэхийг зөвшөөрвөл Chrome үүнийг таны зөвшөөрсөн аливаа сайт руу илгээнэ. Сайтууд нь ойролцоох дэлгүүр эсвэл мэдээ зэрэг танд үзүүлэх орон нутгийн мэдээлэлтэй болох үед таны байршлыг асууж болзошгүй.</translation>
+<translation id="6054613632208573261">Chrome-г өгөгдмөлөөр ашиглах</translation>
 <translation id="6063091872902370735">Chrome-д нэвтрэхийг зөвшөөрөх</translation>
 <translation id="6181930887571472871">Chrome руу сэлгэнэ үү</translation>
 <translation id="6238746320622508509">Chrome-д таны Нууцлалтай табуудыг түгжихийг зөвшөөрнө үү.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">Chrome-д тавтай морил</translation>
 <translation id="7662994914830945754">Та Chrome-г хаанаас ч ашигласан бай табуудаа харахын тулд нэвтрээд, синк хийхийг асаана уу</translation>
 <translation id="766361182512894255">Өгөгдлийн зөрчлийн улмаас таны нууц үгийг задруулсан байна. Chrome одоо нууц үгээ өөрчлөхийг зөвлөж байна.</translation>
+<translation id="7693590760643069321">Та одоо Chrome-г хэзээд ч мессеж, документ болон бусад аппын холбоосыг товшин ашиглах боломжтой.</translation>
 <translation id="7698568245838009292">Chrome камерт хандах хүсэлтэй байна</translation>
 <translation id="7855730255114109580">Google Chrome-г шинэчилсэн байна</translation>
 <translation id="8022947259858476807">Холбооснуудыг нээх, жижиг хэрэгслүүдээс хайх, бусад аппад нууц үгнүүдийг автоматаар бөглөхийн тулд Chrome-г өгөгдмөлөөр ашиглана уу</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
index 9eadb0a..9e587f5 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Chrome kan niet alle wachtwoorden checken. Probeer het morgen opnieuw.</translation>
 <translation id="2869959624320573933">Inloggen bij Chrome</translation>
 <translation id="2919738076569633423">Door Chrome te gebruiken, ga je akkoord met de <ph name="BEGIN_LINK_TOS" />servicevoorwaarden<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">Selecteer <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" />.</translation>
 <translation id="3030414234702425231">Omdat je uitlogt van een account dat wordt beheerd door <ph name="SIGNOUT_MANAGED_DOMAIN" />, worden je Chrome-gegevens van dit apparaat verwijderd. Je gegevens blijven echter wel in je Google-account staan.</translation>
 <translation id="3167189358072330585">Je account werkt niet in Google Chrome. Neem contact op met je domeinbeheerder of gebruik een gewoon Google-account om je aan te melden.</translation>
 <translation id="3173834708294760622">Google Chrome-pagina</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">Chrome openen wanneer je op links in andere apps tikt</translation>
 <translation id="5854621639439811139">Chrome-tip. Sommige knoppen zoals Terug, Vooruit en Zoeken zie je nu onderaan het scherm.</translation>
 <translation id="5876773482963502140">Als je Chrome toestaat je locatie te gebruiken, stuurt Chrome deze naar sites waarvoor je toestemming geeft. Sites kunnen om je locatie vragen als ze je lokale informatie willen laten zien, zoals winkels in de buurt of lokaal nieuws.</translation>
+<translation id="6054613632208573261">Chrome standaard gebruiken</translation>
 <translation id="6063091872902370735">Inloggen bij Chrome toestaan</translation>
 <translation id="6181930887571472871">Overschakelen naar Chrome</translation>
 <translation id="6238746320622508509">Laat Chrome je incognitotabbladen vergrendelen.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">Welkom bij Chrome</translation>
 <translation id="7662994914830945754">Log in en zet de synchronisatie aan om je tabbladen te bekijken vanaf elk apparaat waarop je Chrome gebruikt</translation>
 <translation id="766361182512894255">Je wachtwoord is gelekt bij een gegevenslek. Chrome raadt je aan om het wachtwoord nu te wijzigen.</translation>
+<translation id="7693590760643069321">Je kunt Chrome nu gebruiken als je op links in berichten, documenten en andere apps tikt.</translation>
 <translation id="7698568245838009292">Chrome vraagt toegang tot de camera</translation>
 <translation id="7855730255114109580">Google Chrome is up-to-date</translation>
 <translation id="8022947259858476807">Gebruik standaard Chrome om links te openen, te zoeken via widgets en om wachtwoorden in andere apps automatisch in te vullen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
index 668c81d..fcca60a8 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Przeglądarce Chrome nie udało się sprawdzić wszystkich haseł. Spróbuj ponownie jutro.</translation>
 <translation id="2869959624320573933">Zaloguj się w Chrome</translation>
 <translation id="2919738076569633423">Używając Chrome, wyrażasz zgodę na <ph name="BEGIN_LINK_TOS" />Warunki korzystania z usługi<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">Wybierz <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /></translation>
 <translation id="3030414234702425231">Wylogowujesz się z konta, którym zarządza <ph name="SIGNOUT_MANAGED_DOMAIN" />. Spowoduje to usunięcie danych Chrome z tego urządzenia, ale pozostaną one na koncie Google.</translation>
 <translation id="3167189358072330585">Twoje konto nie działa w Google Chrome. Skontaktuj się z administratorem domeny lub zaloguj się przy użyciu zwykłego konta Google.</translation>
 <translation id="3173834708294760622">Strona Google Chrome</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">Otwieraj Chrome po kliknięciu linków w innych aplikacjach</translation>
 <translation id="5854621639439811139">Wskazówka dla użytkowników Chrome. Niektóre przyciski (na przykład Wstecz, Dalej i Szukaj) znajdują się teraz na dole ekranu.</translation>
 <translation id="5876773482963502140">Jeśli zezwolisz na dostęp do swojej lokalizacji, Chrome będzie wysyłać ją do witryn, którym przyznasz dostęp. O dostęp do Twojej lokalizacji mogą prosić witryny pokazujące treści lokalne, np. wiadomości z regionu czy informacje o sklepach w pobliżu.</translation>
+<translation id="6054613632208573261">Używaj domyślnie Chrome</translation>
 <translation id="6063091872902370735">Zezwalaj na logowanie się w Chrome</translation>
 <translation id="6181930887571472871">Przejdź na Chrome</translation>
 <translation id="6238746320622508509">Pozwól Chrome blokować karty incognito.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">Witamy w Chrome</translation>
 <translation id="7662994914830945754">Aby widzieć swoje karty zawsze, kiedy korzystasz z Chrome, zaloguj się i włącz synchronizację</translation>
 <translation id="766361182512894255">Wskutek naruszenia bezpieczeństwa danych doszło do ujawnienia hasła. Chrome zaleca jego natychmiastową zmianę.</translation>
+<translation id="7693590760643069321">Teraz możesz używać Chrome za każdym razem, gdy klikniesz link w wiadomościach, dokumentach i w innych aplikacjach.</translation>
 <translation id="7698568245838009292">Chrome chce mieć dostęp do kamery</translation>
 <translation id="7855730255114109580">Masz aktualną wersję Google Chrome</translation>
 <translation id="8022947259858476807">Używaj domyślnie Chrome, aby otwierać linki, wyszukiwać z widżetów i korzystać z autouzupełniania haseł w innych aplikacjach</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
index 2e2ebba1..ac1feef3 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Chrome nu a putut verifica toate parolele. Încearcă din nou mâine.</translation>
 <translation id="2869959624320573933">Conectează-te la Chrome</translation>
 <translation id="2919738076569633423">Dacă folosești Chrome, accepți <ph name="BEGIN_LINK_TOS" />Termenii și condițiile<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">Selectează <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /></translation>
 <translation id="3030414234702425231">Deoarece te deconectezi de la un cont gestionat de <ph name="SIGNOUT_MANAGED_DOMAIN" />, datele tale Chrome de pe acest dispozitiv vor fi șterse. Datele tale vor rămâne în Contul Google.</translation>
 <translation id="3167189358072330585">Contul nu funcționează pe Google Chrome. Contactează administratorul domeniului sau folosește un Cont Google obișnuit pentru a te conecta.</translation>
 <translation id="3173834708294760622">Pagină Google Chrome</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">Deschide Chrome când atingi linkuri în alte aplicații</translation>
 <translation id="5854621639439811139">Sfat pentru Chrome: unele butoane se află acum în partea de jos a ecranului, cum ar fi Înapoi, Înainte și Caută.</translation>
 <translation id="5876773482963502140">Dacă permiți accesul Chrome la locație, Chrome trimite informații privind locația la site-urile cărora le acorzi această permisiune. Site-urile pot solicita informații despre locație atunci când au informații locale de afișat, de exemplu, magazine din apropiere sau știri.</translation>
+<translation id="6054613632208573261">Folosește Chrome în mod prestabilit</translation>
 <translation id="6063091872902370735">Permite conectarea la Chrome</translation>
 <translation id="6181930887571472871">Treci la Chrome</translation>
 <translation id="6238746320622508509">Permite ca Chrome să blocheze filele incognito.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">Bun venit la Chrome</translation>
 <translation id="7662994914830945754">Pentru a vedea toate filele tale deschise în Chrome, conectează-te și activează sincronizarea</translation>
 <translation id="766361182512894255">Parola a fost expusă în urma încălcării securității datelor. Chrome recomandă să-ți schimbi acum parola.</translation>
+<translation id="7693590760643069321">Acum poți folosi Chrome oricând atingi linkuri în mesaje, documente și alte aplicații.</translation>
 <translation id="7698568245838009292">Chrome vrea să acceseze camera foto</translation>
 <translation id="7855730255114109580">Google Chrome este actualizat</translation>
 <translation id="8022947259858476807">Folosește Chrome în mod prestabilit ca să deschizi linkuri, să cauți din widgeturi și să completezi automat parolele în alte aplicații</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
index 6812b12..6cb99b65 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Chromu ni uspelo preveriti vseh gesel. Poskusite znova jutri.</translation>
 <translation id="2869959624320573933">Prijava v Chrome</translation>
 <translation id="2919738076569633423">Če uporabljate Chrome, se strinjate s <ph name="BEGIN_LINK_TOS" />pogoji storitve<ph name="END_LINK_TOS" />.</translation>
+<translation id="2957447865124070833">Izberite <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /></translation>
 <translation id="3030414234702425231">Ker se boste odjavili iz računa, ki ga upravlja <ph name="SIGNOUT_MANAGED_DOMAIN" />, boste iz te naprave izbrisali podatke v Chromu. Vaši podatki bodo še vedno na voljo v Google Računu.</translation>
 <translation id="3167189358072330585">Vaš račun ne deluje v Google Chromu. Obrnite se na skrbnika domene ali za prijavo uporabite običajen Google Račun.</translation>
 <translation id="3173834708294760622">Stran Google Chroma</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">Odpiranje Chroma ob vsakem dotiku povezav v drugih aplikacijah.</translation>
 <translation id="5854621639439811139">Nasvet za Chrome. Nekateri gumbi, na primer gumbi za nazaj, naprej in iskanje, so zdaj na dnu zaslona.</translation>
 <translation id="5876773482963502140">Če Chromu omogočite dostop do podatkov o lokaciji, jih Chrome pošlje na spletna mesta, ki jim podelite dovoljenje. Spletna mesta morda zahtevajo podatke o lokaciji, ko želijo prikazati lokalne informacije, na primer trgovine v bližini ali novice.</translation>
+<translation id="6054613632208573261">Privzeto uporabljajte Chrome</translation>
 <translation id="6063091872902370735">Omogočanje prijave v Chrome</translation>
 <translation id="6181930887571472871">Preklop na Chrome</translation>
 <translation id="6238746320622508509">Naj Chrome zaklene vaše anonimne zavihke.</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">Dobrodošli v Chromu</translation>
 <translation id="7662994914830945754">Če si želite ogledati zavihke iz naprav, v katerih uporabljate Chrome, se prijavite in vklopite sinhronizacijo</translation>
 <translation id="766361182512894255">Geslo je bilo razkrito zaradi podatkovne kršitve. Chrome priporoča, da takoj spremenite geslo.</translation>
+<translation id="7693590760643069321">Zdaj lahko uporabljate Chrome, kadar koli se dotaknete povezav v sporočilih, dokumentih in drugih aplikacijah.</translation>
 <translation id="7698568245838009292">Chrome želi dostopati do fotoaparata</translation>
 <translation id="7855730255114109580">Google Chrome je posodobljen</translation>
 <translation id="8022947259858476807">Uporabljajte Chrome kot privzeto možnost odpiranja povezav, iskanja v pripomočkih in samodejnega izpolnjevanja gesel v drugih aplikacijah.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
index 89935a4..b9d645c 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
@@ -11,6 +11,7 @@
 <translation id="1759842336958782510">Chrome</translation>
 <translation id="1812249337131447686">பயன்பாட்டுப் புள்ளிவிவரங்களையும் சிதைவு அறிக்கைகளையும் Googleளுக்கு அனுப்புவதன் மூலம் Chromeமை மேம்படுத்த உதவுங்கள்</translation>
 <translation id="1917964099031477364">இந்தக் கணக்கும் சேமிக்கப்படாத தரவு இருந்தால் அதுவும் Chromeமில் இருந்தும் இந்தச் சாதனத்தில் உள்ள பிற Google ஆப்ஸில் இருந்தும் அகற்றப்படும்.</translation>
+<translation id="1968388653333775699">Chrome மூலம் பலவற்றைச் செய்திடுங்கள்</translation>
 <translation id="2009224836393115614">Chrome உலாவியால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை. இணைய இணைப்பைச் சரிபார்க்கவும்.</translation>
 <translation id="2147651015520127414">இந்த இணையதளச் சான்றிதழ் <ph name="ISSUER" /> ஆல் வழங்கப்பட்டதா என Chrome சரிபார்த்தது.</translation>
 <translation id="2199719347983604670">Chrome ஒத்திசைவுத் தரவு</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
index ddd2f46..596cdd8 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
@@ -11,6 +11,7 @@
 <translation id="1759842336958782510">Chrome</translation>
 <translation id="1812249337131447686">వినియోగ గణాంకాలను, క్రాష్ రిపోర్ట్‌లను Googleకు పంపడం ద్వారా Chromeను మెరుగుపరచడంలో సహాయపడండి</translation>
 <translation id="1917964099031477364">ఈ పరికరంలో Chrome నుండి, అలాగే ఇతర Google యాప్‌ల నుండి ఈ ఖాతా, ఇంకా సేవ్ చేయబడని డేటా తీసివేయబడుతుంది.</translation>
+<translation id="1968388653333775699">Chromeతో మరింత ప్రభావవంతంగా పనులు చేసుకోండి</translation>
 <translation id="2009224836393115614">Chromeకు మీ పాస్‌వర్డ్‌లను చెక్ చేయడం సాధ్యపడలేదు. మీ ఇంటర్నెట్ కనెక్షన్‌ను చెక్ చేసి, ట్రై చేయండి.</translation>
 <translation id="2147651015520127414">Chrome ఈ వెబ్‌సైట్ సర్టిఫికెట్‌ను <ph name="ISSUER" /> జారీ చేసినట్లు ధృవీకరించింది.</translation>
 <translation id="2199719347983604670">Chrome సింక్ నుండి డేటా</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
index ba950b8..65ca41f 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
@@ -28,6 +28,7 @@
 <translation id="2732745070297234559">Chrome ตรวจสอบรหัสผ่านได้ไม่ครบทั้งหมด โปรดลองอีกครั้งในวันพรุ่งนี้</translation>
 <translation id="2869959624320573933">ลงชื่อเข้าใช้ Chrome</translation>
 <translation id="2919738076569633423">การใช้ Chrome หมายความว่าคุณยอมรับ<ph name="BEGIN_LINK_TOS" />ข้อกำหนดในการให้บริการ<ph name="END_LINK_TOS" /></translation>
+<translation id="2957447865124070833">เลือก <ph name="BEGIN_BOLD" />Chrome<ph name="END_BOLD" /></translation>
 <translation id="3030414234702425231">เนื่องจากคุณกำลังออกจากระบบบัญชีที่จัดการโดย <ph name="SIGNOUT_MANAGED_DOMAIN" /> ข้อมูล Chrome ของคุณจะถูกลบออกจากอุปกรณ์นี้ แต่ข้อมูลจะยังคงอยู่ในบัญชี Google</translation>
 <translation id="3167189358072330585">บัญชีของคุณใช้งานไม่ได้บน Google Chrome โปรดติดต่อผู้ดูแลระบบโดเมนหรือใช้บัญชี Google ปกติเพื่อลงชื่อเข้าใช้</translation>
 <translation id="3173834708294760622">หน้า Google Chrome</translation>
@@ -61,6 +62,7 @@
 <translation id="5716154293141027663">คุณแตะลิงก์ในแอปอื่นๆ เพื่อเปิด Chrome ได้ทุกเมื่อ</translation>
 <translation id="5854621639439811139">เคล็ดลับสำหรับ Chrome ตอนนี้บางปุ่มแสดงอยู่ที่ด้านล่างของหน้าจอแล้ว เช่น ปุ่มกลับ ไปข้างหน้า และค้นหา</translation>
 <translation id="5876773482963502140">หากอนุญาตให้ Chrome ทราบตำแหน่งของคุณ Chrome จะส่งตำแหน่งไปยังเว็บไซต์ที่คุณให้สิทธิ์ เว็บไซต์อาจขอตำแหน่งเมื่อมีข้อมูลในพื้นที่ที่จะแสดง เช่น ร้านค้าใกล้เคียงหรือข่าวสาร</translation>
+<translation id="6054613632208573261">ใช้ Chrome โดยค่าเริ่มต้น</translation>
 <translation id="6063091872902370735">อนุญาตให้ลงชื่อเข้าใช้ Chrome</translation>
 <translation id="6181930887571472871">เปลี่ยนไปใช้ Chrome</translation>
 <translation id="6238746320622508509">ให้ Chrome ล็อกแท็บที่ไม่ระบุตัวตน</translation>
@@ -86,6 +88,7 @@
 <translation id="7626032353295482388">ยินดีต้อนรับสู่ Chrome</translation>
 <translation id="7662994914830945754">ลงชื่อเข้าใช้และเปิดการซิงค์เพื่อดูแท็บที่เปิดไว้จากอุปกรณ์ที่คุณใช้ Chrome</translation>
 <translation id="766361182512894255">รหัสผ่านของคุณถูกเปิดเผยในการละเมิดข้อมูล Chrome ขอแนะนำให้เปลี่ยนรหัสผ่านตอนนี้เลย</translation>
+<translation id="7693590760643069321">ตอนนี้คุณจะใช้ Chrome ทุกครั้งที่แตะลิงก์ในข้อความ เอกสาร และแอปอื่นๆ</translation>
 <translation id="7698568245838009292">Chrome ต้องการเข้าถึงกล้องถ่ายรูป</translation>
 <translation id="7855730255114109580">Google Chrome อัปเดตแล้ว</translation>
 <translation id="8022947259858476807">ใช้ Chrome โดยค่าเริ่มต้นเพื่อเปิดลิงก์ ค้นหาจากวิดเจ็ต และป้อนรหัสผ่านอัตโนมัติในแอปอื่นๆ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index a7d0bbc..abc5f193 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">Aanvanklike sinkronisering-opstelling is nie klaar nie</translation>
 <translation id="2843803966603263712">Stel Translate-instellings terug</translation>
+<translation id="2848086008667475748">Maak dit verstek in Instellings …</translation>
 <translation id="2858204748079866344">Om jou privaatheid te beskerm, sal Chrome nie outomaties jou wagwoord in hierdie veld invul nie.</translation>
 <translation id="285960592395650245">Herprobeer aflaai</translation>
 <translation id="2870560284913253234">Werf</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">Wys altyd</translation>
 <translation id="418156467088430727">Bekyk vanlyn weergawe in nuwe oortjie</translation>
 <translation id="4181841719683918333">Tale</translation>
+<translation id="4237377247299956313">Tik op <ph name="BEGIN_BOLD" />Verstekblaaierprogram<ph name="END_BOLD" /></translation>
 <translation id="424315890655130736">Voer wagfrase in</translation>
 <translation id="4263576668337963058">Wys beskikbare bladsyhandelinge</translation>
 <translation id="4267380167363222949">Volgende oortjie</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">QR-kodesoektog</translation>
 <translation id="4378154925671717803">Foon</translation>
 <translation id="4389019817280890563">Tik om taal te verander.</translation>
+<translation id="4442550905108052454">Maak <ph name="BEGIN_BOLD" />Instellings<ph name="END_BOLD" /> oop</translation>
 <translation id="4454246407045105932">Voeg taal by</translation>
 <translation id="4469418912670346607">Gaan voort met opstelling</translation>
 <translation id="4474494258097106883">Gebou vir jou iPhone</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index b2091b4..99354c5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">Indledende konfiguration af synkronisering er ikke afsluttet</translation>
 <translation id="2843803966603263712">Nulstil oversættelsesindstillinger</translation>
+<translation id="2848086008667475748">Angiv som standard i Indstillinger…</translation>
 <translation id="2858204748079866344">Af hensyn til beskyttelsen af dine personlige oplysninger autofylder Chrome ikke din adgangskode i dette felt.</translation>
 <translation id="285960592395650245">Prøv at downloade igen</translation>
 <translation id="2870560284913253234">Website</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">Vis altid</translation>
 <translation id="418156467088430727">Se offlineversion på en ny fane</translation>
 <translation id="4181841719683918333">Sprog</translation>
+<translation id="4237377247299956313">Tryk på <ph name="BEGIN_BOLD" />Standardbrowserapp<ph name="END_BOLD" /></translation>
 <translation id="424315890655130736">Angiv adgangssætning</translation>
 <translation id="4263576668337963058">Vis tilgængelige sidehandlinger</translation>
 <translation id="4267380167363222949">Næste fane</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">Søgning efter QR-kode</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4389019817280890563">Tryk for at skifte sprog.</translation>
+<translation id="4442550905108052454">Åbn <ph name="BEGIN_BOLD" />Indstillinger<ph name="END_BOLD" /></translation>
 <translation id="4454246407045105932">Tilføj sprog</translation>
 <translation id="4469418912670346607">Fortsæt konfiguration</translation>
 <translation id="4474494258097106883">Udviklet til din iPhone</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index 29c62355..b8cbdae 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">A szinkronizálás kezdeti beállítása nem fejeződött be</translation>
 <translation id="2843803966603263712">A Fordító beállításainak visszaállítása</translation>
+<translation id="2848086008667475748">Beállítás alapértelmezettként a Beállításokban</translation>
 <translation id="2858204748079866344">Adatai védelme érdekében a Chrome nem tölti ki automatikusan a jelszavát ebben a mezőben.</translation>
 <translation id="285960592395650245">Letöltés újrapróbálása</translation>
 <translation id="2870560284913253234">Webhely</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">Mindig mutassa</translation>
 <translation id="418156467088430727">Offline verzió megtekintése új lapon</translation>
 <translation id="4181841719683918333">Nyelvek</translation>
+<translation id="4237377247299956313">Koppintson az <ph name="BEGIN_BOLD" />Alapértelmezett böngésző<ph name="END_BOLD" /> lehetőségre.</translation>
 <translation id="424315890655130736">Összetett jelszó megadása</translation>
 <translation id="4263576668337963058">Rendelkezésre álló oldalműveletek megjelenítése</translation>
 <translation id="4267380167363222949">Következő lap</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">QR-kód keresése</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4389019817280890563">Koppintson a nyelv módosításához.</translation>
+<translation id="4442550905108052454">Nyissa meg a <ph name="BEGIN_BOLD" />Beállításokat<ph name="END_BOLD" />.</translation>
 <translation id="4454246407045105932">Nyelv hozzáadása</translation>
 <translation id="4469418912670346607">Beállítás folytatása</translation>
 <translation id="4474494258097106883">iPhone-hoz készült</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index fc77a8e..ce36596 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">ການຕັ້ງຄ່າການຊິ້ງຂໍ້ມູນເບື້ອງຕົ້ນບໍ່ສຳເລັດເທື່ອ</translation>
 <translation id="2843803966603263712">ຕັ້ງຄ່າການຕັ້ງຄ່າການແປຄືນໃໝ່</translation>
+<translation id="2848086008667475748">ຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນໃນການຕັ້ງຄ່າ…</translation>
 <translation id="2858204748079866344">ເພື່ອປົກປ້ອງຄວາມເປັນສ່ວນຕົວຂອງທ່ານ, Chrome ຈະບໍ່ຕື່ມຂໍ້ມູນລະຫັດຜ່ານຂອງທ່ານໃສ່ຊ່ອງຂໍ້ມູນນີ້ໂດຍອັດຕະໂນມັດ.</translation>
 <translation id="285960592395650245">ລອງດາວໂຫຼດໃໝ່</translation>
 <translation id="2870560284913253234">ເວັບ​ໄຊທ໌</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">ສະ​ແດງ​ຢູ່ສະ​ເຫມີ​</translation>
 <translation id="418156467088430727">ເບິ່ງເວີຊັນອອບລາຍຢູ່ໃນແຖບໃໝ່</translation>
 <translation id="4181841719683918333">ພາສາ</translation>
+<translation id="4237377247299956313">ແຕະໃສ່ <ph name="BEGIN_BOLD" />ແອັບໂປຣແກຣມທ່ອງເວັບເລີ່ມຕົ້ນ<ph name="END_BOLD" /></translation>
 <translation id="424315890655130736">ປ້ອນວະລີຜ່ານ</translation>
 <translation id="4263576668337963058">ສະແດງຄຳສັ່ງໃນໜ້າທີ່ໃຊ້ໄດ້</translation>
 <translation id="4267380167363222949">ແຖບຕໍ່ໄປ</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">ການຊອກຫາລະຫັດ QR</translation>
 <translation id="4378154925671717803">ໂທລະ​ສັບ</translation>
 <translation id="4389019817280890563">ແຕະເພື່ອປ່ຽນພາສາ.</translation>
+<translation id="4442550905108052454">ເປີດ <ph name="BEGIN_BOLD" />ການຕັ້ງຄ່າ<ph name="END_BOLD" /></translation>
 <translation id="4454246407045105932">ເພີ່ມພາສາ</translation>
 <translation id="4469418912670346607">ສືບຕໍ່ການຕັ້ງຄ່າ</translation>
 <translation id="4474494258097106883">ສ້າງມາສຳລັບ iPhone ຂອງທ່ານ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index b8b583d..c9b1161 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">Pradinė sinchronizavimo sąranka nebaigta</translation>
 <translation id="2843803966603263712">Nust. Vert. nust. iš n.</translation>
+<translation id="2848086008667475748">Nustatyti kaip numatytąją nustatymuose…</translation>
 <translation id="2858204748079866344">Siekiant apsaugoti jūsų privatumą, „Chrome“ šio lauko automatiškai nepildys jūsų slaptažodžiu.</translation>
 <translation id="285960592395650245">Bandyti atsis. iš naujo</translation>
 <translation id="2870560284913253234">Svetainė</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">Visada rodyti</translation>
 <translation id="418156467088430727">Žiūrėti neprisij. naudoj. versiją naujame skirtuke</translation>
 <translation id="4181841719683918333">Kalbos</translation>
+<translation id="4237377247299956313">Palieskite <ph name="BEGIN_BOLD" />Numatytoji naršyklės programa<ph name="END_BOLD" /></translation>
 <translation id="424315890655130736">Slaptafrazės įvedimas</translation>
 <translation id="4263576668337963058">Rodyti pasiekiamus puslapio veiksmus</translation>
 <translation id="4267380167363222949">Kitas skirtukas</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">QR kodo paieška</translation>
 <translation id="4378154925671717803">Telefonas</translation>
 <translation id="4389019817280890563">Palieskite, kad pakeistumėte kalbą.</translation>
+<translation id="4442550905108052454">Atidarykite skiltį <ph name="BEGIN_BOLD" />Nustatymai<ph name="END_BOLD" /></translation>
 <translation id="4454246407045105932">Pridėti kalbą</translation>
 <translation id="4469418912670346607">Tęsti sąranką</translation>
 <translation id="4474494258097106883">Sukurta specialiai „iPhone“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 90922a1..756b84e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">Синк хийх эхний тохируулга дуусаагүй</translation>
 <translation id="2843803966603263712">Орчуулгын тохиргоог дахин тохируулах</translation>
+<translation id="2848086008667475748">Тохиргоо хэсэгт өгөгдмөл болгох…</translation>
 <translation id="2858204748079866344">Таны нууцлалыг хамгаалахын тулд Chrome таны нууц үгийг энэ талбарт автоматаар бөглөхгүй.</translation>
 <translation id="285960592395650245">Татаж авах үйлдлийг дахин хийх</translation>
 <translation id="2870560284913253234">Ажлын талбар</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">Байнга харуулж байна уу</translation>
 <translation id="418156467088430727">Офлайн хувилбарыг шинэ табад харах</translation>
 <translation id="4181841719683918333">Хэл</translation>
+<translation id="4237377247299956313"><ph name="BEGIN_BOLD" />Өгөгдмөл хөтчийн апп<ph name="END_BOLD" />-ыг товшино уу</translation>
 <translation id="424315890655130736">Нэвтрэх үгийг оруулах</translation>
 <translation id="4263576668337963058">Хуудасны боломжтой үйлдлүүдийг харуулах</translation>
 <translation id="4267380167363222949">Дараагийн таб</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">QR кодоор хайх</translation>
 <translation id="4378154925671717803">Утас</translation>
 <translation id="4389019817280890563">Хэл солихын тулд товшино уу.</translation>
+<translation id="4442550905108052454"><ph name="BEGIN_BOLD" />Тохиргоо<ph name="END_BOLD" />-г нээнэ үү</translation>
 <translation id="4454246407045105932">Хэл нэмэх</translation>
 <translation id="4469418912670346607">Тохируулгыг үргэлжлүүлэх</translation>
 <translation id="4474494258097106883">Таны iPhone-д зориулан бүтээсэн</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index 76c06e9..223ebb3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">Eerste synchronisatieconfiguratie niet voltooid</translation>
 <translation id="2843803966603263712">Vertaalinstellingen opnieuw instellen</translation>
+<translation id="2848086008667475748">Als standaard instellen in Instellingen…</translation>
 <translation id="2858204748079866344">Ter bescherming van je privacy wordt je wachtwoord niet automatisch in dit veld ingevuld door Chrome.</translation>
 <translation id="285960592395650245">Download opnieuw proberen</translation>
 <translation id="2870560284913253234">Site</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">Altijd tonen</translation>
 <translation id="418156467088430727">Offline versie bekijken op nieuw tabblad</translation>
 <translation id="4181841719683918333">Talen</translation>
+<translation id="4237377247299956313">Tik op <ph name="BEGIN_BOLD" />Standaard browser-app<ph name="END_BOLD" /></translation>
 <translation id="424315890655130736">Wachtwoordzin opgeven</translation>
 <translation id="4263576668337963058">Beschikbare pagina-acties tonen</translation>
 <translation id="4267380167363222949">Volgend tabblad</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">Zoeken naar QR-code</translation>
 <translation id="4378154925671717803">Telefoon</translation>
 <translation id="4389019817280890563">Tik om de taal te wijzigen.</translation>
+<translation id="4442550905108052454">Open <ph name="BEGIN_BOLD" />Instellingen<ph name="END_BOLD" />.</translation>
 <translation id="4454246407045105932">Taal toevoegen</translation>
 <translation id="4469418912670346607">Doorgaan met instellen</translation>
 <translation id="4474494258097106883">Ontworpen voor je iPhone</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index fe119dd1..3533d9b2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">Nie dokończono wstępnej konfiguracji synchronizowania</translation>
 <translation id="2843803966603263712">Zresetuj ustawienia tłumaczenia</translation>
+<translation id="2848086008667475748">Określ jako domyślną w ustawieniach…</translation>
 <translation id="2858204748079866344">Aby chronić Twoją prywatność, Chrome nie będzie autouzupełniać hasła w tym polu.</translation>
 <translation id="285960592395650245">Ponów pobieranie</translation>
 <translation id="2870560284913253234">Witryna</translation>
@@ -322,6 +323,7 @@
 <translation id="4172051516777682613">Zawsze pokazuj</translation>
 <translation id="418156467088430727">Wyświetl wersję offline w nowej karcie</translation>
 <translation id="4181841719683918333">Języki</translation>
+<translation id="4237377247299956313">Kliknij <ph name="BEGIN_BOLD" />Domyślna przeglądarka<ph name="END_BOLD" /></translation>
 <translation id="424315890655130736">Wpisz hasło</translation>
 <translation id="4263576668337963058">Pokaż dostępne działania dotyczące strony</translation>
 <translation id="4267380167363222949">Następna karta</translation>
@@ -337,6 +339,7 @@
 <translation id="4375040482473363939">Wyszukiwanie z użyciem kodu QR</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4389019817280890563">Kliknij, by zmienić język.</translation>
+<translation id="4442550905108052454">Otwórz <ph name="BEGIN_BOLD" />Ustawienia<ph name="END_BOLD" /></translation>
 <translation id="4454246407045105932">Dodaj język</translation>
 <translation id="4469418912670346607">Kontynuuj konfigurowanie</translation>
 <translation id="4474494258097106883">Dla Twojego iPhone'a</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index 8487122..e139574 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">Configurarea inițială a sincronizării nu este finalizată</translation>
 <translation id="2843803966603263712">Resetează Traducere</translation>
+<translation id="2848086008667475748">Setează ca prestabilit în Setări…</translation>
 <translation id="2858204748079866344">Pentru a-ți proteja confidențialitatea, Chrome nu va completa automat parola în acest câmp.</translation>
 <translation id="285960592395650245">Reîncearcă să descarci</translation>
 <translation id="2870560284913253234">Site</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">Afișați întotdeauna</translation>
 <translation id="418156467088430727">Vezi versiunea offline într-o filă nouă</translation>
 <translation id="4181841719683918333">Limbi</translation>
+<translation id="4237377247299956313">Atinge <ph name="BEGIN_BOLD" />Aplicația browser prestabilită<ph name="END_BOLD" /></translation>
 <translation id="424315890655130736">Introdu expresia de acces</translation>
 <translation id="4263576668337963058">Afișează acțiunile în pagină disponibile</translation>
 <translation id="4267380167363222949">Fila următoare</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">Căutare coduri QR</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4389019817280890563">Atinge pentru a schimba limba.</translation>
+<translation id="4442550905108052454">Deschide <ph name="BEGIN_BOLD" />Setările<ph name="END_BOLD" /></translation>
 <translation id="4454246407045105932">Adaugă o limbă</translation>
 <translation id="4469418912670346607">Continuă configurarea</translation>
 <translation id="4474494258097106883">Creat pentru iPhone</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index 66baba0..dd77b1a7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">Začetna nastavitev sinhronizacije se ni dokončala</translation>
 <translation id="2843803966603263712">Ponastavi nastavitve za prevajanje</translation>
+<translation id="2848086008667475748">Nastavi kot privzeto v nastavitvah …</translation>
 <translation id="2858204748079866344">Chrome zaradi varovanja vaše zasebnosti ne bo samodejno izpolnil polja za vnos gesla.</translation>
 <translation id="285960592395650245">Vnovičen poskus prenosa</translation>
 <translation id="2870560284913253234">Spletno mesto</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">Vedno pokaži</translation>
 <translation id="418156467088430727">Ogled različice brez povezave na novem zavihku</translation>
 <translation id="4181841719683918333">Jeziki</translation>
+<translation id="4237377247299956313">Dotaknite se možnosti za <ph name="BEGIN_BOLD" />privzeto aplikacijo za brskanje<ph name="END_BOLD" />.</translation>
 <translation id="424315890655130736">Vnos gesla</translation>
 <translation id="4263576668337963058">Prikaži razpoložljiva dejanja na strani</translation>
 <translation id="4267380167363222949">Naslednji zavihek</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">Iskanje kod QR</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4389019817280890563">Dotaknite se, če želite spremeniti jezik.</translation>
+<translation id="4442550905108052454">Odprite <ph name="BEGIN_BOLD" />Nastavitve<ph name="END_BOLD" /></translation>
 <translation id="4454246407045105932">Dodajanje jezika</translation>
 <translation id="4469418912670346607">Nadaljuj nastavitev</translation>
 <translation id="4474494258097106883">Ustvarjeno za vaš iPhone</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 9e6bf976..9ad7459 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -284,6 +284,7 @@
 <translation id="3691593122358196899"><ph name="FOLDER_TITLE" /> இல் புத்தகக்குறியைச் சேர்த்தது</translation>
 <translation id="3709582977625132201">படிக்காததாகக் குறி</translation>
 <translation id="3740397331642243698">Google Chrome உலாவியில் உள்ளிட்ட URLகளை மறைநிலையில் திறக்கும்.</translation>
+<translation id="3762232513783804601">iPadக்காக உருவாக்கப்பட்டது</translation>
 <translation id="3771033907050503522">மறைநிலைத் தாவல்கள்</translation>
 <translation id="3775743491439407556">ஒத்திசைவு வேலை செய்யவில்லை</translation>
 <translation id="3779810277399252432">இணைய இணைப்பு இல்லை.</translation>
@@ -340,6 +341,7 @@
 <translation id="4389019817280890563">மொழியை மாற்ற தட்டவும்.</translation>
 <translation id="4454246407045105932">மொழியைச் சேர்த்தல்</translation>
 <translation id="4469418912670346607">அமைவைத் தொடர்க</translation>
+<translation id="4474494258097106883">iPhoneனுக்காக உருவாக்கப்பட்டது</translation>
 <translation id="4476574785019001431">அமைப்புகள்</translation>
 <translation id="4496373720959965247">தாவல்களைச் சேர்த்து, பக்கங்களுக்கு இடையில் மாறலாம்</translation>
 <translation id="4502566650163919158">இப்போது சரிபார்</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 90edf00d..5e31c60a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -284,6 +284,7 @@
 <translation id="3691593122358196899"><ph name="FOLDER_TITLE" />కి బుక్‌మార్క్ చేయబడింది</translation>
 <translation id="3709582977625132201">చదవనిదిగా గుర్తు పెట్టు</translation>
 <translation id="3740397331642243698">ఇన్‌పుట్ చేసిన URLలను Google Chromeలో అజ్ఞాత మోడ్‌లో తెరుస్తుంది.</translation>
+<translation id="3762232513783804601">మీ iPad కోసం రూపొందించబడింది</translation>
 <translation id="3771033907050503522">అజ్ఞాత ట్యాబ్‌లు</translation>
 <translation id="3775743491439407556">సింక్ పని చేయడం లేదు</translation>
 <translation id="3779810277399252432">ఇంటర్నెట్ కనెక్షన్ లేదు.</translation>
@@ -340,6 +341,7 @@
 <translation id="4389019817280890563">భాషను మార్చడానికి నొక్కండి.</translation>
 <translation id="4454246407045105932">భాషను జోడించండి</translation>
 <translation id="4469418912670346607">సెటప్‌ను కొనసాగించు</translation>
+<translation id="4474494258097106883">మీ iPhone కోసం రూపొందించబడింది</translation>
 <translation id="4476574785019001431">సెట్టింగ్‌లు</translation>
 <translation id="4496373720959965247">ట్యాబ్‌లను జోడించండి మరియు పేజీల మధ్య మారండి</translation>
 <translation id="4502566650163919158">ఇప్పుడే చెక్ చేయండి</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index df497710..9cdd6a4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -185,6 +185,7 @@
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
 <translation id="2840687315230832938">ตั้งค่าการซิงค์เริ่มต้นไม่สำเร็จ</translation>
 <translation id="2843803966603263712">รีเซ็ตการตั้งค่าการแปล</translation>
+<translation id="2848086008667475748">ตั้งเป็นค่าเริ่มต้นในการตั้งค่า…</translation>
 <translation id="2858204748079866344">Chrome จะไม่ป้อนรหัสผ่านลงในช่องนี้โดยอัตโนมัติเพื่อปกป้องความเป็นส่วนตัวของคุณ</translation>
 <translation id="285960592395650245">ลองดาวน์โหลดอีกครั้ง</translation>
 <translation id="2870560284913253234">เว็บไซต์</translation>
@@ -324,6 +325,7 @@
 <translation id="4172051516777682613">แสดงทุกครั้ง</translation>
 <translation id="418156467088430727">ดูเวอร์ชันออฟไลน์ในแท็บใหม่</translation>
 <translation id="4181841719683918333">ภาษา</translation>
+<translation id="4237377247299956313">แตะ<ph name="BEGIN_BOLD" />แอปเบราว์เซอร์เริ่มต้น<ph name="END_BOLD" /></translation>
 <translation id="424315890655130736">ป้อนรหัสผ่าน</translation>
 <translation id="4263576668337963058">แสดงการทำงานของหน้าเว็บที่ใช้ได้</translation>
 <translation id="4267380167363222949">แท็บถัดไป</translation>
@@ -339,6 +341,7 @@
 <translation id="4375040482473363939">ค้นหาโค้ด QR</translation>
 <translation id="4378154925671717803">โทรศัพท์</translation>
 <translation id="4389019817280890563">แตะเพื่อเปลี่ยนภาษา</translation>
+<translation id="4442550905108052454">เปิด<ph name="BEGIN_BOLD" />การตั้งค่า<ph name="END_BOLD" /></translation>
 <translation id="4454246407045105932">เพิ่มภาษา</translation>
 <translation id="4469418912670346607">ตั้งค่าต่อ</translation>
 <translation id="4474494258097106883">สร้างขึ้นเพื่อ iPhone ของคุณ</translation>
diff --git a/ios/chrome/browser/DEPS b/ios/chrome/browser/DEPS
index 1e61cb3..fc1a0ef8 100644
--- a/ios/chrome/browser/DEPS
+++ b/ios/chrome/browser/DEPS
@@ -16,6 +16,7 @@
   "+components/crash/core/browser",
   "+components/crash/core/common",
   "+components/dom_distiller/core",
+  "+components/download",
   "+components/dom_distiller/ios",
   "+components/enterprise",
   "+components/error_page/common",
diff --git a/ios/chrome/browser/chrome_url_constants.cc b/ios/chrome/browser/chrome_url_constants.cc
index 3e6680dd..8e20d14 100644
--- a/ios/chrome/browser/chrome_url_constants.cc
+++ b/ios/chrome/browser/chrome_url_constants.cc
@@ -32,6 +32,7 @@
 const char kChromeUICrashesHost[] = "crashes";
 const char kChromeUICreditsHost[] = "credits";
 const char kChromeUIDinoHost[] = "dino";
+const char kChromeUIDownloadInternalsHost[] = "download-internals";
 const char kChromeUIExternalFileHost[] = "external-file";
 const char kChromeUIFlagsHost[] = "flags";
 const char kChromeUIGCMInternalsHost[] = "gcm-internals";
diff --git a/ios/chrome/browser/chrome_url_constants.h b/ios/chrome/browser/chrome_url_constants.h
index 60052efb..5b25725 100644
--- a/ios/chrome/browser/chrome_url_constants.h
+++ b/ios/chrome/browser/chrome_url_constants.h
@@ -36,6 +36,7 @@
 extern const char kChromeUICrashHost[];
 extern const char kChromeUICreditsHost[];
 extern const char kChromeUIDinoHost[];
+extern const char kChromeUIDownloadInternalsHost[];
 extern const char kChromeUIExternalFileHost[];
 extern const char kChromeUIFlagsHost[];
 extern const char kChromeUIGCMInternalsHost[];
diff --git a/ios/chrome/browser/download/background_service/background_download_service_factory.cc b/ios/chrome/browser/download/background_service/background_download_service_factory.cc
index 9faa8cf0..caec324 100644
--- a/ios/chrome/browser/download/background_service/background_download_service_factory.cc
+++ b/ios/chrome/browser/download/background_service/background_download_service_factory.cc
@@ -14,6 +14,7 @@
 #include "components/download/internal/background_service/file_monitor_impl.h"
 #include "components/download/internal/background_service/ios/background_download_service_impl.h"
 #include "components/download/internal/background_service/ios/background_download_task_helper.h"
+#include "components/download/internal/background_service/logger_impl.h"
 #include "components/download/internal/background_service/model_impl.h"
 #include "components/download/internal/background_service/proto/entry.pb.h"
 #include "components/download/public/background_service/background_download_service.h"
@@ -74,8 +75,11 @@
   base::FilePath files_storage_dir = storage_dir.Append(kFilesStorageDir);
   auto file_monitor = std::make_unique<download::FileMonitorImpl>(
       files_storage_dir, background_task_runner);
+  auto logger = std::make_unique<download::LoggerImpl>();
+  auto* log_sink = logger.get();
   return std::make_unique<download::BackgroundDownloadServiceImpl>(
       std::move(client_set), std::move(model),
       download::BackgroundDownloadTaskHelper::Create(), std::move(file_monitor),
-      files_storage_dir, base::DefaultClock::GetInstance());
+      files_storage_dir, std::move(logger), log_sink,
+      base::DefaultClock::GetInstance());
 }
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index b500c0c..e694d24 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -333,19 +333,6 @@
      base::size(kStartSurfaceOneHourHideShortcutsReturnToRecentTab), nullptr},
 };
 
-const FeatureEntry::FeatureParam kWebViewNativeContextMenuWeb[] = {
-    {web::features::kWebViewNativeContextMenuName,
-     web::features::kWebViewNativeContextMenuParameterWeb}};
-const FeatureEntry::FeatureParam kWebViewNativeContextMenuSystem[] = {
-    {web::features::kWebViewNativeContextMenuName,
-     web::features::kWebViewNativeContextMenuParameterSystem}};
-
-const FeatureEntry::FeatureVariation kWebViewNativeContextMenuVariations[] = {
-    {"Web", kWebViewNativeContextMenuWeb,
-     base::size(kWebViewNativeContextMenuWeb), nullptr},
-    {"System", kWebViewNativeContextMenuSystem,
-     base::size(kWebViewNativeContextMenuSystem), nullptr}};
-
 // To add a new entry, add to the end of kFeatureEntries. There are four
 // distinct types of entries:
 // . ENABLE_DISABLE_VALUE: entry is either enabled, disabled, or uses the
@@ -609,9 +596,7 @@
     {"web-view-native-context-menu",
      flag_descriptions::kWebViewNativeContextMenuName,
      flag_descriptions::kWebViewNativeContextMenuDescription, flags_ui::kOsIos,
-     FEATURE_WITH_PARAMS_VALUE_TYPE(web::features::kWebViewNativeContextMenu,
-                                    kWebViewNativeContextMenuVariations,
-                                    "WebViewNativeContextMenu")},
+     FEATURE_VALUE_TYPE(web::features::kWebViewNativeContextMenu)},
     {"location-permissions-prompt",
      flag_descriptions::kLocationPermissionsPromptName,
      flag_descriptions::kLocationPermissionsPromptDescription, flags_ui::kOsIos,
@@ -797,6 +782,20 @@
      flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillFillMerchantPromoCodeFields)},
+    {"context-menu-phase2",
+     flag_descriptions::kWebViewNativeContextMenuPhase2Name,
+     flag_descriptions::kWebViewNativeContextMenuPhase2Description,
+     flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(web::features::kWebViewNativeContextMenuPhase2)},
+    {"context-menu-phase3",
+     flag_descriptions::kWebViewNativeContextMenuPhase3Name,
+     flag_descriptions::kWebViewNativeContextMenuPhase3Description,
+     flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(web::features::kWebViewNativeContextMenuPhase3)},
+    {"default-wkwebview-context-menu",
+     flag_descriptions::kDefaultWebViewContextMenuName,
+     flag_descriptions::kDefaultWebViewContextMenuDescription, flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(web::features::kDefaultWebViewContextMenu)},
 };
 
 bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index f4040255..c1564c9 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -117,6 +117,12 @@
     "When enabled, will show a modified default browser fullscreen modal promo "
     "UI.";
 
+const char kDefaultWebViewContextMenuName[] =
+    "Use the default WebKit context menus";
+const char kDefaultWebViewContextMenuDescription[] =
+    "When enabled, the default context menus from WebKit will be used in web "
+    "content.";
+
 const char kDelayThresholdMinutesToUpdateGaiaCookieName[] =
     "Delay for polling (in minutes) to verify the existence of GAIA cookies.";
 const char kDelayThresholdMinutesToUpdateGaiaCookieDescription[] =
@@ -541,6 +547,18 @@
     "When enabled, the native context menu are displayed when the user long "
     "press on a link or an image.";
 
+const char kWebViewNativeContextMenuPhase2Name[] =
+    "Context Menu with non-live preview";
+const char kWebViewNativeContextMenuPhase2Description[] =
+    "When enabled, the context menu displayed when long pressing on a link or "
+    "an image has a non-live preview.";
+
+const char kWebViewNativeContextMenuPhase3Name[] =
+    "Context Menu with live preview";
+const char kWebViewNativeContextMenuPhase3Description[] =
+    "When enabled, the context menu displayed when long pressing on a link or "
+    "an image has a live preview.";
+
 const char kRecordSnapshotSizeName[] =
     "Record the size of image and PDF snapshots in UMA histograms";
 const char kRecordSnapshotSizeDescription[] =
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index ccb1cdf..269cb48 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -102,6 +102,11 @@
 extern const char kDefaultToDesktopOnIPadName[];
 extern const char kDefaultToDesktopOnIPadDescription[];
 
+// Title and description for the flag to use default WebKit context menu in web
+// content.
+extern const char kDefaultWebViewContextMenuName[];
+extern const char kDefaultWebViewContextMenuDescription[];
+
 // Title and description for the flag to control the delay (in minutes) for
 // polling for the existence of Gaia cookies for google.com.
 extern const char kDelayThresholdMinutesToUpdateGaiaCookieName[];
@@ -469,6 +474,16 @@
 extern const char kWebViewNativeContextMenuName[];
 extern const char kWebViewNativeContextMenuDescription[];
 
+// Title and description for the flag to enable the phase 2 of context menus in
+// the WebView.
+extern const char kWebViewNativeContextMenuPhase2Name[];
+extern const char kWebViewNativeContextMenuPhase2Description[];
+
+// Title and description for the flag to enable the phase 3 of context menus in
+// the WebView.
+extern const char kWebViewNativeContextMenuPhase3Name[];
+extern const char kWebViewNativeContextMenuPhase3Description[];
+
 // Title and description for the flag to restore Gaia cookies when the user
 // explicitly requests to be signed in to a Google service.
 extern const char kRestoreGaiaCookiesOnUserActionName[];
diff --git a/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm b/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm
index e50df3b..f988e32f 100644
--- a/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm
+++ b/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm
@@ -157,7 +157,8 @@
 #pragma mark - Tests
 
 // Tests that all items are accessible on the home page.
-- (void)testAccessibility {
+// TODO(crbug.com/1237925): Re-enable once misisng accessibility label is fixed.
+- (void)DISABLED_testAccessibility {
   [ChromeEarlGrey verifyAccessibilityForCurrentScreen];
 }
 
diff --git a/ios/chrome/browser/ui/first_run/fre_field_trial.cc b/ios/chrome/browser/ui/first_run/fre_field_trial.cc
index dafed5b..01dd89b8 100644
--- a/ios/chrome/browser/ui/first_run/fre_field_trial.cc
+++ b/ios/chrome/browser/ui/first_run/fre_field_trial.cc
@@ -54,9 +54,9 @@
       default_percent = 0;
       break;
     case version_info::Channel::STABLE:
-      enabled_percent = 0;
-      control_percent = 0;
-      default_percent = 100;
+      enabled_percent = 15;
+      control_percent = 15;
+      default_percent = 70;
       break;
   }
 
diff --git a/ios/chrome/browser/ui/webui/BUILD.gn b/ios/chrome/browser/ui/webui/BUILD.gn
index 62b5f32..49bd3b1 100644
--- a/ios/chrome/browser/ui/webui/BUILD.gn
+++ b/ios/chrome/browser/ui/webui/BUILD.gn
@@ -15,6 +15,8 @@
     "autofill_and_password_manager_internals/password_manager_internals_ui_ios.mm",
     "crashes_ui.cc",
     "crashes_ui.h",
+    "download_internals_ui.cc",
+    "download_internals_ui.h",
     "flags_ui.cc",
     "flags_ui.h",
     "inspect/inspect_ui.h",
@@ -45,6 +47,8 @@
     "//build:branding_buildflags",
     "//components/autofill/core/browser",
     "//components/crash/core/browser",
+    "//components/download/public/background_service:public",
+    "//components/download/resources/download_internals:resources",
     "//components/flags_ui",
     "//components/keyed_service/core",
     "//components/metrics_services_manager",
@@ -64,6 +68,7 @@
     "//ios/chrome/browser/autofill",
     "//ios/chrome/browser/browser_state",
     "//ios/chrome/browser/crash_report",
+    "//ios/chrome/browser/download/background_service:background_service",
     "//ios/chrome/browser/favicon:favicon",
     "//ios/chrome/browser/flags",
     "//ios/chrome/browser/main:public",
diff --git a/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.mm b/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.mm
index 5b4b86c..f9621e53 100644
--- a/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.mm
+++ b/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.mm
@@ -15,6 +15,7 @@
 #include "ios/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_ios.h"
 #include "ios/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui_ios.h"
 #include "ios/chrome/browser/ui/webui/crashes_ui.h"
+#include "ios/chrome/browser/ui/webui/download_internals_ui.h"
 #include "ios/chrome/browser/ui/webui/flags_ui.h"
 #include "ios/chrome/browser/ui/webui/gcm/gcm_internals_ui.h"
 #include "ios/chrome/browser/ui/webui/inspect/inspect_ui.h"
@@ -74,6 +75,8 @@
     return &NewWebUIIOS<AboutUI>;
   if (url_host == kChromeUICrashesHost)
     return &NewWebUIIOS<CrashesUI>;
+  if (url_host == kChromeUIDownloadInternalsHost)
+    return &NewWebUIIOS<DownloadInternalsUI>;
   if (url_host == kChromeUIFlagsHost)
     return &NewWebUIIOS<FlagsUI>;
   if (url_host == kChromeUIGCMInternalsHost)
diff --git a/ios/chrome/browser/ui/webui/download_internals_ui.cc b/ios/chrome/browser/ui/webui/download_internals_ui.cc
new file mode 100644
index 0000000..bff97365
--- /dev/null
+++ b/ios/chrome/browser/ui/webui/download_internals_ui.cc
@@ -0,0 +1,187 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ios/chrome/browser/ui/webui/download_internals_ui.h"
+
+#include <vector>
+
+#include "base/bind.h"
+#include "base/guid.h"
+#include "base/memory/weak_ptr.h"
+#include "components/download/public/background_service/background_download_service.h"
+#include "components/download/public/background_service/download_params.h"
+#include "components/download/public/background_service/logger.h"
+#include "components/grit/download_internals_resources.h"
+#include "components/grit/download_internals_resources_map.h"
+#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#include "ios/chrome/browser/chrome_url_constants.h"
+#include "ios/chrome/browser/download/background_service/background_download_service_factory.h"
+#include "ios/web/public/webui/web_ui_ios.h"
+#include "ios/web/public/webui/web_ui_ios_data_source.h"
+#include "ios/web/public/webui/web_ui_ios_message_handler.h"
+
+// DownloadInternalsUIMessageHandler.
+
+// Glue code between web UI frontend and background download service native
+// code.
+class DownloadInternalsUIMessageHandler : public web::WebUIIOSMessageHandler,
+                                          public download::Logger::Observer {
+ public:
+  DownloadInternalsUIMessageHandler() = default;
+
+  DownloadInternalsUIMessageHandler(const DownloadInternalsUIMessageHandler&) =
+      delete;
+  void operator=(const DownloadInternalsUIMessageHandler&) = delete;
+  ~DownloadInternalsUIMessageHandler() override = default;
+
+ private:
+  // WebUIIOSMessageHandler implementation.
+  void RegisterMessages() override {
+    web_ui()->RegisterMessageCallback(
+        "getServiceStatus",
+        base::BindRepeating(
+            &DownloadInternalsUIMessageHandler::HandleGetServiceStatus,
+            weak_ptr_factory_.GetWeakPtr()));
+    web_ui()->RegisterMessageCallback(
+        "getServiceDownloads",
+        base::BindRepeating(
+            &DownloadInternalsUIMessageHandler::HandleGetServiceDownloads,
+            weak_ptr_factory_.GetWeakPtr()));
+    web_ui()->RegisterMessageCallback(
+        "startDownload",
+        base::BindRepeating(
+            &DownloadInternalsUIMessageHandler::HandleStartDownload,
+            weak_ptr_factory_.GetWeakPtr()));
+
+    ChromeBrowserState* browser_state =
+        ChromeBrowserState::FromWebUIIOS(web_ui());
+    download_service_ =
+        BackgroundDownloadServiceFactory::GetForBrowserState(browser_state);
+
+    // download_service_ will be null in incognito mode on iOS.
+    if (download_service_)
+      download_service_->GetLogger()->AddObserver(this);
+  }
+
+  // download::Logger::Observer implementation.
+  void OnServiceStatusChanged(const base::Value& service_status) override {
+    std::vector<const base::Value*> args;
+    args.push_back(&service_status);
+    web_ui()->FireWebUIListener("service-status-changed", args);
+  }
+
+  void OnServiceDownloadsAvailable(
+      const base::Value& service_downloads) override {
+    std::vector<const base::Value*> args;
+    args.push_back(&service_downloads);
+    web_ui()->FireWebUIListener("service-downloads-available", args);
+  }
+
+  void OnServiceDownloadChanged(const base::Value& service_download) override {
+    std::vector<const base::Value*> args;
+    args.push_back(&service_download);
+    web_ui()->FireWebUIListener("service-download-changed", args);
+  }
+
+  void OnServiceDownloadFailed(const base::Value& service_download) override {
+    std::vector<const base::Value*> args;
+    args.push_back(&service_download);
+    web_ui()->FireWebUIListener("service-download-failed", args);
+  }
+
+  void OnServiceRequestMade(const base::Value& service_request) override {
+    std::vector<const base::Value*> args;
+    args.push_back(&service_request);
+    web_ui()->FireWebUIListener("service-request-made", args);
+  }
+
+  void HandleGetServiceStatus(const base::ListValue* args) {
+    if (!download_service_)
+      return;
+
+    const base::Value* callback_id;
+    CHECK(args->Get(0, &callback_id));
+    web_ui()->ResolveJavascriptCallback(
+        *callback_id, download_service_->GetLogger()->GetServiceStatus());
+  }
+
+  void HandleGetServiceDownloads(const base::ListValue* args) {
+    if (!download_service_)
+      return;
+
+    const base::Value* callback_id;
+    CHECK(args->Get(0, &callback_id));
+
+    web_ui()->ResolveJavascriptCallback(
+        *callback_id, download_service_->GetLogger()->GetServiceDownloads());
+  }
+
+  void HandleStartDownload(const base::ListValue* args) {
+    if (!download_service_)
+      return;
+
+    CHECK_GT(args->GetList().size(), 1u) << "Missing argument download URL.";
+    GURL url = GURL(args->GetList()[1].GetString());
+    if (!url.is_valid()) {
+      LOG(WARNING) << "Can't parse download URL, try to enter a valid URL.";
+      return;
+    }
+
+    download::DownloadParams params;
+    params.guid = base::GenerateGUID();
+    params.client = download::DownloadClient::DEBUGGING;
+    params.request_params.method = "GET";
+    params.request_params.url = url;
+
+    net::NetworkTrafficAnnotationTag traffic_annotation =
+        net::DefineNetworkTrafficAnnotation("download_internals_webui_source",
+                                            R"(
+          semantics {
+            sender: "Download Internals Page"
+            description:
+              "Starts a download with background download service in WebUI."
+            trigger:
+              "User clicks on the download button in "
+              "chrome://download-internals."
+            data: "None"
+            destination: WEBSITE
+          }
+          policy {
+            cookies_allowed: YES
+            cookies_store: "user"
+            setting: "This feature cannot be disabled by settings."
+            policy_exception_justification: "Not implemented."
+          })");
+
+    params.traffic_annotation =
+        net::MutableNetworkTrafficAnnotationTag(traffic_annotation);
+    download_service_->StartDownload(std::move(params));
+  }
+
+  download::BackgroundDownloadService* download_service_ = nullptr;
+
+  base::WeakPtrFactory<DownloadInternalsUIMessageHandler> weak_ptr_factory_{
+      this};
+};
+
+DownloadInternalsUI::DownloadInternalsUI(web::WebUIIOS* web_ui,
+                                         const std::string& host)
+    : web::WebUIIOSController(web_ui, host) {
+  web_ui->AddMessageHandler(
+      std::make_unique<DownloadInternalsUIMessageHandler>());
+
+  web::WebUIIOSDataSource* html_source =
+      web::WebUIIOSDataSource::Create(kChromeUIDownloadInternalsHost);
+  html_source->UseStringsJs();
+  for (size_t i = 0; i < kDownloadInternalsResourcesSize; ++i) {
+    html_source->AddResourcePath(kDownloadInternalsResources[i].path,
+                                 kDownloadInternalsResources[i].id);
+  }
+  html_source->SetDefaultResource(
+      IDR_DOWNLOAD_INTERNALS_DOWNLOAD_INTERNALS_HTML);
+  web::WebUIIOSDataSource::Add(ChromeBrowserState::FromWebUIIOS(web_ui),
+                               html_source);
+}
+
+DownloadInternalsUI::~DownloadInternalsUI() = default;
diff --git a/ios/chrome/browser/ui/webui/download_internals_ui.h b/ios/chrome/browser/ui/webui/download_internals_ui.h
new file mode 100644
index 0000000..92cee991
--- /dev/null
+++ b/ios/chrome/browser/ui/webui/download_internals_ui.h
@@ -0,0 +1,20 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_WEBUI_DOWNLOAD_INTERNALS_UI_H_
+#define IOS_CHROME_BROWSER_UI_WEBUI_DOWNLOAD_INTERNALS_UI_H_
+
+#include "ios/web/public/webui/web_ui_ios_controller.h"
+
+// The WebUI for chrome://download-internals on iOS.
+class DownloadInternalsUI : public web::WebUIIOSController {
+ public:
+  DownloadInternalsUI(web::WebUIIOS* web_ui, const std::string& host);
+
+  DownloadInternalsUI(const DownloadInternalsUI&) = delete;
+  void operator=(const DownloadInternalsUI&) = delete;
+  ~DownloadInternalsUI() override;
+};
+
+#endif  // IOS_CHROME_BROWSER_UI_WEBUI_DOWNLOAD_INTERNALS_UI_H_
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_af.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_af.xtb
index f2c9444..eb2dd5d 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_af.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_af.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Gebruikernaam</translation>
 <translation id="8518521100965196752">Om wagwoorde te gebruik, moet jy eers 'n wagkode op jou toestel stel.</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648">Vir <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_da.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_da.xtb
index d374e02..b9ea6ca 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_da.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_da.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Brugernavn</translation>
 <translation id="8518521100965196752">Før du kan bruge adgangskoder, skal du angive en adgangskode på din enhed.</translation>
 <translation id="8877181643142698531">Webadresse</translation>
+<translation id="9069288651897538648">For <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_hu.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_hu.xtb
index deaf362..27a6597 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_hu.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_hu.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Felhasználónév</translation>
 <translation id="8518521100965196752">A jelszavak használatához előbb be kell állítania az eszközön a biztonsági kódot.</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648">Webhely: <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lo.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lo.xtb
index d73d8b34..cd59354 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lo.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lo.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">ຊື່​ຜູ້​ໃຊ້</translation>
 <translation id="8518521100965196752">ເພື່ອໃຊ້ລະຫັດຜ່ານ, ທ່ານຕ້ອງຕັ້ງລະຫັດຜ່ານໃນອຸປະກອນຂອງທ່ານກ່ອນ.</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648">ສຳລັບ <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lt.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lt.xtb
index ab01db67..183fdd7 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lt.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lt.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Vartotojo vardas</translation>
 <translation id="8518521100965196752">Jei norite naudoti slaptažodžius, pirmiausia turite nustatyti įrenginio slaptažodį.</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648">Skirta <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mn.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mn.xtb
index 14df060..c0d3dc4e4 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mn.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mn.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Хэрэглэгчийн нэр</translation>
 <translation id="8518521100965196752">Нууц үгнүүдийг ашиглахын тулд та эхлээд төхөөрөмж дээрээ нууц код тохируулах ёстой.</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648"><ph name="URL" />-д</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_nl.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_nl.xtb
index 544330a..21fa3a976 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_nl.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_nl.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Gebruikersnaam</translation>
 <translation id="8518521100965196752">Als je wachtwoorden wilt gebruiken, moet je eerst een toegangscode instellen op je apparaat.</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648">Voor <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_pl.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_pl.xtb
index 70dcff2..9f02182 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_pl.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_pl.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Nazwa użytkownika</translation>
 <translation id="8518521100965196752">Aby użyć haseł, musisz najpierw ustawić kod dostępu na urządzeniu.</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648"><ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ro.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ro.xtb
index 81bd549..a2a223c 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ro.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ro.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Nume de utilizator</translation>
 <translation id="8518521100965196752">Pentru a folosi parolele, trebuie mai întâi să setezi o parolă pe dispozitiv.</translation>
 <translation id="8877181643142698531">Adresa URL</translation>
+<translation id="9069288651897538648">Pentru <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sl.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sl.xtb
index eadc2ba..4ab1cce 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sl.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sl.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">Uporabniško ime</translation>
 <translation id="8518521100965196752">Če želite uporabiti gesla, morate najprej nastaviti geslo v napravi.</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648">Za <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ta.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ta.xtb
index f1af1fc..6a3dd2a 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ta.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ta.xtb
@@ -11,6 +11,7 @@
 <translation id="3789385946721385622">பயனர்பெயர்</translation>
 <translation id="4064278913989596727">உதவி</translation>
 <translation id="4241076354893135477">Chrome கடவுச்சொற்கள் எதுவுமில்லை</translation>
+<translation id="4452240207605337349">கடவுச்சொல்லைச் சேமிக்க முடியவில்லை</translation>
 <translation id="5118084770294029567">அனைத்துக் கடவுச்சொற்கள்</translation>
 <translation id="5148402015874782921">ரத்துசெய்</translation>
 <translation id="5366190986669335938">Chromeமில் நீங்கள் சேமித்துள்ள கடவுச்சொற்களை எந்த ஆப்ஸிலிருந்தும் அணுகலாம்.</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_te.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_te.xtb
index 579cdde..8887316 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_te.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_te.xtb
@@ -11,6 +11,7 @@
 <translation id="3789385946721385622">యూజర్‌నేమ్</translation>
 <translation id="4064278913989596727">సహాయం</translation>
 <translation id="4241076354893135477">Chrome పాస్‌వర్డ్‌లు ఏవీ లేవు</translation>
+<translation id="4452240207605337349">పాస్‌వర్డ్‌ను సేవ్ చేయడం సాధ్యం కాదు</translation>
 <translation id="5118084770294029567">అన్ని పాస్‌వర్డ్‌లు</translation>
 <translation id="5148402015874782921">రద్దు చేయి</translation>
 <translation id="5366190986669335938">మీరు Chromeలో సేవ్ చేసే పాస్‌వర్డ్‌లను ఏ యాప్ నుండి అయినా యాక్సెస్ చేయండి.</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_th.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_th.xtb
index 3bacd9d..fdcea4f3 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_th.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_th.xtb
@@ -39,4 +39,5 @@
 <translation id="8503813439785031346">ชื่อผู้ใช้</translation>
 <translation id="8518521100965196752">หากต้องการใช้รหัสผ่าน คุณต้องตั้งรหัสผ่านในอุปกรณ์ก่อน</translation>
 <translation id="8877181643142698531">URL</translation>
+<translation id="9069288651897538648">สำหรับ <ph name="URL" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/web/common/features.h b/ios/web/common/features.h
index 1cd2c26b..1527a8b 100644
--- a/ios/web/common/features.h
+++ b/ios/web/common/features.h
@@ -52,18 +52,21 @@
 // generate PDF when Page Snapshot is taken just to record PDF size.
 extern const base::Feature kRecordSnapshotSize;
 
-// When enabled, use the native context menu in web content, for the iOS version
-// that supports it.
+// When enabled, use the native context menu in web content.
 extern const base::Feature kWebViewNativeContextMenu;
 
+// When enabled, display non-live preview for context menus in web content.
+extern const base::Feature kWebViewNativeContextMenuPhase2;
+
+// When enabled, display previews for native context menu in web content.
+extern const base::Feature kWebViewNativeContextMenuPhase3;
+
+// When enabled, the default context menu from WKWebView is used.
+extern const base::Feature kDefaultWebViewContextMenu;
+
 // Disables the screenshots of non-HTML pages on iOS15.
 extern const base::Feature kDisableNonHTMLScreenshotOnIOS15;
 
-// Parameter name and values for the native context menu.
-extern const char kWebViewNativeContextMenuName[];
-extern const char kWebViewNativeContextMenuParameterSystem[];
-extern const char kWebViewNativeContextMenuParameterWeb[];
-
 // When true, for each navigation, the default user agent is chosen by the
 // WebClient GetDefaultUserAgent() method. If it is false, the mobile version
 // is requested by default.
diff --git a/ios/web/common/features.mm b/ios/web/common/features.mm
index 0cd6850..ed5cdc6b 100644
--- a/ios/web/common/features.mm
+++ b/ios/web/common/features.mm
@@ -46,13 +46,18 @@
 const base::Feature kWebViewNativeContextMenu{"WebViewNativeContextMenu",
                                               base::FEATURE_ENABLED_BY_DEFAULT};
 
+const base::Feature kWebViewNativeContextMenuPhase2{
+    "WebViewNativeContextMenuPhase2", base::FEATURE_DISABLED_BY_DEFAULT};
+
+const base::Feature kWebViewNativeContextMenuPhase3{
+    "WebViewNativeContextMenuPhase3", base::FEATURE_DISABLED_BY_DEFAULT};
+
+const base::Feature kDefaultWebViewContextMenu{
+    "DefaultWebViewContextMenu", base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kDisableNonHTMLScreenshotOnIOS15{
     "DisableNonHTMLScreenshotOnIOS15", base::FEATURE_ENABLED_BY_DEFAULT};
 
-const char kWebViewNativeContextMenuName[] = "type";
-const char kWebViewNativeContextMenuParameterSystem[] = "system";
-const char kWebViewNativeContextMenuParameterWeb[] = "web";
-
 bool UseWebClientDefaultUserAgent() {
   if (@available(iOS 13, *)) {
     return base::FeatureList::IsEnabled(kUseDefaultUserAgentInWebClient);
@@ -61,26 +66,13 @@
 }
 
 bool UseWebViewNativeContextMenuWeb() {
-  if (@available(iOS 13, *)) {
-    if (!base::FeatureList::IsEnabled(kWebViewNativeContextMenu))
-      return false;
-    std::string field_trial_param = base::GetFieldTrialParamValueByFeature(
-        kWebViewNativeContextMenu, kWebViewNativeContextMenuName);
-    return field_trial_param == kWebViewNativeContextMenuParameterWeb;
-  }
-  return false;
+  return base::FeatureList::IsEnabled(kDefaultWebViewContextMenu);
 }
 
 bool UseWebViewNativeContextMenuSystem() {
-  if (@available(iOS 13, *)) {
-    if (!base::FeatureList::IsEnabled(kWebViewNativeContextMenu))
-      return false;
-    std::string field_trial_param = base::GetFieldTrialParamValueByFeature(
-        kWebViewNativeContextMenu, kWebViewNativeContextMenuName);
-    return field_trial_param.empty() ||
-           field_trial_param == kWebViewNativeContextMenuParameterSystem;
-  }
-  return false;
+  return base::FeatureList::IsEnabled(kWebViewNativeContextMenu) ||
+         base::FeatureList::IsEnabled(kWebViewNativeContextMenuPhase2) ||
+         base::FeatureList::IsEnabled(kWebViewNativeContextMenuPhase3);
 }
 
 bool ShouldTakeScreenshotOnNonHTMLContent() {
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index a7b2761..e2c21cad 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -1549,16 +1549,11 @@
           requireGestureRecognizerToFail:swipeRecognizer];
     }
 
-    BOOL usingNewContextMenu = NO;
     if (web::GetWebClient()->EnableLongPressUIContextMenu()) {
-      if (@available(iOS 13, *)) {
-        usingNewContextMenu = YES;
         self.contextMenuController = [[CRWContextMenuController alloc]
             initWithWebView:self.webView
                    webState:self.webStateImpl];
-      }
-    }
-    if (!usingNewContextMenu) {
+    } else {
       // Default to legacy implementation.
       self.UIHandler.contextMenuController =
           [[CRWLegacyContextMenuController alloc]
diff --git a/ios/web/web_state/ui/wk_web_view_configuration_provider.mm b/ios/web/web_state/ui/wk_web_view_configuration_provider.mm
index 6f587de..1e574d61 100644
--- a/ios/web/web_state/ui/wk_web_view_configuration_provider.mm
+++ b/ios/web/web_state/ui/wk_web_view_configuration_provider.mm
@@ -120,11 +120,9 @@
       // displayed and also prevents the iOS 13 ContextMenu delegate methods
       // from being called.
       // https://github.com/WebKit/webkit/blob/1233effdb7826a5f03b3cdc0f67d713741e70976/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm#L307
-      BOOL disable_long_press_system_actions =
-
-          web::GetWebClient()->EnableLongPressAndForceTouchHandling() ||
-          web::GetWebClient()->EnableLongPressUIContextMenu();
-      [configuration_ setValue:@(!disable_long_press_system_actions)
+      BOOL enable_webkit_long_press_actions =
+          !web::GetWebClient()->EnableLongPressAndForceTouchHandling();
+      [configuration_ setValue:@(enable_webkit_long_press_actions)
                         forKey:@"longPressActionsEnabled"];
     } @catch (NSException* exception) {
       NOTREACHED() << "Error setting value for longPressActionsEnabled";
diff --git a/media/capture/video/chromeos/camera_app_device_impl.cc b/media/capture/video/chromeos/camera_app_device_impl.cc
index bf15806..fba7799 100644
--- a/media/capture/video/chromeos/camera_app_device_impl.cc
+++ b/media/capture/video/chromeos/camera_app_device_impl.cc
@@ -400,11 +400,14 @@
   }
 
   has_ongoing_document_detection_task_ = true;
+  // Since we destroy |document_scanner_service_| on mojo thread and this
+  // callback is also called on mojo thread, it should be safe to just use
+  // base::Unretained(this) here.
   document_scanner_service_->DetectCornersFromNV12Image(
       std::move(memory.region),
       base::BindOnce(
           &CameraAppDeviceImpl::OnDetectedDocumentCornersOnMojoThread,
-          weak_ptr_factory_for_mojo_.GetWeakPtr(), rotation));
+          base::Unretained(this), rotation));
 }
 
 void CameraAppDeviceImpl::OnDetectedDocumentCornersOnMojoThread(
diff --git a/net/cert/cert_verify_proc_win.cc b/net/cert/cert_verify_proc_win.cc
index 213d160e..e5117c4f 100644
--- a/net/cert/cert_verify_proc_win.cc
+++ b/net/cert/cert_verify_proc_win.cc
@@ -42,18 +42,6 @@
 
 namespace {
 
-struct FreeCertChainContextFunctor {
-  void operator()(PCCERT_CHAIN_CONTEXT chain_context) const {
-    if (chain_context)
-      CertFreeCertificateChain(chain_context);
-  }
-};
-
-typedef std::unique_ptr<const CERT_CHAIN_CONTEXT, FreeCertChainContextFunctor>
-    ScopedPCCERT_CHAIN_CONTEXT;
-
-//-----------------------------------------------------------------------------
-
 int MapSecurityError(SECURITY_STATUS err) {
   // There are numerous security error codes, but these are the ones we thus
   // far find interesting.
@@ -755,7 +743,7 @@
   }
 
   // Determine the issuer cert for the incoming cert
-  ScopedPCCERT_CONTEXT issuer_cert;
+  crypto::ScopedPCCERT_CONTEXT issuer_cert;
   if (local_params.pIssuerCert &&
       CryptVerifyCertificateSignatureEx(
           NULL, subject_cert->dwCertEncodingType,
@@ -873,8 +861,9 @@
   // CRLSet.
   ScopedThreadLocalCRLSet thread_local_crlset(crl_set);
 
-  ScopedPCCERT_CONTEXT cert_list = x509_util::CreateCertContextWithChain(
-      cert, x509_util::InvalidIntermediateBehavior::kIgnore);
+  crypto::ScopedPCCERT_CONTEXT cert_list =
+      x509_util::CreateCertContextWithChain(
+          cert, x509_util::InvalidIntermediateBehavior::kIgnore);
   if (!cert_list) {
     verify_result->cert_status |= CERT_STATUS_INVALID;
     return ERR_CERT_INVALID;
@@ -1099,7 +1088,7 @@
     GetCertChainInfo(chain_context, verify_result);
   }
 
-  ScopedPCCERT_CHAIN_CONTEXT scoped_chain_context(chain_context);
+  crypto::ScopedPCCERT_CHAIN_CONTEXT scoped_chain_context(chain_context);
 
   verify_result->cert_status |= MapCertChainErrorStatusToCertStatus(
       chain_context->TrustStatus.dwErrorStatus);
diff --git a/net/cert/x509_util_win.cc b/net/cert/x509_util_win.cc
index 466d8a84..ad819d9 100644
--- a/net/cert/x509_util_win.cc
+++ b/net/cert/x509_util_win.cc
@@ -50,11 +50,12 @@
   return result;
 }
 
-ScopedPCCERT_CONTEXT CreateCertContextWithChain(const X509Certificate* cert) {
+crypto::ScopedPCCERT_CONTEXT CreateCertContextWithChain(
+    const X509Certificate* cert) {
   return CreateCertContextWithChain(cert, InvalidIntermediateBehavior::kFail);
 }
 
-ScopedPCCERT_CONTEXT CreateCertContextWithChain(
+crypto::ScopedPCCERT_CONTEXT CreateCertContextWithChain(
     const X509Certificate* cert,
     InvalidIntermediateBehavior invalid_intermediate_behavior) {
   // Create an in-memory certificate store to hold the certificate and its
@@ -74,7 +75,7 @@
       CERT_STORE_ADD_ALWAYS, &primary_cert);
   if (!ok || !primary_cert)
     return nullptr;
-  ScopedPCCERT_CONTEXT scoped_primary_cert(primary_cert);
+  crypto::ScopedPCCERT_CONTEXT scoped_primary_cert(primary_cert);
 
   for (const auto& intermediate : cert->intermediate_buffers()) {
     ok = CertAddEncodedCertificateToStore(
diff --git a/net/cert/x509_util_win.h b/net/cert/x509_util_win.h
index c1c8f49..7d66779 100644
--- a/net/cert/x509_util_win.h
+++ b/net/cert/x509_util_win.h
@@ -12,22 +12,13 @@
 
 #include "base/memory/ref_counted.h"
 #include "base/win/wincrypt_shim.h"
+#include "crypto/scoped_capi_types.h"
 #include "net/base/hash_value.h"
 #include "net/base/net_export.h"
 #include "net/cert/x509_certificate.h"
 
 namespace net {
 
-struct FreeCertContextFunctor {
-  void operator()(PCCERT_CONTEXT context) const {
-    if (context)
-      CertFreeCertificateContext(context);
-  }
-};
-
-using ScopedPCCERT_CONTEXT =
-    std::unique_ptr<const CERT_CONTEXT, FreeCertContextFunctor>;
-
 namespace x509_util {
 
 // Creates an X509Certificate representing |os_cert| with intermediates
@@ -52,8 +43,8 @@
 // multiple threads if no further modifications happen, it is generally
 // preferable for each thread that needs such a context to obtain its own,
 // rather than risk thread-safety issues by sharing.
-NET_EXPORT ScopedPCCERT_CONTEXT
-CreateCertContextWithChain(const X509Certificate* cert);
+NET_EXPORT crypto::ScopedPCCERT_CONTEXT CreateCertContextWithChain(
+    const X509Certificate* cert);
 
 // Specify behavior if an intermediate certificate fails CERT_CONTEXT parsing.
 // kFail means the function should return a failure result immediately. kIgnore
@@ -62,7 +53,7 @@
 
 // As CreateCertContextWithChain above, but |invalid_intermediate_behavior|
 // specifies behavior if intermediates of |cert| could not be converted.
-NET_EXPORT ScopedPCCERT_CONTEXT CreateCertContextWithChain(
+NET_EXPORT crypto::ScopedPCCERT_CONTEXT CreateCertContextWithChain(
     const X509Certificate* cert,
     InvalidIntermediateBehavior invalid_intermediate_behavior);
 
diff --git a/net/ssl/client_cert_store_win.cc b/net/ssl/client_cert_store_win.cc
index 1f5f81b7..bd5a95a6 100644
--- a/net/ssl/client_cert_store_win.cc
+++ b/net/ssl/client_cert_store_win.cc
@@ -44,7 +44,7 @@
  public:
   ClientCertIdentityWin(
       scoped_refptr<net::X509Certificate> cert,
-      ScopedPCCERT_CONTEXT cert_context,
+      crypto::ScopedPCCERT_CONTEXT cert_context,
       scoped_refptr<base::SingleThreadTaskRunner> key_task_runner)
       : ClientCertIdentity(std::move(cert)),
         cert_context_(std::move(cert_context)),
@@ -60,7 +60,7 @@
   }
 
  private:
-  ScopedPCCERT_CONTEXT cert_context_;
+  crypto::ScopedPCCERT_CONTEXT cert_context_;
   scoped_refptr<base::SingleThreadTaskRunner> key_task_runner_;
 };
 
@@ -153,7 +153,7 @@
     PCCERT_CONTEXT cert_context =
         chain_context->rgpChain[0]->rgpElement[0]->pCertContext;
     // Copy the certificate, so that it is valid after |cert_store| is closed.
-    ScopedPCCERT_CONTEXT cert_context2;
+    crypto::ScopedPCCERT_CONTEXT cert_context2;
     PCCERT_CONTEXT raw = nullptr;
     BOOL ok = CertAddCertificateContextToStore(
         nullptr, cert_context, CERT_STORE_ADD_USE_EXISTING, &raw);
@@ -164,7 +164,7 @@
     cert_context2.reset(raw);
 
     // Grab the intermediates, if any.
-    std::vector<ScopedPCCERT_CONTEXT> intermediates_storage;
+    std::vector<crypto::ScopedPCCERT_CONTEXT> intermediates_storage;
     std::vector<PCCERT_CONTEXT> intermediates;
     for (DWORD i = 1; i < chain_context->rgpChain[0]->cElement; ++i) {
       PCCERT_CONTEXT chain_intermediate =
@@ -283,7 +283,7 @@
       return false;
     }
     // Hold the reference to the certificate (since we requested a copy).
-    ScopedPCCERT_CONTEXT scoped_cert(cert);
+    crypto::ScopedPCCERT_CONTEXT scoped_cert(cert);
 
     // Add dummy private key data to the certificate - otherwise the certificate
     // would be discarded by the filtering routines.
diff --git a/pdf/BUILD.gn b/pdf/BUILD.gn
index 2788f16..10453cab 100644
--- a/pdf/BUILD.gn
+++ b/pdf/BUILD.gn
@@ -253,6 +253,7 @@
       "accessibility_helper.h",
       "accessibility_structs.cc",
       "accessibility_structs.h",
+      "pdf_accessibility_action_handler.h",
     ]
 
     configs += [ ":strict" ]
diff --git a/pdf/pdf_accessibility_action_handler.h b/pdf/pdf_accessibility_action_handler.h
new file mode 100644
index 0000000..f065fff
--- /dev/null
+++ b/pdf/pdf_accessibility_action_handler.h
@@ -0,0 +1,22 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PDF_PDF_ACCESSIBILITY_ACTION_HANDLER_H_
+#define PDF_PDF_ACCESSIBILITY_ACTION_HANDLER_H_
+
+namespace chrome_pdf {
+
+struct AccessibilityActionData;
+
+class PdfAccessibilityActionHandler {
+ public:
+  virtual ~PdfAccessibilityActionHandler() = default;
+
+  virtual void HandleAccessibilityAction(
+      const AccessibilityActionData& action_data) = 0;
+};
+
+}  // namespace chrome_pdf
+
+#endif  // PDF_PDF_ACCESSIBILITY_ACTION_HANDLER_H_
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc
index db11bad..341b1839 100644
--- a/pdf/pdfium/pdfium_engine.cc
+++ b/pdf/pdfium/pdfium_engine.cc
@@ -3420,8 +3420,14 @@
   gfx::Rect rv;
   rv.set_x(static_cast<int>(position_.x() / current_zoom_));
   rv.set_y(static_cast<int>(position_.y() / current_zoom_));
-  rv.set_width(static_cast<int>(ceil(plugin_size().width() / current_zoom_)));
-  rv.set_height(static_cast<int>(ceil(plugin_size().height() / current_zoom_)));
+
+  // TODO(crbug.com/1237952): Can we avoid the need for .has_value()?
+  if (plugin_size_.has_value()) {
+    rv.set_width(static_cast<int>(ceil(plugin_size_->width() / current_zoom_)));
+    rv.set_height(
+        static_cast<int>(ceil(plugin_size_->height() / current_zoom_)));
+  }
+
   return rv;
 }
 
diff --git a/pdf/pdfium/pdfium_engine.h b/pdf/pdfium/pdfium_engine.h
index bd4d90a1..a08912e 100644
--- a/pdf/pdfium/pdfium_engine.h
+++ b/pdf/pdfium/pdfium_engine.h
@@ -13,6 +13,7 @@
 #include <string>
 #include <vector>
 
+#include "base/check.h"
 #include "base/containers/flat_map.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
@@ -259,7 +260,11 @@
   friend class PDFiumTestBase;
   friend class SelectionChangeInvalidator;
 
-  const gfx::Size& plugin_size() const { return plugin_size_.value(); }
+  gfx::Size plugin_size() const {
+    // TODO(crbug.com/1237952): Just use .value() after fixing call sites.
+    DCHECK(plugin_size_.has_value());
+    return plugin_size_.value_or(gfx::Size());
+  }
 
   // We finished getting the pdf file, so load it. This will complete
   // asynchronously (due to password fetching) and may be run multiple times.
diff --git a/pdf/pdfium/pdfium_engine_unittest.cc b/pdf/pdfium/pdfium_engine_unittest.cc
index c93982d..81116ae 100644
--- a/pdf/pdfium/pdfium_engine_unittest.cc
+++ b/pdf/pdfium/pdfium_engine_unittest.cc
@@ -29,7 +29,10 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
+#include "third_party/blink/public/common/input/web_mouse_event.h"
+#include "third_party/blink/public/common/input/web_pointer_properties.h"
 #include "ui/gfx/geometry/point.h"
+#include "ui/gfx/geometry/point_f.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/size.h"
 
@@ -120,9 +123,7 @@
     }
 
     // Verify that loading can finish.
-    while (initialize_result.document_loader->SimulateLoadData(UINT32_MAX))
-      continue;
-
+    initialize_result.FinishLoading();
     EXPECT_EQ(engine.GetNumberOfPages(), CountAvailablePages(engine));
 
     return loaded_incrementally;
@@ -450,8 +451,7 @@
   PDFiumEngine& engine = *initialize_result.engine;
 
   engine.PluginSizeUpdated({});
-  while (initialize_result.document_loader->SimulateLoadData(UINT32_MAX))
-    continue;
+  initialize_result.FinishLoading();
 
   EXPECT_EQ(engine.GetNumberOfPages(), CountAvailablePages(engine));
 }
@@ -465,8 +465,7 @@
 
   EXPECT_TRUE(initialize_result.document_loader->SimulateLoadData(1024));
   engine.PluginSizeUpdated({});
-  while (initialize_result.document_loader->SimulateLoadData(UINT32_MAX))
-    continue;
+  initialize_result.FinishLoading();
 
   EXPECT_EQ(engine.GetNumberOfPages(), CountAvailablePages(engine));
 }
@@ -481,8 +480,7 @@
   ResultCallback callback;
   EXPECT_CALL(client, ScheduleTaskOnMainThread).WillOnce(MoveArg<1>(&callback));
 
-  while (initialize_result.document_loader->SimulateLoadData(UINT32_MAX))
-    continue;
+  initialize_result.FinishLoading();
   engine.PluginSizeUpdated({});
 
   ASSERT_TRUE(callback);
@@ -491,6 +489,37 @@
   EXPECT_EQ(engine.GetNumberOfPages(), CountAvailablePages(engine));
 }
 
+TEST_F(PDFiumEngineTest, OnLeftMouseDownBeforePluginSizeUpdated) {
+  NiceMock<MockTestClient> client;
+  InitializeEngineResult initialize_result = InitializeEngineWithoutLoading(
+      &client, FILE_PATH_LITERAL("rectangles_multi_pages.pdf"));
+  ASSERT_TRUE(initialize_result.engine);
+  initialize_result.FinishLoading();
+  PDFiumEngine& engine = *initialize_result.engine;
+
+  EXPECT_TRUE(engine.HandleInputEvent(blink::WebMouseEvent(
+      blink::WebInputEvent::Type::kMouseDown, {0, 0}, {100, 200},
+      blink::WebPointerProperties::Button::kLeft, /*click_count_param=*/1,
+      blink::WebInputEvent::Modifiers::kLeftButtonDown,
+      blink::WebInputEvent::GetStaticTimeStampForTests())));
+}
+
+TEST_F(PDFiumEngineTest, OnLeftMouseDownAfterPluginSizeUpdated) {
+  NiceMock<MockTestClient> client;
+  InitializeEngineResult initialize_result = InitializeEngineWithoutLoading(
+      &client, FILE_PATH_LITERAL("rectangles_multi_pages.pdf"));
+  ASSERT_TRUE(initialize_result.engine);
+  initialize_result.FinishLoading();
+  PDFiumEngine& engine = *initialize_result.engine;
+
+  engine.PluginSizeUpdated({300, 400});
+  EXPECT_TRUE(engine.HandleInputEvent(blink::WebMouseEvent(
+      blink::WebInputEvent::Type::kMouseDown, {0, 0}, {100, 200},
+      blink::WebPointerProperties::Button::kLeft, /*click_count_param=*/1,
+      blink::WebInputEvent::Modifiers::kLeftButtonDown,
+      blink::WebInputEvent::GetStaticTimeStampForTests())));
+}
+
 TEST_F(PDFiumEngineTest, IncrementalLoadingFeatureDefault) {
   EXPECT_FALSE(TryLoadIncrementally());
 }
@@ -565,8 +594,7 @@
   // Finish loading the document. `SendThumbnailCallback` should be run for the
   // last page.
   EXPECT_CALL(last_loaded, Run);
-  while (initialize_result.document_loader->SimulateLoadData(UINT32_MAX))
-    continue;
+  initialize_result.FinishLoading();
 }
 
 using PDFiumEngineDeathTest = PDFiumEngineTest;
diff --git a/pdf/pdfium/pdfium_test_base.cc b/pdf/pdfium/pdfium_test_base.cc
index 870bacf1..72994c3 100644
--- a/pdf/pdfium/pdfium_test_base.cc
+++ b/pdf/pdfium/pdfium_test_base.cc
@@ -4,6 +4,8 @@
 
 #include "pdf/pdfium/pdfium_test_base.h"
 
+#include <stdint.h>
+
 #include <memory>
 #include <string>
 #include <utility>
@@ -16,6 +18,7 @@
 #include "pdf/ppapi_migration/url_loader.h"
 #include "pdf/test/test_client.h"
 #include "pdf/test/test_document_loader.h"
+#include "testing/gtest/include/gtest/gtest.h"
 #include "ui/gfx/geometry/size.h"
 
 #if defined(OS_LINUX) || defined(OS_CHROMEOS)
@@ -143,4 +146,10 @@
 
 PDFiumTestBase::InitializeEngineResult::~InitializeEngineResult() = default;
 
+void PDFiumTestBase::InitializeEngineResult::FinishLoading() {
+  ASSERT_TRUE(document_loader);
+  while (document_loader->SimulateLoadData(UINT32_MAX))
+    continue;
+}
+
 }  // namespace chrome_pdf
diff --git a/pdf/pdfium/pdfium_test_base.h b/pdf/pdfium/pdfium_test_base.h
index fe46e0d..9344537 100644
--- a/pdf/pdfium/pdfium_test_base.h
+++ b/pdf/pdfium/pdfium_test_base.h
@@ -39,6 +39,9 @@
     InitializeEngineResult& operator=(InitializeEngineResult&& other) noexcept;
     ~InitializeEngineResult();
 
+    // Completes loading the document.
+    void FinishLoading();
+
     // Initialized engine.
     std::unique_ptr<PDFiumEngine> engine;
 
diff --git a/printing/print_settings_conversion.h b/printing/print_settings_conversion.h
index 426bb62..9b99da6 100644
--- a/printing/print_settings_conversion.h
+++ b/printing/print_settings_conversion.h
@@ -5,6 +5,8 @@
 #ifndef PRINTING_PRINT_SETTINGS_CONVERSION_H_
 #define PRINTING_PRINT_SETTINGS_CONVERSION_H_
 
+#include <memory>
+
 #include "base/component_export.h"
 #include "printing/page_range.h"
 
diff --git a/remoting/host/it2me/it2me_confirmation_dialog_win.cc b/remoting/host/it2me/it2me_confirmation_dialog_win.cc
index 6c30d8bb..5aecdb66 100644
--- a/remoting/host/it2me/it2me_confirmation_dialog_win.cc
+++ b/remoting/host/it2me/it2me_confirmation_dialog_win.cc
@@ -20,6 +20,7 @@
 #include "base/time/time.h"
 #include "remoting/host/it2me/it2me_confirmation_dialog.h"
 #include "remoting/host/win/core_resource.h"
+#include "remoting/host/win/simple_task_dialog.h"
 
 namespace remoting {
 
@@ -28,57 +29,22 @@
 // Time to wait before closing the dialog and cancelling the connection.
 constexpr base::TimeDelta kDialogTimeout = base::TimeDelta::FromMinutes(1);
 
-const HRESULT kTimeoutErrorCode = E_ABORT;
-
-// Loads an embedded string resource from the specified module.
-bool LoadStringResource(HMODULE resource_module,
-                        int resource_id,
-                        std::wstring* string) {
-  DCHECK(resource_module);
-  DCHECK(string);
-
-  string->clear();
-
-  const wchar_t* string_resource = nullptr;
-  int string_length = LoadStringW(resource_module, resource_id,
-                                  reinterpret_cast<wchar_t*>(&string_resource),
-                                  /*nBufferMax=*/0);
-  if (string_length <= 0) {
-    PLOG(ERROR) << "LoadStringW() failed";
-    return false;
-  }
-
-  string->append(string_resource, string_length);
-  return true;
-}
-
 class It2MeConfirmationDialogWin : public It2MeConfirmationDialog {
  public:
   It2MeConfirmationDialogWin();
   ~It2MeConfirmationDialogWin() override;
 
-  static HRESULT CALLBACK TaskDialogCallbackProc(HWND hwnd,
-                                                 UINT notification,
-                                                 WPARAM w_param,
-                                                 LPARAM l_param,
-                                                 LONG_PTR ref_data);
-
   // It2MeConfirmationDialog implementation.
   void Show(const std::string& remote_user_email,
             ResultCallback callback) override;
 
  private:
-  // Tracks whether the dialog was in the foreground the last time we checked.
-  // Default to true so we will attempt to bring it back if it starts in the
-  // background for some reason.
-  bool is_foreground_window_ = true;
-
   DISALLOW_COPY_AND_ASSIGN(It2MeConfirmationDialogWin);
 };
 
-It2MeConfirmationDialogWin::It2MeConfirmationDialogWin() {}
+It2MeConfirmationDialogWin::It2MeConfirmationDialogWin() = default;
 
-It2MeConfirmationDialogWin::~It2MeConfirmationDialogWin() {}
+It2MeConfirmationDialogWin::~It2MeConfirmationDialogWin() = default;
 
 void It2MeConfirmationDialogWin::Show(const std::string& remote_user_email,
                                       ResultCallback callback) {
@@ -99,75 +65,44 @@
     return;
   }
 
-  std::wstring title_text;
-  if (!LoadStringResource(resource_module, IDS_PRODUCT_NAME, &title_text)) {
-    LOG(ERROR) << "Failed to load title text for confirmation dialog.";
+  SimpleTaskDialog task_dialog(resource_module);
+  if (!task_dialog.SetTitleTextWithStringId(IDS_PRODUCT_NAME) ||
+      !task_dialog.AppendButtonWithStringId(IDYES,
+                                            IDS_SHARE_CONFIRM_DIALOG_CONFIRM) ||
+      !task_dialog.AppendButtonWithStringId(IDNO,
+                                            IDS_SHARE_CONFIRM_DIALOG_DECLINE)) {
+    LOG(ERROR) << "Failed to load text for confirmation dialog.";
     std::move(callback).Run(result);
     return;
   }
 
-  std::wstring message_text;
-  if (!LoadStringResource(resource_module,
-                          IDS_SHARE_CONFIRM_DIALOG_MESSAGE_WITH_USERNAME,
-                          &message_text)) {
-    LOG(ERROR) << "Failed to load message text for confirmation dialog.";
+  const wchar_t* message_stringw = nullptr;
+  int string_length = LoadStringW(
+      resource_module, IDS_SHARE_CONFIRM_DIALOG_MESSAGE_WITH_USERNAME,
+      reinterpret_cast<wchar_t*>(&message_stringw),
+      /*cchBufferMax=*/0);
+  if (string_length <= 0) {
+    PLOG(ERROR) << "Failed to load message text for confirmation dialog.";
     std::move(callback).Run(result);
     return;
   }
-  message_text =
+  std::wstring message_text =
       base::AsWString(base::i18n::MessageFormatter::FormatWithNumberedArgs(
-          base::AsStringPiece16(message_text),
+          base::AsStringPiece16(
+              base::WStringPiece(message_stringw, string_length)),
           base::UTF8ToUTF16(remote_user_email)));
 
-  std::wstring share_button_text;
-  if (!LoadStringResource(resource_module, IDS_SHARE_CONFIRM_DIALOG_CONFIRM,
-                          &share_button_text)) {
-    LOG(ERROR) << "Failed to load share button text for confirmation dialog.";
+  task_dialog.set_message_text(message_text);
+  task_dialog.set_default_button(IDNO);
+  task_dialog.set_dialog_timeout(kDialogTimeout);
+  absl::optional<int> button_result = task_dialog.Show();
+
+  if (!button_result.has_value()) {
     std::move(callback).Run(result);
     return;
   }
 
-  std::wstring decline_button_text;
-  if (!LoadStringResource(resource_module, IDS_SHARE_CONFIRM_DIALOG_DECLINE,
-                          &decline_button_text)) {
-    LOG(ERROR) << "Failed to load decline button text for confirmation dialog.";
-    std::move(callback).Run(result);
-    return;
-  }
-
-  TASKDIALOG_BUTTON dialog_buttons[] = {
-      {IDYES, share_button_text.c_str()}, {IDNO, decline_button_text.c_str()},
-  };
-
-  TASKDIALOGCONFIG dialog_config = {0};
-  dialog_config.cbSize = sizeof(dialog_config);
-  dialog_config.hInstance = resource_module;
-  dialog_config.pszWindowTitle = title_text.c_str();
-  dialog_config.pszMainInstruction = message_text.c_str();
-  dialog_config.pszMainIcon = MAKEINTRESOURCE(IDI_CHROME_REMOTE_DESKTOP);
-  dialog_config.dwFlags = TDF_CALLBACK_TIMER;
-  dialog_config.pfCallback = &TaskDialogCallbackProc;
-  dialog_config.lpCallbackData = reinterpret_cast<LONG_PTR>(this);
-  dialog_config.cButtons = ARRAYSIZE(dialog_buttons);
-  dialog_config.pButtons = dialog_buttons;
-  dialog_config.nDefaultButton = IDNO;
-
-  int button_result = 0;
-  HRESULT hr = TaskDialogIndirect(&dialog_config, &button_result,
-                                  /*pnRadioButton=*/nullptr,
-                                  /*pfVerificationFlagChecked=*/nullptr);
-  if (FAILED(hr)) {
-    if (hr == kTimeoutErrorCode) {
-      LOG(INFO) << "TaskDialog timed out.";
-    } else {
-      LOG(ERROR) << "TaskDialogIndirect() Failed: 0x" << std::hex << hr;
-    }
-
-    std::move(callback).Run(result);
-    return;
-  }
-
-  if (button_result == IDYES) {
+  if (*button_result == IDYES) {
     // Only accept the connection if the user chose 'share'.
     result = Result::OK;
   }
@@ -175,53 +110,6 @@
   std::move(callback).Run(result);
 }
 
-HRESULT CALLBACK
-It2MeConfirmationDialogWin::TaskDialogCallbackProc(HWND hwnd,
-                                                   UINT notification,
-                                                   WPARAM w_param,
-                                                   LPARAM l_param,
-                                                   LONG_PTR ref_data) {
-  if (notification == TDN_TIMER) {
-    if (static_cast<int64_t>(w_param) >= kDialogTimeout.InMilliseconds()) {
-      // Close the dialog window if we have reached the timeout.
-      return kTimeoutErrorCode;
-    }
-
-    // Ensure the window is visible before checking if it is in the foreground.
-    if (!IsWindowVisible(hwnd)) {
-      ShowWindow(hwnd, SW_SHOWNORMAL);
-    }
-
-    // Attempt to bring the dialog window to the foreground if needed.  If the
-    // window is in the background and cannot be brought forward, this call will
-    // flash the placeholder on the taskbar.  Do not call SetForegroundWindow()
-    // multiple times as it will cause annoying flashing for the user.
-    It2MeConfirmationDialogWin* dialog =
-        reinterpret_cast<It2MeConfirmationDialogWin*>(ref_data);
-    if (hwnd == GetForegroundWindow()) {
-      dialog->is_foreground_window_ = true;
-    } else if (dialog->is_foreground_window_) {
-      SetForegroundWindow(hwnd);
-      dialog->is_foreground_window_ = false;
-    }
-
-    if (!dialog->is_foreground_window_) {
-      // Ensure the dialog is always at the top of the top-most window stack,
-      // even if it doesn't have focus, so the user can always see it.
-      BringWindowToTop(hwnd);
-    }
-  } else if (notification == TDN_CREATED) {
-    // After the dialog has been created, but before it is visible, set its
-    // z-order so it will be a top-most window and have always on top behavior.
-    if (!SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0,
-                      SWP_NOMOVE | SWP_NOSIZE)) {
-      PLOG(ERROR) << "SetWindowPos() failed";
-    }
-  }
-
-  return S_OK;
-}
-
 }  // namespace
 
 std::unique_ptr<It2MeConfirmationDialog>
diff --git a/remoting/host/win/BUILD.gn b/remoting/host/win/BUILD.gn
index eedffb3..4479c2b 100644
--- a/remoting/host/win/BUILD.gn
+++ b/remoting/host/win/BUILD.gn
@@ -124,6 +124,8 @@
     "session_desktop_environment.h",
     "session_input_injector.cc",
     "session_input_injector.h",
+    "simple_task_dialog.cc",
+    "simple_task_dialog.h",
     "unprivileged_process_delegate.h",
     "window_station_and_desktop.cc",
     "window_station_and_desktop.h",
@@ -420,8 +422,6 @@
     "host_service.cc",
     "rdp_desktop_session.cc",
     "rdp_desktop_session.h",
-    "set_up_url_forwarder_dialog.cc",
-    "set_up_url_forwarder_dialog.h",
     "unprivileged_process_delegate.cc",
     "url_forwarder_configurator_main.cc",
     "wts_session_process_delegate.cc",
diff --git a/remoting/host/win/core.rc.jinja2 b/remoting/host/win/core.rc.jinja2
index 68e44e7..15b613b 100644
--- a/remoting/host/win/core.rc.jinja2
+++ b/remoting/host/win/core.rc.jinja2
@@ -35,6 +35,12 @@
           gettext("URL_FORWARDER_DESCRIPTION")|
             format(gettext("PRODUCT_NAME"))|
             replace('"', '""') }}"
+  IDS_OPEN_DEFAULT_APPS_SETTINGS_BUTTON "{% trans %}OPEN_DEFAULT_APPS_SETTINGS_BUTTON{% endtrans %}"
+  IDS_SET_UP_URL_FORWARDER_MESSAGE "{{
+          gettext("SET_UP_URL_FORWARDER_PROMPT")|
+            format(url_forwarder_name)|
+            replace('"', '""') }}"
+  IDS_CANCEL "{% trans %}CANCEL{% endtrans %}"
 END
 
 IDI_CHROME_REMOTE_DESKTOP      ICON    "remoting/resources/chromoting.ico"
@@ -63,19 +69,4 @@
     PUSHBUTTON      "{% trans %}STOP_SHARING_BUTTON{% endtrans %}",IDC_CONTINUE_CANCEL,7,38,98,14
 END
 
-IDD_SET_UP_URL_FORWARDER DIALOGEX 0, 0, 221, 58
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
-EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW {% if IsRtlLanguage(lang) %} | WS_EX_LAYOUTRTL | WS_EX_RTLREADING {% endif %}
-CAPTION "{% trans %}PRODUCT_NAME{% endtrans %}"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
-    DEFPUSHBUTTON   "{% trans %}OPEN_DEFAULT_APPS_SETTINGS_BUTTON{% endtrans %}",IDC_SET_UP_URL_FORWARDER_DEFAULT,116,38,98,14
-    LTEXT           "{{
-      gettext("SET_UP_URL_FORWARDER_PROMPT")|
-        format(url_forwarder_name)|
-        replace('"', '""')
-      }}",IDC_SET_UP_URL_FORWARDER_MESSAGE,7,7,207,30
-    PUSHBUTTON      "{% trans %}CANCEL{% endtrans %}",IDC_SET_UP_URL_FORWARDER_CANCEL,7,38,98,14
-END
-
 {% endfor %}
diff --git a/remoting/host/win/core_resource.h b/remoting/host/win/core_resource.h
index 21d92fd..309b0bb 100644
--- a/remoting/host/win/core_resource.h
+++ b/remoting/host/win/core_resource.h
@@ -28,7 +28,9 @@
 #define IDS_DOWNLOAD_FILE_DIALOG_TITLE   118
 #define IDS_URL_FORWARDER_NAME           119
 #define IDS_URL_FORWARDER_DESCRIPTION    120
-#define IDD_SET_UP_URL_FORWARDER         121
+#define IDS_SET_UP_URL_FORWARDER_MESSAGE 121
+#define IDS_OPEN_DEFAULT_APPS_SETTINGS_BUTTON 122
+#define IDS_CANCEL 123
 
 #define IDC_DISCONNECT                  1001
 #define IDC_DISCONNECT_SHARINGWITH      1002
@@ -36,9 +38,6 @@
 #define IDC_CONTINUE_MESSAGE            1004
 #define IDC_CONTINUE_DEFAULT            1005
 #define IDC_CONTINUE_CANCEL             1007
-#define IDC_SET_UP_URL_FORWARDER_DEFAULT 1008
-#define IDC_SET_UP_URL_FORWARDER_MESSAGE 1009
-#define IDC_SET_UP_URL_FORWARDER_CANCEL 1010
 
 // Next default values for new objects
 //
diff --git a/remoting/host/win/set_up_url_forwarder_dialog.cc b/remoting/host/win/set_up_url_forwarder_dialog.cc
deleted file mode 100644
index 19475cb..0000000
--- a/remoting/host/win/set_up_url_forwarder_dialog.cc
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "remoting/host/win/set_up_url_forwarder_dialog.h"
-
-#include <windows.h>
-
-#include "base/check.h"
-#include "base/logging.h"
-#include "base/win/current_module.h"
-#include "remoting/host/win/core_resource.h"
-
-namespace remoting {
-
-SetUpUrlForwarderDialog::SetUpUrlForwarderDialog() = default;
-
-SetUpUrlForwarderDialog::~SetUpUrlForwarderDialog() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-  if (hwnd_) {
-    ::DestroyWindow(hwnd_);
-  }
-}
-
-void SetUpUrlForwarderDialog::Show(base::OnceClosure on_continue,
-                                   base::OnceClosure on_cancel) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(!on_continue_);
-  DCHECK(!on_cancel_);
-  DCHECK(!hwnd_);
-
-  on_continue_ = std::move(on_continue);
-  on_cancel_ = std::move(on_cancel);
-  hwnd_ = CreateDialogParam(CURRENT_MODULE(),
-                            MAKEINTRESOURCE(IDD_SET_UP_URL_FORWARDER), nullptr,
-                            DialogProc, (LPARAM)this);
-  if (!hwnd_) {
-    LOG(ERROR) << "Unable to create dialog for setting up the URL forwarder";
-    return;
-  }
-  ShowWindow(hwnd_, SW_SHOW);
-}
-
-// static
-INT_PTR CALLBACK SetUpUrlForwarderDialog::DialogProc(HWND hwnd,
-                                                     UINT msg,
-                                                     WPARAM wParam,
-                                                     LPARAM lParam) {
-  SetUpUrlForwarderDialog* self = nullptr;
-  if (msg == WM_INITDIALOG) {
-    self = reinterpret_cast<SetUpUrlForwarderDialog*>(lParam);
-    CHECK(self);
-    SetWindowLongPtr(hwnd, DWLP_USER, (LONG_PTR)self);
-  } else {
-    LONG_PTR lp = GetWindowLongPtr(hwnd, DWLP_USER);
-    self = reinterpret_cast<SetUpUrlForwarderDialog*>(lp);
-  }
-  if (self == nullptr) {
-    return FALSE;
-  }
-  return self->OnDialogMessage(hwnd, msg, wParam, lParam);
-}
-
-INT_PTR SetUpUrlForwarderDialog::OnDialogMessage(HWND hwnd,
-                                                 UINT msg,
-                                                 WPARAM wParam,
-                                                 LPARAM lParam) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-  switch (msg) {
-    case WM_CLOSE:
-      // Ignore close messages.
-      return TRUE;
-    case WM_DESTROY:
-      // Ensure we don't try to use the HWND anymore.
-      hwnd_ = nullptr;
-      return TRUE;
-    case WM_COMMAND:
-      switch (LOWORD(wParam)) {
-        case IDC_SET_UP_URL_FORWARDER_DEFAULT:
-          std::move(on_continue_).Run();
-          ::EndDialog(hwnd, LOWORD(wParam));
-          hwnd_ = nullptr;
-          return TRUE;
-        case IDC_SET_UP_URL_FORWARDER_CANCEL:
-          std::move(on_cancel_).Run();
-          ::EndDialog(hwnd, LOWORD(wParam));
-          hwnd_ = nullptr;
-          return TRUE;
-      }
-  }
-  return FALSE;
-}
-
-}  // namespace remoting
diff --git a/remoting/host/win/set_up_url_forwarder_dialog.h b/remoting/host/win/set_up_url_forwarder_dialog.h
deleted file mode 100644
index c00a5d9..0000000
--- a/remoting/host/win/set_up_url_forwarder_dialog.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef REMOTING_HOST_WIN_SET_UP_URL_FORWARDER_DIALOG_H_
-#define REMOTING_HOST_WIN_SET_UP_URL_FORWARDER_DIALOG_H_
-
-#include "base/callback.h"
-#include "base/sequence_checker.h"
-#include "base/win/windows_types.h"
-
-namespace remoting {
-
-// Class that controls a dialog that prompts the user to change the default
-// browser to the URL forwarder.
-class SetUpUrlForwarderDialog final {
- public:
-  SetUpUrlForwarderDialog();
-  ~SetUpUrlForwarderDialog();
-
-  void Show(base::OnceClosure on_continue, base::OnceClosure on_cancel);
-
-  SetUpUrlForwarderDialog(const SetUpUrlForwarderDialog&) = delete;
-  SetUpUrlForwarderDialog& operator=(const SetUpUrlForwarderDialog&) = delete;
-
- private:
-  static INT_PTR CALLBACK DialogProc(HWND hwnd,
-                                     UINT msg,
-                                     WPARAM wParam,
-                                     LPARAM lParam);
-
-  INT_PTR OnDialogMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-  SEQUENCE_CHECKER(sequence_checker_);
-
-  HWND hwnd_ = nullptr;
-
-  base::OnceClosure on_continue_;
-  base::OnceClosure on_cancel_;
-};
-
-}  // namespace remoting
-
-#endif  // REMOTING_HOST_WIN_SET_UP_URL_FORWARDER_DIALOG_H_
diff --git a/remoting/host/win/simple_task_dialog.cc b/remoting/host/win/simple_task_dialog.cc
new file mode 100644
index 0000000..ac18857a7
--- /dev/null
+++ b/remoting/host/win/simple_task_dialog.cc
@@ -0,0 +1,164 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/host/win/simple_task_dialog.h"
+
+#include <algorithm>
+#include <iterator>
+#include <string>
+
+#include "base/logging.h"
+#include "remoting/host/win/core_resource.h"
+
+namespace remoting {
+
+namespace {
+
+const HRESULT kTimeoutErrorCode = E_ABORT;
+
+// Loads an embedded string resource from the specified module.
+bool LoadStringResource(HMODULE resource_module,
+                        int resource_id,
+                        std::wstring& string) {
+  DCHECK(resource_module);
+
+  string.clear();
+
+  const wchar_t* string_resource = nullptr;
+  int string_length = LoadStringW(resource_module, resource_id,
+                                  reinterpret_cast<wchar_t*>(&string_resource),
+                                  /*cchBufferMax=*/0);
+  if (string_length <= 0) {
+    PLOG(ERROR) << "LoadStringW() failed for resource ID: " << resource_id;
+    return false;
+  }
+
+  string.append(string_resource, string_length);
+  return true;
+}
+
+}  // namespace
+
+SimpleTaskDialog::SimpleTaskDialog(HMODULE resource_module)
+    : resource_module_(resource_module) {}
+
+SimpleTaskDialog::~SimpleTaskDialog() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+}
+
+bool SimpleTaskDialog::SetTitleTextWithStringId(int title_text_id) {
+  return LoadStringResource(resource_module_, title_text_id, title_text_);
+}
+
+bool SimpleTaskDialog::SetMessageTextWithStringId(int message_text_id) {
+  return LoadStringResource(resource_module_, message_text_id, message_text_);
+}
+
+void SimpleTaskDialog::AppendButton(int button_id,
+                                    const std::wstring& button_text) {
+  dialog_buttons_.emplace_back(button_id, button_text);
+}
+
+bool SimpleTaskDialog::AppendButtonWithStringId(int button_id,
+                                                int button_text_id) {
+  std::wstring button_text;
+  if (!LoadStringResource(resource_module_, button_text_id, button_text)) {
+    return false;
+  }
+  dialog_buttons_.emplace_back(button_id, button_text);
+  return true;
+}
+
+absl::optional<int> SimpleTaskDialog::Show() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  std::vector<TASKDIALOG_BUTTON> taskdialog_buttons;
+  std::transform(
+      dialog_buttons_.begin(), dialog_buttons_.end(),
+      std::back_inserter(taskdialog_buttons),
+      [](const std::pair<int, std::wstring>& button) -> TASKDIALOG_BUTTON {
+        return {button.first, button.second.c_str()};
+      });
+
+  TASKDIALOGCONFIG dialog_config = {0};
+  dialog_config.cbSize = sizeof(dialog_config);
+  dialog_config.hInstance = resource_module_;
+  dialog_config.pszWindowTitle = title_text_.c_str();
+  dialog_config.pszMainInstruction = message_text_.c_str();
+  dialog_config.pszMainIcon = MAKEINTRESOURCE(IDI_CHROME_REMOTE_DESKTOP);
+  dialog_config.dwFlags = TDF_CALLBACK_TIMER;
+  dialog_config.pfCallback = &TaskDialogCallbackProc;
+  dialog_config.lpCallbackData = reinterpret_cast<LONG_PTR>(this);
+  dialog_config.cButtons = taskdialog_buttons.size();
+  dialog_config.pButtons = taskdialog_buttons.data();
+  dialog_config.nDefaultButton = default_button_;
+
+  int button_result = 0;
+  HRESULT hr = TaskDialogIndirect(&dialog_config, &button_result,
+                                  /*pnRadioButton=*/nullptr,
+                                  /*pfVerificationFlagChecked=*/nullptr);
+  if (FAILED(hr)) {
+    if (hr == kTimeoutErrorCode) {
+      LOG(INFO) << "TaskDialog timed out.";
+    } else {
+      LOG(ERROR) << "TaskDialogIndirect() Failed: 0x" << std::hex << hr;
+    }
+
+    return absl::nullopt;
+  }
+  return button_result;
+}
+
+// static
+HRESULT CALLBACK SimpleTaskDialog::TaskDialogCallbackProc(HWND hwnd,
+                                                          UINT notification,
+                                                          WPARAM w_param,
+                                                          LPARAM l_param,
+                                                          LONG_PTR ref_data) {
+  if (notification == TDN_TIMER) {
+    SimpleTaskDialog* dialog = reinterpret_cast<SimpleTaskDialog*>(ref_data);
+
+    DCHECK_CALLED_ON_VALID_SEQUENCE(dialog->sequence_checker_);
+
+    if (!dialog->dialog_timeout_.is_zero() &&
+        static_cast<int64_t>(w_param) >=
+            dialog->dialog_timeout_.InMilliseconds()) {
+      // Close the dialog window if we have reached the timeout.
+      return kTimeoutErrorCode;
+    }
+
+    // Ensure the window is visible before checking if it is in the foreground.
+    if (!IsWindowVisible(hwnd)) {
+      ShowWindow(hwnd, SW_SHOWNORMAL);
+    }
+
+    // Attempt to bring the dialog window to the foreground if needed.  If the
+    // window is in the background and cannot be brought forward, this call will
+    // flash the placeholder on the taskbar.  Do not call SetForegroundWindow()
+    // multiple times as it will cause annoying flashing for the user.
+    if (hwnd == GetForegroundWindow()) {
+      dialog->is_foreground_window_ = true;
+    } else if (dialog->is_foreground_window_) {
+      SetForegroundWindow(hwnd);
+      dialog->is_foreground_window_ = false;
+    }
+
+    if (!dialog->is_foreground_window_) {
+      // Ensure the dialog is always at the top of the top-most window stack,
+      // even if it doesn't have focus, so the user can always see it.
+      BringWindowToTop(hwnd);
+    }
+  } else if (notification == TDN_CREATED) {
+    // After the dialog has been created, but before it is visible, set its
+    // z-order so it will be a top-most window and have always on top behavior.
+    if (!SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0,
+                      SWP_NOMOVE | SWP_NOSIZE)) {
+      PLOG(ERROR) << "SetWindowPos() failed";
+    }
+  }
+
+  return S_OK;
+}
+
+}  // namespace remoting
diff --git a/remoting/host/win/simple_task_dialog.h b/remoting/host/win/simple_task_dialog.h
new file mode 100644
index 0000000..8435d71
--- /dev/null
+++ b/remoting/host/win/simple_task_dialog.h
@@ -0,0 +1,94 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_HOST_WIN_SIMPLE_TASK_DIALOG_H_
+#define REMOTING_HOST_WIN_SIMPLE_TASK_DIALOG_H_
+
+#include <windows.h>
+
+#include <commctrl.h>
+
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "base/sequence_checker.h"
+#include "base/thread_annotations.h"
+#include "base/time/time.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+
+namespace remoting {
+
+// A helper class to show a simple task dialog with a title, message, and a few
+// buttons. The dialog will be kept on the top.
+class SimpleTaskDialog final {
+ public:
+  explicit SimpleTaskDialog(HMODULE resource_module);
+  ~SimpleTaskDialog();
+
+  void set_title_text(const std::wstring& title_text) {
+    title_text_ = title_text;
+  }
+
+  void set_message_text(const std::wstring& message_text) {
+    message_text_ = message_text;
+  }
+
+  void set_default_button(int default_button) {
+    default_button_ = default_button;
+  }
+
+  // Sets a timeout for the dialog. If the timeout is set and the dialog has
+  // been shown longer than the timeout, it will be closed and Show() will
+  // return nullopt.
+  void set_dialog_timeout(base::TimeDelta dialog_timeout) {
+    dialog_timeout_ = dialog_timeout;
+  }
+
+  // Returns true if the title text has been successfully set to the string
+  // referred by |title_text_id|.
+  bool SetTitleTextWithStringId(int title_text_id);
+
+  // Returns true if the title text has been successfully set to the string
+  // referred by |message_text_id|.
+  bool SetMessageTextWithStringId(int message_text_id);
+
+  void AppendButton(int button_id, const std::wstring& button_text);
+
+  // Returns true if a button has been added successfully with the text set to
+  // the string referred by |button_text_id|.
+  bool AppendButtonWithStringId(int button_id, int button_text_id);
+
+  // Shows the dialog and returns the ID of the button that the user clicked.
+  // Returns nullopt if the dialog fails to show or times out.
+  absl::optional<int> Show();
+
+  SimpleTaskDialog(const SimpleTaskDialog&) = delete;
+  SimpleTaskDialog& operator=(const SimpleTaskDialog&) = delete;
+
+ private:
+  static HRESULT CALLBACK TaskDialogCallbackProc(HWND hwnd,
+                                                 UINT notification,
+                                                 WPARAM w_param,
+                                                 LPARAM l_param,
+                                                 LONG_PTR ref_data);
+
+  SEQUENCE_CHECKER(sequence_checker_);
+
+  HMODULE resource_module_;
+  std::wstring title_text_;
+  std::wstring message_text_;
+  int default_button_ = -1;
+  std::vector<std::pair<int, std::wstring>> dialog_buttons_;
+  base::TimeDelta dialog_timeout_;
+
+  // Tracks whether the dialog was in the foreground the last time we checked.
+  // Default to true so we will attempt to bring it back if it starts in the
+  // background for some reason.
+  bool is_foreground_window_ GUARDED_BY_CONTEXT(sequence_checker_) = true;
+};
+
+}  // namespace remoting
+
+#endif  // REMOTING_HOST_WIN_SIMPLE_TASK_DIALOG_H_
diff --git a/remoting/host/win/url_forwarder_configurator_main.cc b/remoting/host/win/url_forwarder_configurator_main.cc
index ea504e3..2837e60 100644
--- a/remoting/host/win/url_forwarder_configurator_main.cc
+++ b/remoting/host/win/url_forwarder_configurator_main.cc
@@ -14,6 +14,7 @@
 #include "base/command_line.h"
 #include "base/logging.h"
 #include "base/message_loop/message_pump_type.h"
+#include "base/notreached.h"
 #include "base/run_loop.h"
 #include "base/task/single_thread_task_executor.h"
 #include "base/task/thread_pool/thread_pool_instance.h"
@@ -24,7 +25,8 @@
 #include "base/win/windows_types.h"
 #include "remoting/base/logging.h"
 #include "remoting/host/switches.h"
-#include "remoting/host/win/set_up_url_forwarder_dialog.h"
+#include "remoting/host/win/core_resource.h"
+#include "remoting/host/win/simple_task_dialog.h"
 
 namespace remoting {
 
@@ -104,6 +106,44 @@
   return true;
 }
 
+bool ShowSetUpUrlForwarderDialog() {
+  // |resource_module| does not need to be freed as GetModuleHandle() does not
+  // increment the refcount for the module.  This DLL is not unloaded until the
+  // process exits so using a stored handle is safe.
+  HMODULE resource_module = GetModuleHandle(L"remoting_core.dll");
+  if (resource_module == nullptr) {
+    PLOG(ERROR) << "GetModuleHandle() failed";
+    return false;
+  }
+
+  SimpleTaskDialog task_dialog(resource_module);
+  if (!task_dialog.SetTitleTextWithStringId(IDS_URL_FORWARDER_NAME) ||
+      !task_dialog.SetMessageTextWithStringId(
+          IDS_SET_UP_URL_FORWARDER_MESSAGE) ||
+      !task_dialog.AppendButtonWithStringId(
+          IDOK, IDS_OPEN_DEFAULT_APPS_SETTINGS_BUTTON) ||
+      !task_dialog.AppendButtonWithStringId(IDCANCEL, IDS_CANCEL)) {
+    LOG(ERROR) << "Failed to load text for the setup dialog.";
+    return false;
+  }
+  task_dialog.set_default_button(IDOK);
+
+  absl::optional<int> button_result = task_dialog.Show();
+  if (!button_result.has_value()) {
+    LOG(ERROR) << "Failed to show the setup dialog.";
+    return false;
+  }
+  switch (*button_result) {
+    case IDOK:
+      return true;
+    case IDCANCEL:
+      return false;
+    default:
+      NOTREACHED() << "Unknown button: " << *button_result;
+      return false;
+  }
+}
+
 // Class for running the setup process.
 class SetUpProcess {
  public:
@@ -120,7 +160,6 @@
   void PollUrlForwarderSetupState();
 
   base::OnceCallback<void(bool)> done_callback_;
-  std::unique_ptr<SetUpUrlForwarderDialog> setup_forwarder_dialog_;
   base::TimeDelta total_poll_time_;
 };
 
@@ -132,7 +171,6 @@
 
 void SetUpProcess::Start(base::OnceCallback<void(bool)> done_callback) {
   DCHECK(!done_callback_);
-  DCHECK(!setup_forwarder_dialog_);
 
   done_callback_ = std::move(done_callback);
   if (IsUrlForwarderSetUp()) {
@@ -141,17 +179,14 @@
     return;
   }
 
-  setup_forwarder_dialog_ = std::make_unique<SetUpUrlForwarderDialog>();
-  setup_forwarder_dialog_->Show(
-      base::BindOnce(&SetUpProcess::OnSetUpDialogContinue,
-                     base::Unretained(this)),
-      base::BindOnce(&SetUpProcess::OnSetUpDialogCancel,
-                     base::Unretained(this)));
+  if (ShowSetUpUrlForwarderDialog()) {
+    OnSetUpDialogContinue();
+  } else {
+    OnSetUpDialogCancel();
+  }
 }
 
 void SetUpProcess::OnSetUpDialogContinue() {
-  setup_forwarder_dialog_.reset();
-
   HOST_LOG << "Launching default apps settings dialog...";
   if (!LaunchDefaultAppsSettingsModernDialog()) {
     std::move(done_callback_).Run(false);
@@ -165,8 +200,6 @@
 }
 
 void SetUpProcess::OnSetUpDialogCancel() {
-  setup_forwarder_dialog_.reset();
-
   HOST_LOG << "User canceled the setup process";
   std::move(done_callback_).Run(false);
 }
diff --git a/remoting/resources/remoting_strings_af.xtb b/remoting/resources/remoting_strings_af.xtb
index b19fb37e..37488b6 100644
--- a/remoting/resources/remoting_strings_af.xtb
+++ b/remoting/resources/remoting_strings_af.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">Verbindings met die afgeleë rekenaar word tydelik geblokkeer omdat iemand met 'n ongeldige PIN daaraan probeer koppel het. Probeer asseblief later weer.</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="6985691951107243942">Is jy seker jy wil afstandverbindings met <ph name="HOSTNAME" /> deaktiveer? As jy van plan verander, sal jy daardie rekenaar moet besoek om verbindings te heraktiveer.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> het toegang versoek om jou rekenaar te sien en te beheer. Druk ''<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />'' as jy nie hierdie persoon ken nie of as jy enige veranderinge moet maak voordat jy deel.  Anders moet jy ''<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />'' kies om verbinding toe te laat.</translation>
 <translation id="7019153418965365059">Onherkenbare gasheerfout: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">Afstandbystand</translation>
 <translation id="7026930240735156896">Volg die instruksies om jou rekenaar vir afstandtoegang op te stel</translation>
diff --git a/remoting/resources/remoting_strings_da.xtb b/remoting/resources/remoting_strings_da.xtb
index 891ac9e..6b273208 100644
--- a/remoting/resources/remoting_strings_da.xtb
+++ b/remoting/resources/remoting_strings_da.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">Forbindelserne til fjerncomputeren er midlertidigt blokerede, fordi nogen forsøgte at få forbindelse til den med en ugyldig pinkode. Prøv igen senere.</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="6985691951107243942">Er du sikker på, at du vil deaktivere fjernforbindelserne til <ph name="HOSTNAME" />? Hvis du ombestemmer dig, skal du genaktivere forbindelserne på den computer.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> har anmodet om tilladelse til at se og styre din computer. Tryk på "<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />", hvis du ikke kender denne person, eller hvis du har brug for at foretage ændringer, inden du deler.  Du kan også vælge "<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />" for at tillade forbindelsen.</translation>
 <translation id="7019153418965365059">Fejl – hosten genkendes ikke: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">Fjernsupport</translation>
 <translation id="7026930240735156896">Følg vejledningen for at konfigurere din computer til fjernadgang</translation>
diff --git a/remoting/resources/remoting_strings_hu.xtb b/remoting/resources/remoting_strings_hu.xtb
index c5f4dc85..431100c 100644
--- a/remoting/resources/remoting_strings_hu.xtb
+++ b/remoting/resources/remoting_strings_hu.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">A távoli számítógéphez való csatlakozás ideiglenesen le van tiltva, mert valaki érvénytelen PIN-kóddal próbált csatlakozni hozzá. Kérjük, próbálja újra később.</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="6985691951107243942">Biztosan le szeretné tiltani a távoli kapcsolatokat a(z) <ph name="HOSTNAME" /> gazdagéppel? Ha meggondolja magát, akkor azon a számítógépen kell majd újból engedélyeznie a kapcsolatokat.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> felhasználó hozzáférési engedélyt kért az Ön számítógépének megtekintésére és vezérlésére. Nyomja meg a(z) „<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />” gombot, ha nem ismeri a felhasználót, vagy ha bármilyen változtatást szeretne eszközölni a megosztás előtt.  Ha engedélyezni szeretné a kapcsolatot, válassza a(z) „<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />” lehetőséget.</translation>
 <translation id="7019153418965365059">Ismeretlen gazdagéphiba: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">Távsegítség</translation>
 <translation id="7026930240735156896">Az utasításokat követve beállíthatja a számítógépet a távoli hozzáféréshez.</translation>
diff --git a/remoting/resources/remoting_strings_lo.xtb b/remoting/resources/remoting_strings_lo.xtb
index b0655b1..68c724e6 100644
--- a/remoting/resources/remoting_strings_lo.xtb
+++ b/remoting/resources/remoting_strings_lo.xtb
@@ -131,6 +131,7 @@
 <translation id="6963936880795878952">ການເຊື່ອມຕໍ່ກັບຄອມພິວເຕີທາງໄກຖືກບລັອກໄວ້ຊົ່ວຄາວ ເພາະວ່າມີບາງຄົນໄດ້ພະຍາຍາມເຊື່ອມຕໍ່ກັບມັນດ້ວຍ PIN ທີ່ບໍ່ຖືກຕ້ອງ. ກະລຸນາລອງໃໝ່ອີກຄັ້ງໃນພາຍຫຼັງ.</translation>
 <translation id="6965382102122355670">ຕົກລົງ</translation>
 <translation id="6985691951107243942">ທ່ານແນ່ໃຈບໍວ່າ ທ່ານຕ້ອງການປິດເຊື່ອມຕໍ່ທາງໄກກັບ <ph name="HOSTNAME" />? ຖ້າທ່ານປ່ຽນໃຈ, ທ່ານຕ້ອງໄປຫາຄອມພິວເຕີນັ້ນ ເພື່ອເປີດໃຊ້ງານການເຊື່ອມຕໍ່ໃໝ່.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> ໄດ້ຮ້ອງຂໍສິດເຂົ້າເຖິງເພື່ອເບິ່ງ ແລະ ຄວບຄຸມຄອມພິວເຕີຂອງທ່ານ. ກົດ ''<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />'' ຫາກທ່ານບໍ່ຮູ້ຈັກບຸກຄົນນີ້ ຫຼື ຫາກທ່ານຕ້ອງການປ່ຽນແປງກ່ອນແບ່ງປັນ.  ບໍ່ດັ່ງນັ້ນໃຫ້ເລືອກ ''<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />'' ເພື່ອອະນຸຍາດການເຊື່ອມຕໍ່.</translation>
 <translation id="7019153418965365059">ຄວາມ​ຜິດ​ພາດ​ແມ່​ຂ່າຍ​ບໍ່​ຖືກ​ຮັບ​ຮູ້: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">ການ​ຊ່ວຍ​ເຫຼືອ​ທາງ​ໄກ</translation>
 <translation id="7026930240735156896">ປະຕິບັດຕາມຄຳແນະນຳເພື່ອຕັ້ງຄ່າຄອມພິວເຕີຂອງທ່ານສຳລັບການເຂົ້າເຖິງຈາກທາງໄກ</translation>
diff --git a/remoting/resources/remoting_strings_lt.xtb b/remoting/resources/remoting_strings_lt.xtb
index a862f9d8..cb26e9d 100644
--- a/remoting/resources/remoting_strings_lt.xtb
+++ b/remoting/resources/remoting_strings_lt.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">Ryšiai su nuotoliniu kompiuteriu laikinai blokuojami, nes kažkas bandė prisijungti prie jo naudodamas netinkamą PIN kodą. Vėliau bandykite dar kartą.</translation>
 <translation id="6965382102122355670">Gerai</translation>
 <translation id="6985691951107243942">Ar tikrai norite neleisti nuotolinio ryšio su „<ph name="HOSTNAME" />“? Jei apsigalvosite, turėsite iš naujo įgalinti ryšį tame kompiuteryje.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> pateikė užklausą leisti peržiūrėti ir valdyti jūsų kompiuterį. Jei nepažįstate šio asmens arba jei reikia atlikti pakeitimų prieš bendrinant, paspauskite „<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />“.  Kitu atveju pasirinkite „<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />“, kad leistumėte prisijungti.</translation>
 <translation id="7019153418965365059">Neatpažinta prieglobos klaida: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">Nuotolinė pagalba</translation>
 <translation id="7026930240735156896">Vadovaudamiesi instrukcijomis nustatykite nuotolinę kompiuterio prieigą</translation>
diff --git a/remoting/resources/remoting_strings_mn.xtb b/remoting/resources/remoting_strings_mn.xtb
index 68132c4..92df005 100644
--- a/remoting/resources/remoting_strings_mn.xtb
+++ b/remoting/resources/remoting_strings_mn.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">Хэн нэгэн буруу ПИН-р нэвтрэхийг оролдсон тул алсын компьютерт хийх холболтыг түр хугацаанд блоклосон байна. Дараа дахин оролдоно уу.</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="6985691951107243942">Та <ph name="HOSTNAME" />-тай алсын холболт хийхээ зогсоох гэж байгаадаа итгэлтэй байна уу? Хэрэв та бодлоо өөрчилвөл холболтыг дахин идэвхжүүлэхийн тулд тэр компьютерт дахин тохиргоо хийх хэрэгтэй.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> таны компьютерыг харж, хянахын тулд хандах хүсэлт тавьсан. Хэрэв та энэ хүнийг танихгүй эсвэл хуваалцахаасаа өмнө ямар нэг өөрчлөлт хийх шаардлагатай бол ''<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />''-г дарна уу.  Өөрөөр холболтыг зөвшөөрөхийн тулд ''<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />''-г сонгоно уу.</translation>
 <translation id="7019153418965365059">Хүлээн зөвшөөрөгдөөгүй хост алдаа: <ph name="HOST_OFFLINE_REASON" /> .</translation>
 <translation id="701976023053394610">Алсаас туслагч</translation>
 <translation id="7026930240735156896">Компьютероо алсаас хандахад тохируулахын тулд зааварчилгааг дагана уу</translation>
diff --git a/remoting/resources/remoting_strings_nl.xtb b/remoting/resources/remoting_strings_nl.xtb
index 5a29b6c..dad2ac4 100644
--- a/remoting/resources/remoting_strings_nl.xtb
+++ b/remoting/resources/remoting_strings_nl.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">Verbindingen met de externe computer zijn tijdelijk geblokkeerd omdat iemand heeft geprobeerd met een ongeldige pincode verbinding te maken met de computer. Probeer het later opnieuw.</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="6985691951107243942">Weet je zeker dat je externe verbindingen met <ph name="HOSTNAME" /> wilt uitzetten? Als je van gedachten verandert, moet je naar die computer gaan om de verbindingen weer aan te zetten.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> heeft toegang gevraagd om je computer te zien en te beheren. Druk op <ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" /> als je deze persoon niet kent of als je wijzigingen wilt aanbrengen voordat je begint met delen.  Anders kies je <ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" /> om de verbinding toe te staan.</translation>
 <translation id="7019153418965365059">Onbekende hostfout: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">Externe support</translation>
 <translation id="7026930240735156896">Volg de instructies om je computer in te stellen voor externe toegang</translation>
diff --git a/remoting/resources/remoting_strings_pl.xtb b/remoting/resources/remoting_strings_pl.xtb
index 51e7ad4..a430c68b 100644
--- a/remoting/resources/remoting_strings_pl.xtb
+++ b/remoting/resources/remoting_strings_pl.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">Połączenia z komputerem zdalnym są chwilowo zablokowane, bo ktoś próbował się z nim połączyć, podając nieprawidłowy kod PIN. Spróbuj ponownie później.</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="6985691951107243942">Na pewno chcesz wyłączyć połączenia zdalne z: <ph name="HOSTNAME" />? Jeśli zmienisz zdanie, połączenia będzie trzeba włączyć na tamtym komputerze.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> prosi o dostęp umożliwiający przeglądanie zawartości Twojego komputera i sterowanie nim. Jeśli nie znasz tej osoby lub jeśli przed udostępnieniem musisz wprowadzić jakieś zmiany, naciśnij „<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />”.  W innym przypadku wybierz „<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />”, aby zezwolić na połączenie.</translation>
 <translation id="7019153418965365059">Nieznany błąd hosta: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">Pomoc zdalna</translation>
 <translation id="7026930240735156896">Wykonaj te instrukcje, by skonfigurować komputer do dostępu zdalnego</translation>
diff --git a/remoting/resources/remoting_strings_ro.xtb b/remoting/resources/remoting_strings_ro.xtb
index 7c63a5e..85bfc7e6 100644
--- a/remoting/resources/remoting_strings_ro.xtb
+++ b/remoting/resources/remoting_strings_ro.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">Conexiunile cu computerul la distanță sunt blocate temporar, deoarece cineva a încercat să se conecteze la acesta folosind un cod PIN nevalid. Încearcă din nou mai târziu.</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="6985691951107243942">Sigur doriți să dezactivați conexiunile la distanță la <ph name="HOSTNAME" />? Dacă vă răzgândiți, va trebui să accesați computerul respectiv pentru a reactiva conexiunile.</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> a solicitat acces să vadă și să îți controleze computerul. Apasă pe <ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" /> dacă nu cunoști persoana sau dacă vrei să faci modificări înainte de a permite accesul.  Sau selectează <ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" /> pentru a permite conectarea.</translation>
 <translation id="7019153418965365059">Eroare nerecunoscută a gazdei: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">Asistență la distanță</translation>
 <translation id="7026930240735156896">Urmează instrucțiunile ca să configurezi computerul pentru accesul la distanță</translation>
diff --git a/remoting/resources/remoting_strings_sl.xtb b/remoting/resources/remoting_strings_sl.xtb
index ad6d40fa..cad5f849 100644
--- a/remoting/resources/remoting_strings_sl.xtb
+++ b/remoting/resources/remoting_strings_sl.xtb
@@ -118,6 +118,7 @@
 <translation id="6963936880795878952">Povezave z oddaljenim računalnikom so začasno onemogočene, ker je nekdo poskušal vzpostaviti povezavo z njim z neveljavno kodo PIN. Poskusite znova pozneje.</translation>
 <translation id="6965382102122355670">V redu</translation>
 <translation id="6985691951107243942">Ali ste prepričani, da želite onemogočiti oddaljene povezave z gostiteljem <ph name="HOSTNAME" />? Če si premislite, boste morali v tistem računalniku znova omogočiti povezave.</translation>
+<translation id="6998890551706945177">Oseba <ph name="CLIENT_USERNAME" /> je zahtevala dostop za ogled in nadziranje računalnika. Pritisnite »<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />«, če te osebe ne poznate ali če želite pred deljenjem narediti spremembe.  V nasprotnem primeru izberite »<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />«, če želite dovoliti povezavo.</translation>
 <translation id="7019153418965365059">Neprepoznana napaka gostitelja: <ph name="HOST_OFFLINE_REASON" />.</translation>
 <translation id="701976023053394610">Oddaljena pomoč</translation>
 <translation id="7026930240735156896">Upoštevajte navodila za nastavitev računalnika za oddaljeni dostop</translation>
diff --git a/remoting/resources/remoting_strings_th.xtb b/remoting/resources/remoting_strings_th.xtb
index 30fa24a..90afa0c379 100644
--- a/remoting/resources/remoting_strings_th.xtb
+++ b/remoting/resources/remoting_strings_th.xtb
@@ -130,6 +130,7 @@
 <translation id="6963936880795878952">การเชื่อมต่อกับคอมพิวเตอร์ระยะไกลถูกบล็อกไว้ชั่วคราว เนื่องจากมีผู้พยายามเชื่อมต่อกับคอมพิวเตอร์ดังกล่าวโดยใช้ PIN ที่ไม่ถูกต้อง โปรดลองอีกครั้งในภายหลัง</translation>
 <translation id="6965382102122355670">ตกลง</translation>
 <translation id="6985691951107243942">คุณแน่ใจหรือไม่ว่าต้องการปิดใช้งานการเชื่อมต่อระยะไกลกับ <ph name="HOSTNAME" /> หากคุณเปลี่ยนใจภายหลัง คุณจะต้องไปที่คอมพิวเตอร์เครื่องนั้นเพื่อเปิดใช้งานการเชื่อมต่ออีกครั้ง</translation>
+<translation id="6998890551706945177"><ph name="CLIENT_USERNAME" /> ขอสิทธิ์เข้าถึงเพื่อดูและควบคุมคอมพิวเตอร์ของคุณ กด ''<ph name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" />'' หากคุณไม่รู้จักบุคคลนี้ หรือหากต้องการเปลี่ยนแปลงก่อนแชร์  ไม่เช่นนั้นให้เลือก ''<ph name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" />'' เพื่ออนุญาตการเชื่อมต่อ</translation>
 <translation id="7019153418965365059">ข้อผิดพลาดของโฮสต์ที่ไม่รู้จัก: <ph name="HOST_OFFLINE_REASON" /></translation>
 <translation id="701976023053394610">ความช่วยเหลือจากระยะไกล</translation>
 <translation id="7026930240735156896">ทำตามวิธีการเพื่อตั้งค่าคอมพิวเตอร์สำหรับการเข้าถึงระยะไกล</translation>
diff --git a/skia/config/SkUserConfig.h b/skia/config/SkUserConfig.h
index 39478f04..b1281a6 100644
--- a/skia/config/SkUserConfig.h
+++ b/skia/config/SkUserConfig.h
@@ -228,6 +228,10 @@
 #define SK_IGNORE_BLURRED_RRECT_OPT
 #define SK_USE_DISCARDABLE_SCALEDIMAGECACHE
 
+// Slight layout tests differences when changing GPU dither from shader
+// calculations to a texture table.
+#define SK_DISABLE_GPU_TABLE_DITHER
+
 #define SK_ATTR_DEPRECATED          SK_NOTHING_ARG1
 #define GR_GL_CUSTOM_SETUP_HEADER   "GrGLConfig_chrome.h"
 
diff --git a/testing/buildbot/OWNERS b/testing/buildbot/OWNERS
index a984dfd1..8cc273c 100644
--- a/testing/buildbot/OWNERS
+++ b/testing/buildbot/OWNERS
@@ -16,7 +16,12 @@
 per-file variants.pyl=chrome-weblayer-builder@chops-service-accounts.iam.gserviceaccount.com
 
 # For Lacros version skew tests related reviews
+per-file variants.pyl=lacros-version-skew-roller@chops-service-accounts.iam.gserviceaccount.com
+per-file chromium.chromiumos.json=lacros-version-skew-roller@chops-service-accounts.iam.gserviceaccount.com
+per-file chromium.fyi.json=lacros-version-skew-roller@chops-service-accounts.iam.gserviceaccount.com
+# TODO(crbug.com/1234067) Remove the following 2 lines when the conversion is done.
 per-file chromium.fyi.json=chrome-weblayer-builder@chops-service-accounts.iam.gserviceaccount.com
+per-file chromium.chromiumos.json=chrome-weblayer-builder@chops-service-accounts.iam.gserviceaccount.com
 
 # For V8 and DevTools related reviews.
 machenbach@chromium.org
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json
index fcc7dca..b9aa7e7 100644
--- a/testing/buildbot/chromium.android.fyi.json
+++ b/testing/buildbot/chromium.android.fyi.json
@@ -5344,502 +5344,6 @@
       }
     ]
   },
-  "android-cronet-x86-dbg-10-tests": {
-    "gtest_tests": [
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "cronet_sample_test_apk"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "e2-standard-8",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android29",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_29_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android29"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "cronet_sample_test_apk",
-        "test_id_prefix": "ninja://components/cronet/android:cronet_sample_test_apk/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "cronet_smoketests_missing_native_library_instrumentation_apk"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "e2-standard-8",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android29",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_29_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android29"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "cronet_smoketests_missing_native_library_instrumentation_apk",
-        "test_id_prefix": "ninja://components/cronet/android:cronet_smoketests_missing_native_library_instrumentation_apk/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "cronet_smoketests_platform_only_instrumentation_apk"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "e2-standard-8",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android29",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_29_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android29"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "cronet_smoketests_platform_only_instrumentation_apk",
-        "test_id_prefix": "ninja://components/cronet/android:cronet_smoketests_platform_only_instrumentation_apk/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "cronet_test_instrumentation_apk"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "e2-standard-8",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android29",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_29_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android29"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "cronet_test_instrumentation_apk",
-        "test_id_prefix": "ninja://components/cronet/android:cronet_test_instrumentation_apk/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "cronet_tests_android"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "e2-standard-8",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android29",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_29_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android29"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "cronet_tests_android",
-        "test_id_prefix": "ninja://components/cronet/android:cronet_tests_android/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "cronet_unittests_android"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "e2-standard-8",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android29",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_29_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android29"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "cronet_unittests_android",
-        "test_id_prefix": "ninja://components/cronet/android:cronet_unittests_android/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator_10.net_unittests.filter"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "net_unittests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "e2-standard-8",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android29",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_29_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android29"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 4
-        },
-        "test": "net_unittests",
-        "test_id_prefix": "ninja://net:net_unittests/"
-      }
-    ]
-  },
   "android-pie-arm64-wpt-rel-non-cq": {
     "isolated_scripts": [
       {
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index 2d6ed16..75d8a9eb 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -29618,6 +29618,502 @@
       }
     ]
   },
+  "android-cronet-x86-dbg-10-tests": {
+    "gtest_tests": [
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "cronet_sample_test_apk"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "e2-standard-8",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android29",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_29_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android29"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "cronet_sample_test_apk",
+        "test_id_prefix": "ninja://components/cronet/android:cronet_sample_test_apk/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "cronet_smoketests_missing_native_library_instrumentation_apk"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "e2-standard-8",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android29",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_29_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android29"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "cronet_smoketests_missing_native_library_instrumentation_apk",
+        "test_id_prefix": "ninja://components/cronet/android:cronet_smoketests_missing_native_library_instrumentation_apk/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "cronet_smoketests_platform_only_instrumentation_apk"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "e2-standard-8",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android29",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_29_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android29"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "cronet_smoketests_platform_only_instrumentation_apk",
+        "test_id_prefix": "ninja://components/cronet/android:cronet_smoketests_platform_only_instrumentation_apk/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "cronet_test_instrumentation_apk"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "e2-standard-8",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android29",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_29_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android29"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "cronet_test_instrumentation_apk",
+        "test_id_prefix": "ninja://components/cronet/android:cronet_test_instrumentation_apk/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "cronet_tests_android"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "e2-standard-8",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android29",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_29_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android29"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "cronet_tests_android",
+        "test_id_prefix": "ninja://components/cronet/android:cronet_tests_android/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "cronet_unittests_android"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "e2-standard-8",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android29",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_29_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android29"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "cronet_unittests_android",
+        "test_id_prefix": "ninja://components/cronet/android:cronet_unittests_android/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android29.textpb",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator_10.net_unittests.filter"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "net_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "e2-standard-8",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android29",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_29_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android29"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 4
+        },
+        "test": "net_unittests",
+        "test_id_prefix": "ninja://net:net_unittests/"
+      }
+    ]
+  },
   "android-cronet-x86-rel": {
     "additional_compile_targets": [
       "cronet_package",
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index c6a01f7..ff500a25 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -83165,7 +83165,7 @@
       },
       {
         "args": [
-          "--gtest_filter=-NativeExtensionBindingsSystemUnittest*:BluetoothSocketApiUnittest.CreateThenClose:FeatureProviderTest.PermissionFeatureAvailability"
+          "--gtest_filter=-BluetoothSocketApiUnittest.CreateThenClose:NativeExtensionBindingsSystemUnittest.*"
         ],
         "isolate_profile_data": true,
         "merge": {
@@ -84315,6 +84315,9 @@
         "test_id_prefix": "ninja://components:components_browsertests/"
       },
       {
+        "args": [
+          "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.components_unittests.filter"
+        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -84496,6 +84499,9 @@
         "test_id_prefix": "ninja://ui/events:events_unittests/"
       },
       {
+        "args": [
+          "--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied"
+        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -84514,6 +84520,9 @@
         "test_id_prefix": "ninja://extensions:extensions_browsertests/"
       },
       {
+        "args": [
+          "--gtest_filter=-NativeExtensionBindingsSystemUnittest*:BluetoothSocketApiUnittest.CreateThenClose:FeatureProviderTest.PermissionFeatureAvailability"
+        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -85409,6 +85418,9 @@
         "test_id_prefix": "ninja://url:url_unittests/"
       },
       {
+        "args": [
+          "--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:TextfieldTest*:TooltipControllerTest*:"
+        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/testing/buildbot/chromium.updater.json b/testing/buildbot/chromium.updater.json
index 93ab6c2c..cabfcc06 100644
--- a/testing/buildbot/chromium.updater.json
+++ b/testing/buildbot/chromium.updater.json
@@ -435,7 +435,7 @@
             {
               "cpu": "x86-64",
               "integrity": "high",
-              "os": "Windows-10-18363"
+              "os": "Windows-10-19042"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -491,7 +491,7 @@
             {
               "cpu": "x86-64",
               "integrity": "high",
-              "os": "Windows-10-18363"
+              "os": "Windows-10-19042"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index 8d0de69..414adbe 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -1162,6 +1162,12 @@
         ],
       },
       # https://crbug.com/1111979,
+      'linux-lacros-dbg-tests-fyi': {
+        'args': [
+          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.components_unittests.filter',
+        ],
+      },
+      # https://crbug.com/1111979,
       'linux-lacros-rel': {
         'args': [
           '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.components_unittests.filter',
@@ -1511,6 +1517,11 @@
           '--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied',
         ],
       },
+      'linux-lacros-dbg-tests-fyi': {
+        'args': [
+          '--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied',
+        ],
+      },
       'linux-lacros-rel': {
         'args': [
           '--gtest_filter=-BluetoothShellApiTest.ApiSanityCheck:BluetoothSocketApiTest.Listen:BluetoothSocketApiTest.PermissionDenied',
@@ -1528,6 +1539,12 @@
       # https://crbug.com/1111979,
       'linux-lacros-code-coverage': {
         'args': [
+          '--gtest_filter=-BluetoothSocketApiUnittest.CreateThenClose:'
+          'NativeExtensionBindingsSystemUnittest.*',
+        ],
+      },
+      'linux-lacros-dbg-tests-fyi': {
+        'args': [
           '--gtest_filter=-NativeExtensionBindingsSystemUnittest*:'
           'BluetoothSocketApiUnittest.CreateThenClose:'
           'FeatureProviderTest.PermissionFeatureAvailability',
@@ -2940,6 +2957,13 @@
           'TooltipStateManagerTest*'
         ],
       },
+      'linux-lacros-dbg-tests-fyi': {
+        'args': [
+          '--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:'
+          'TextfieldTest*:'
+          'TooltipControllerTest*:'
+        ],
+      },
       'linux-lacros-tester-rel': {
         'args': [
           '--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:'
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 1ef564a..d6ea746 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -747,6 +747,19 @@
           'isolated_scripts': 'cronet_dbg_isolated_scripts',
         },
       },
+      'android-cronet-x86-dbg-10-tests': {
+        'mixins': [
+          '10-x86-emulator',
+          'emulator-8-cores',
+          'has_native_resultdb_integration',
+          'linux-xenial-or-bionic',
+          'x86-64',
+        ],
+        'os_type': 'android',
+        'test_suites': {
+          'gtest_tests': 'cronet_gtests',
+        },
+      },
       'android-cronet-x86-rel': {
         'additional_compile_targets': [
           'cronet_package',
@@ -1002,19 +1015,6 @@
           'gtest_tests': 'android_12_emulator_gtests',
         }
       },
-      'android-cronet-x86-dbg-10-tests': {
-        'mixins': [
-          '10-x86-emulator',
-          'emulator-8-cores',
-          'has_native_resultdb_integration',
-          'linux-xenial-or-bionic',
-          'x86-64',
-        ],
-        'os_type': 'android',
-        'test_suites': {
-          'gtest_tests': 'cronet_gtests',
-        },
-      },
       'android-pie-arm64-wpt-rel-non-cq': {
         'mixins': [
           'has_native_resultdb_integration',
@@ -5784,7 +5784,7 @@
       },
       'win10-updater-tester-dbg': {
         'mixins': [
-          'win10',
+          'win10-20h2',
           'x86-64',
         ],
         'test_suites': {
@@ -5816,7 +5816,7 @@
       },
       'win10-updater-tester-rel': {
         'mixins': [
-          'win10',
+          'win10-20h2',
           'x86-64',
         ],
         'test_suites': {
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 1e445c0b..794b7b13 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -2269,6 +2269,21 @@
             ]
         }
     ],
+    "CompositingBasedThrottling": [
+        {
+            "platforms": [
+                "chromeos"
+            ],
+            "experiments": [
+                {
+                    "name": "CompositingBasedThrottling",
+                    "enable_features": [
+                        "CompositingBasedThrottling"
+                    ]
+                }
+            ]
+        }
+    ],
     "ContentCapture": [
         {
             "platforms": [
diff --git a/third_party/android_build_tools/aapt2/3pp/fetch.py b/third_party/android_build_tools/aapt2/3pp/fetch.py
index eb5b3a1..3181bdb 100755
--- a/third_party/android_build_tools/aapt2/3pp/fetch.py
+++ b/third_party/android_build_tools/aapt2/3pp/fetch.py
@@ -11,7 +11,10 @@
 
 _FILE_URL = 'https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/{0}/aapt2-{0}-linux.jar'
 _FILE_NAME = 'aapt2-{0}-linux.jar'
-_FILE_VERSION = '7.0.0-7396180'
+# This is the version that the 3pp bot will be building, this is usually the
+# same or newer than the one in README.chromium. This version is not actively
+# used in Chromium. The authoratative version is the one in README.chromium.
+_FILE_VERSION = '7.1.0-alpha07-7569047'
 
 
 def do_latest():
diff --git a/third_party/android_platform/OWNERS b/third_party/android_platform/OWNERS
index 16f7a8c..39f58e9 100644
--- a/third_party/android_platform/OWNERS
+++ b/third_party/android_platform/OWNERS
@@ -1,2 +1 @@
 agrieve@chromium.org
-rmcilroy@chromium.org
diff --git a/third_party/android_sdk/OWNERS b/third_party/android_sdk/OWNERS
index 98f48e4..387d996 100644
--- a/third_party/android_sdk/OWNERS
+++ b/third_party/android_sdk/OWNERS
@@ -1,6 +1,5 @@
 agrieve@chromium.org
 michaelbai@chromium.org
 primiano@chromium.org
-rmcilroy@chromium.org
 wnwen@chromium.org
 yfriedman@chromium.org
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom
index df8e7ea..2649e5c2 100644
--- a/third_party/blink/public/mojom/web_feature/web_feature.mojom
+++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -3283,6 +3283,8 @@
   kCSSSelectorPseudoHasInSnapshotProfile = 3971,
   kCSSSelectorPseudoHasInLiveProfile = 3972,
   kNavigatorPdfViewerEnabled = 3973,
+  kCanvasRenderingContext2DContextLostEvent = 3974,
+  kCanvasRenderingContext2DContextRestoredEvent = 3975,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/renderer/core/css/css_identifier_value.cc b/third_party/blink/renderer/core/css/css_identifier_value.cc
index b1a2600..9c6dc062 100644
--- a/third_party/blink/renderer/core/css/css_identifier_value.cc
+++ b/third_party/blink/renderer/core/css/css_identifier_value.cc
@@ -49,6 +49,9 @@
     case Length::kFitContent:
       value_id_ = CSSValueID::kFitContent;
       break;
+    case Length::kContent:
+      value_id_ = CSSValueID::kContent;
+      break;
     case Length::kExtendToZoom:
       value_id_ = CSSValueID::kInternalExtendToZoom;
       break;
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
index 53d5322..bf9c12f 100644
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -2242,9 +2242,9 @@
       field_group: "*",
       field_template: "<length>",
       default_value: "Length::Auto()",
-      converter: "ConvertLengthOrAuto",
+      converter: "ConvertLengthSizing",
       typedom_types: ["Keyword", "Length", "Percentage"],
-      keywords: ["auto"],
+      keywords: ["auto", "fit-content", "min-content", "max-content", "content"],
     },
     {
       name: "flex-direction",
diff --git a/third_party/blink/renderer/core/css/css_value.cc b/third_party/blink/renderer/core/css/css_value.cc
index 217f2d5..102f6d6 100644
--- a/third_party/blink/renderer/core/css/css_value.cc
+++ b/third_party/blink/renderer/core/css/css_value.cc
@@ -97,6 +97,7 @@
     case Length::kMaxContent:
     case Length::kFillAvailable:
     case Length::kFitContent:
+    case Length::kContent:
     case Length::kExtendToZoom:
       return CSSIdentifierValue::Create(value);
     case Length::kPercent:
diff --git a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
index b1855df6..65d6ca3 100644
--- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
@@ -2704,8 +2704,9 @@
     CSSParserTokenRange& range,
     const CSSParserContext& context,
     const CSSParserLocalContext&) const {
-  // FIXME: Support intrinsic dimensions too.
-  if (range.Peek().Id() == CSSValueID::kAuto)
+  if (css_parsing_utils::IdentMatches<
+          CSSValueID::kAuto, CSSValueID::kContent, CSSValueID::kMinContent,
+          CSSValueID::kMaxContent, CSSValueID::kFitContent>(range.Peek().Id()))
     return css_parsing_utils::ConsumeIdent(range);
   return css_parsing_utils::ConsumeLengthOrPercent(range, context,
                                                    kValueRangeNonNegative);
diff --git a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
index e5a8c84..0d4f9a2d 100644
--- a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
@@ -943,8 +943,12 @@
           return false;
         }
       } else if (!flex_basis) {
-        if (range.Peek().Id() == CSSValueID::kAuto)
+        if (css_parsing_utils::IdentMatches<
+                CSSValueID::kAuto, CSSValueID::kContent,
+                CSSValueID::kMinContent, CSSValueID::kMaxContent,
+                CSSValueID::kFitContent>(range.Peek().Id())) {
           flex_basis = css_parsing_utils::ConsumeIdent(range);
+        }
         if (!flex_basis) {
           flex_basis = css_parsing_utils::ConsumeLengthOrPercent(
               range, context, kValueRangeNonNegative);
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
index f53373e..fba4e4e 100644
--- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
@@ -1208,6 +1208,8 @@
     case CSSValueID::kWebkitFitContent:
     case CSSValueID::kFitContent:
       return Length::FitContent();
+    case CSSValueID::kContent:
+      return Length::Content();
     case CSSValueID::kAuto:
       return Length::Auto();
     default:
diff --git a/third_party/blink/renderer/core/css/style_engine_test.cc b/third_party/blink/renderer/core/css/style_engine_test.cc
index ecea7cf4..c0ae8fe 100644
--- a/third_party/blink/renderer/core/css/style_engine_test.cc
+++ b/third_party/blink/renderer/core/css/style_engine_test.cc
@@ -2565,6 +2565,22 @@
   EXPECT_EQ(outer, GetStyleRecalcRoot());
 }
 
+TEST_F(StyleEngineTest, ForceReattachNoStyleForElement) {
+  GetDocument().body()->setInnerHTML(R"HTML(<div id="reattach"></div>)HTML");
+
+  auto* reattach = GetDocument().getElementById("reattach");
+
+  UpdateAllLifecyclePhases();
+
+  unsigned initial_count = GetStyleEngine().StyleForElementCount();
+
+  reattach->SetForceReattachLayoutTree();
+  EXPECT_EQ(reattach, GetStyleRecalcRoot());
+
+  UpdateAllLifecyclePhases();
+  EXPECT_EQ(GetStyleEngine().StyleForElementCount(), initial_count);
+}
+
 TEST_F(StyleEngineTest, RecalcPropagatedWritingMode) {
   GetDocument().body()->SetInlineStyleProperty(CSSPropertyID::kWritingMode,
                                                "vertical-lr");
diff --git a/third_party/blink/renderer/core/css/style_recalc.cc b/third_party/blink/renderer/core/css/style_recalc.cc
index bc6f80f..d5ebf9c 100644
--- a/third_party/blink/renderer/core/css/style_recalc.cc
+++ b/third_party/blink/renderer/core/css/style_recalc.cc
@@ -21,7 +21,7 @@
 
 bool StyleRecalcChange::TraverseChild(const Node& node) const {
   return ShouldRecalcStyleFor(node) || node.ChildNeedsStyleRecalc() ||
-         RecalcContainerQueryDependent();
+         node.GetForceReattachLayoutTree() || RecalcContainerQueryDependent();
 }
 
 bool StyleRecalcChange::ShouldRecalcStyleFor(const Node& node) const {
@@ -31,8 +31,6 @@
     return true;
   if (node.NeedsStyleRecalc())
     return true;
-  if (node.GetForceReattachLayoutTree())
-    return true;
   // Early exit before getting the computed style.
   if (propagate_ != kClearEnsured && !RecalcContainerQueryDependent())
     return false;
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index b3612799..d49d48d 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -868,7 +868,7 @@
   // run the synchronization steps which modify the map invalidating any
   // outstanding iterators.
   HeapLinkedHashSet<WeakMember<Element>>* stored_elements =
-      element_attribute_map->at(name);
+      element_attribute_map->DeprecatedAtOrEmptyValue(name);
   if (!stored_elements) {
     stored_elements =
         MakeGarbageCollected<HeapLinkedHashSet<WeakMember<Element>>>();
@@ -2894,6 +2894,12 @@
     if (GetStyleChangeType() == kSubtreeStyleChange)
       child_change = child_change.ForceRecalcDescendants();
     ClearNeedsStyleRecalc();
+  } else if (GetForceReattachLayoutTree()) {
+    DCHECK(GetComputedStyle()) << "No need to force a layout tree reattach if "
+                                  "we had no computed style";
+    SetNeedsReattachLayoutTree();
+    child_change = child_change.ForceReattachLayoutTree();
+    ClearNeedsStyleRecalc();
   }
 
   // We're done with self style, notify the display lock.
diff --git a/third_party/blink/renderer/core/dom/nth_index_cache.cc b/third_party/blink/renderer/core/dom/nth_index_cache.cc
index 8a0b76b..e8498c2e 100644
--- a/third_party/blink/renderer/core/dom/nth_index_cache.cc
+++ b/third_party/blink/renderer/core/dom/nth_index_cache.cc
@@ -83,8 +83,10 @@
     return 1;
   NthIndexCache* nth_index_cache = element.GetDocument().GetNthIndexCache();
   NthIndexData* nth_index_data = nullptr;
-  if (nth_index_cache && nth_index_cache->parent_map_)
-    nth_index_data = nth_index_cache->parent_map_->at(element.parentNode());
+  if (nth_index_cache && nth_index_cache->parent_map_) {
+    nth_index_data = nth_index_cache->parent_map_->DeprecatedAtOrEmptyValue(
+        element.parentNode());
+  }
   if (nth_index_data)
     return nth_index_data->NthIndex(element);
   unsigned index = UncachedNthChildIndex(element);
@@ -98,8 +100,10 @@
     return 1;
   NthIndexCache* nth_index_cache = element.GetDocument().GetNthIndexCache();
   NthIndexData* nth_index_data = nullptr;
-  if (nth_index_cache && nth_index_cache->parent_map_)
-    nth_index_data = nth_index_cache->parent_map_->at(element.parentNode());
+  if (nth_index_cache && nth_index_cache->parent_map_) {
+    nth_index_data = nth_index_cache->parent_map_->DeprecatedAtOrEmptyValue(
+        element.parentNode());
+  }
   if (nth_index_data)
     return nth_index_data->NthLastIndex(element);
   unsigned index = UncachedNthLastChildIndex(element);
@@ -112,8 +116,10 @@
   DCHECK(element.parentNode());
   if (!parent_map_for_type_)
     return nullptr;
-  if (const IndexByType* map = parent_map_for_type_->at(element.parentNode()))
-    return map->at(element.tagName());
+  if (const IndexByType* map = parent_map_for_type_->DeprecatedAtOrEmptyValue(
+          element.parentNode())) {
+    return map->DeprecatedAtOrEmptyValue(element.tagName());
+  }
   return nullptr;
 }
 
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
index 0f32a33..2d234ab 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -4419,11 +4419,6 @@
     // Ensure we'll recompute viewport intersection for the frame subtree during
     // the scheduled visual update.
     SetIntersectionObservationState(kRequired);
-    // When a frame is throttled, we typically delete its previous painted
-    // output, so it will need to be repainted, even if nothing else has
-    // changed.
-    if (LayoutView* layout_view = GetLayoutView())
-      layout_view->Layer()->SetNeedsRepaint();
   } else if (GetFrame().IsLocalRoot()) {
     // By this point, every frame in the local frame tree has become throttled,
     // so painting the tree should just clear the previous painted output.
@@ -4433,6 +4428,18 @@
     RunPaintLifecyclePhase(PaintBenchmarkMode::kNormal);
   }
 
+  // When a frame is throttled, we typically delete its previous painted
+  // output, so it will need to be repainted, even if nothing else has
+  // changed.
+  if (LayoutView* layout_view = GetLayoutView())
+    layout_view->Layer()->SetNeedsRepaint();
+  // The painted output of the frame may be included in a cached subsequence
+  // associated with the embedding document, so invalidate the owner.
+  if (auto* owner = GetFrame().OwnerLayoutObject()) {
+    if (PaintLayer* owner_layer = owner->Layer())
+      owner_layer->SetNeedsRepaint();
+  }
+
 #if DCHECK_IS_ON()
   // Make sure we never have an unthrottled frame inside a throttled one.
   LocalFrameView* parent = ParentFrameView();
diff --git a/third_party/blink/renderer/core/layout/layout_box.cc b/third_party/blink/renderer/core/layout/layout_box.cc
index e538cf9d..ab94970 100644
--- a/third_party/blink/renderer/core/layout/layout_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_box.cc
@@ -5303,6 +5303,7 @@
     case Length::kExtendToZoom:
     case Length::kDeviceWidth:
     case Length::kDeviceHeight:
+    case Length::kContent:
       break;
   }
 
diff --git a/third_party/blink/renderer/core/layout/layout_flexible_box.cc b/third_party/blink/renderer/core/layout/layout_flexible_box.cc
index eb47381..e7ddce3 100644
--- a/third_party/blink/renderer/core/layout/layout_flexible_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_flexible_box.cc
@@ -860,7 +860,9 @@
                                                  const Length& flex_basis,
                                                  bool add_to_cb) const {
   NOT_DESTROYED();
-  if (flex_basis.IsAuto())
+  // 'content' isn't actually supported in legacy flex. Checking IsContent() and
+  // returning false on the next line prevents a DCHECK though.
+  if (flex_basis.IsAuto() || flex_basis.IsContent())
     return false;
   if (IsColumnFlow() && flex_basis.IsContentOrIntrinsicOrFillAvailable())
     return false;
diff --git a/third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.cc b/third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.cc
index 8c9b1e0..1f5afab6 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.cc
+++ b/third_party/blink/renderer/core/layout/ng/custom/pending_layout_registry.cc
@@ -13,7 +13,7 @@
 namespace blink {
 
 void PendingLayoutRegistry::NotifyLayoutReady(const AtomicString& name) {
-  PendingSet* set = pending_layouts_.at(name);
+  PendingSet* set = pending_layouts_.DeprecatedAtOrEmptyValue(name);
   if (set) {
     for (const auto& node : *set) {
       // If the node hasn't been gc'd, trigger a reattachment so that the
diff --git a/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm.cc
index 309aebb..5006760d 100644
--- a/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm.cc
@@ -216,9 +216,13 @@
   DCHECK(!flex_basis.IsAuto())
       << "This is never called with flex_basis.IsAuto, but it'd be trivial to "
          "support.";
-  if (!is_column_)
-    return true;
-  return !BlockLengthUnresolvable(BuildSpaceForFlexBasis(child), flex_basis);
+  DCHECK(!flex_basis.IsContent())
+      << "This is never called with flex_basis.IsContent, but it'd be trivial "
+         "to support.";
+  const NGConstraintSpace& space = BuildSpaceForFlexBasis(child);
+  if (MainAxisIsInlineAxis(child))
+    return !InlineLengthUnresolvable(space, flex_basis);
+  return !BlockLengthUnresolvable(space, flex_basis);
 }
 
 // This behavior is under discussion: the item's pre-flexing main size
@@ -470,9 +474,13 @@
           (Style().BoxOrient() == EBoxOrient::kHorizontal ||
            Style().BoxAlign() != EBoxAlignment::kStretch))
         length_to_resolve = Length::FitContent();
-    } else if (IsItemFlexBasisDefinite(child)) {
+    } else if (!flex_basis.IsContent() && IsItemFlexBasisDefinite(child)) {
       length_to_resolve = flex_basis;
     }
+    DCHECK(!length_to_resolve.IsContent());
+    DCHECK(!flex_basis.IsContent() || length_to_resolve.IsAuto())
+        << "The code below expects flex-basis:content to be translated to "
+           "length_to_resolve.IsAuto()";
 
     if (length_to_resolve.IsAuto()) {
       // This block means that the used flex-basis is 'content'. In here we
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
index 52ae6876..8322b78 100644
--- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
@@ -1271,6 +1271,7 @@
         case Length::kDeviceWidth:
         case Length::kDeviceHeight:
         case Length::kExtendToZoom:
+        case Length::kContent:
         case Length::kNone:
           NOTREACHED();
           break;
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc
index 6d7d8bb..adc9d52 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc
@@ -311,7 +311,7 @@
   const unsigned end_offset = ToNodeOffsetPair(range.EndPosition()).second;
   unsigned range_start;
   unsigned range_end;
-  std::tie(range_start, range_end) = ranges_.at(&node);
+  std::tie(range_start, range_end) = ranges_.DeprecatedAtOrEmptyValue(&node);
 
   if (range_start == range_end || units_[range_start].DOMStart() > end_offset ||
       units_[range_end - 1].DOMEnd() < start_offset)
diff --git a/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h b/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h
index 1ab02ee..165da53 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h
@@ -10,6 +10,7 @@
 #include "third_party/blink/renderer/core/layout/geometry/logical_size.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_size.h"
 #include "third_party/blink/renderer/core/layout/min_max_sizes.h"
+#include "third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 
 namespace blink {
@@ -65,6 +66,20 @@
     const NGBoxFragmentBuilder* container_builder,
     LogicalOffset& offset);
 
+// Figure out if the child has any out-of-flow positioned descendants, in which
+// case we'll need to propagate this to the fragment builder.
+inline bool NeedsOOFPositionedInfoPropagation(const NGPhysicalFragment& child) {
+  if (child.HasOutOfFlowPositionedDescendants())
+    return true;
+
+  const auto* box_fragment = DynamicTo<NGPhysicalBoxFragment>(&child);
+  if (!box_fragment)
+    return false;
+
+  return box_fragment->HasMulticolsWithPendingOOFs() ||
+         box_fragment->HasOutOfFlowPositionedFragmentainerDescendants();
+}
+
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_ABSOLUTE_UTILS_H_
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
index 978a6590..e127ff6 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
@@ -6,6 +6,7 @@
 
 #include "third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h"
+#include "third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_block_break_token.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h"
@@ -41,7 +42,8 @@
     LogicalOffset relative_offset,
     const NGInlineContainer<LogicalOffset>* inline_container,
     absl::optional<LayoutUnit> adjustment_for_oof_propagation) {
-  if (adjustment_for_oof_propagation) {
+  if (adjustment_for_oof_propagation &&
+      NeedsOOFPositionedInfoPropagation(child)) {
     PropagateOOFPositionedInfo(child, child_offset, relative_offset,
                                /* offset_adjustment */ LogicalOffset(),
                                inline_container,
@@ -305,6 +307,11 @@
     LayoutUnit containing_block_adjustment,
     const NGContainingBlock<LogicalOffset>* fixedpos_containing_block,
     LogicalOffset additional_fixedpos_offset) {
+  // Calling this method without any work to do is expensive, even if it ends up
+  // skipping all its parts (probably due to its size). Make sure that we have a
+  // reason to be here.
+  DCHECK(NeedsOOFPositionedInfoPropagation(fragment));
+
   LogicalOffset adjusted_offset = offset + offset_adjustment + relative_offset;
 
   // Collect the child's out of flow descendants.
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
index 79e3241..a1fd7ca 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
@@ -1554,12 +1554,14 @@
   LayoutUnit containing_block_adjustment =
       container_builder_->BlockOffsetAdjustmentForFragmentainer(
           fragmentainer_consumed_block_size_);
-  container_builder_->PropagateOOFPositionedInfo(
-      result->PhysicalFragment(), oof_offset, relative_offset,
-      offset_adjustment,
-      /* inline_container */ nullptr, containing_block_adjustment,
-      &descendant.node_info.fixedpos_containing_block,
-      additional_fixedpos_offset);
+  if (NeedsOOFPositionedInfoPropagation(result->PhysicalFragment())) {
+    container_builder_->PropagateOOFPositionedInfo(
+        result->PhysicalFragment(), oof_offset, relative_offset,
+        offset_adjustment,
+        /* inline_container */ nullptr, containing_block_adjustment,
+        &descendant.node_info.fixedpos_containing_block,
+        additional_fixedpos_offset);
+  }
   algorithm->AppendOutOfFlowResult(result);
 
   const auto& physical_fragment =
diff --git a/third_party/blink/renderer/core/scheduler_integration_tests/frame_throttling_test.cc b/third_party/blink/renderer/core/scheduler_integration_tests/frame_throttling_test.cc
index 82dbb2f..348c2bd35 100644
--- a/third_party/blink/renderer/core/scheduler_integration_tests/frame_throttling_test.cc
+++ b/third_party/blink/renderer/core/scheduler_integration_tests/frame_throttling_test.cc
@@ -1170,6 +1170,11 @@
   EXPECT_TRUE(frame_element->contentDocument()->View()->CanThrottleRendering());
   // The inner div should still be composited.
   EXPECT_EQ(1u, CcLayersByDOMElementId(root_layer, "div").size());
+  // The owner document may included stale painted output for the iframe in its
+  // cache; make sure it gets invalidated.
+  EXPECT_FALSE(To<LayoutBoxModelObject>(frame_element->GetLayoutObject())
+                   ->Layer()
+                   ->IsValid());
 
   // If painting of the iframe is throttled, we should only receive drawing
   // commands for the main frame.
@@ -1188,14 +1193,8 @@
   // And a throttled full lifecycle update.
   UpdateAllLifecyclePhases();
 
-  if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) {
-    // Leave the composited layer of the inner div as-is because we don't
-    // repaint it.
-    EXPECT_EQ(1u, CcLayersByDOMElementId(root_layer, "div").size());
-  } else {
-    // The inner div is no longer composited.
-    EXPECT_EQ(0u, CcLayersByDOMElementId(root_layer, "div").size());
-  }
+  // The inner div is no longer composited.
+  EXPECT_EQ(0u, CcLayersByDOMElementId(root_layer, "div").size());
 
   auto commands_throttled1 = CompositeFrame();
   EXPECT_LT(commands_throttled1.DrawCount(), full_draw_count);
@@ -1205,6 +1204,9 @@
   CompositeFrame();
   EXPECT_FALSE(
       frame_element->contentDocument()->View()->CanThrottleRendering());
+  EXPECT_FALSE(To<LayoutBoxModelObject>(frame_element->GetLayoutObject())
+                   ->Layer()
+                   ->IsValid());
   auto commands_not_throttled1 = CompositeFrame();
   // The inner div is still not composited.
   EXPECT_EQ(0u, CcLayersByDOMElementId(root_layer, "div").size());
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index f95ac1d..3feeac9 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -18,6 +18,7 @@
 #include "third_party/blink/renderer/core/css/cssom/css_color_value.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
+#include "third_party/blink/renderer/core/frame/web_feature.h"
 #include "third_party/blink/renderer/core/html/canvas/text_metrics.h"
 #include "third_party/blink/renderer/core/html/media/html_video_element.h"
 #include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter.h"
@@ -29,6 +30,7 @@
 #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
 #include "third_party/blink/renderer/platform/graphics/stroke_data.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
+#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 
 namespace blink {
 
@@ -1679,6 +1681,9 @@
       RuntimeEnabledFeatures::NewCanvas2DAPIEnabled()) {
     Event* event = Event::CreateCancelable(event_type_names::kContextlost);
     GetCanvasRenderingContextHost()->HostDispatchEvent(event);
+
+    UseCounter::Count(GetCanvasRenderingContextHost()->GetTopExecutionContext(),
+                      WebFeature::kCanvasRenderingContext2DContextLostEvent);
     if (event->defaultPrevented()) {
       context_restorable_ = false;
     }
@@ -1700,6 +1705,9 @@
   if (RuntimeEnabledFeatures::NewCanvas2DAPIEnabled()) {
     Event* event(Event::Create(event_type_names::kContextrestored));
     GetCanvasRenderingContextHost()->HostDispatchEvent(event);
+    UseCounter::Count(
+        GetCanvasRenderingContextHost()->GetTopExecutionContext(),
+        WebFeature::kCanvasRenderingContext2DContextRestoredEvent);
   }
 }
 
diff --git a/third_party/blink/renderer/modules/webusb/usb.cc b/third_party/blink/renderer/modules/webusb/usb.cc
index ed5c768..9cdf633 100644
--- a/third_party/blink/renderer/modules/webusb/usb.cc
+++ b/third_party/blink/renderer/modules/webusb/usb.cc
@@ -200,7 +200,7 @@
 }
 
 USBDevice* USB::GetOrCreateDevice(UsbDeviceInfoPtr device_info) {
-  USBDevice* device = device_cache_.at(device_info->guid);
+  USBDevice* device = device_cache_.DeprecatedAtOrEmptyValue(device_info->guid);
   if (!device) {
     String guid = device_info->guid;
     mojo::PendingRemote<UsbDevice> pipe;
@@ -248,7 +248,7 @@
 
 void USB::OnDeviceRemoved(UsbDeviceInfoPtr device_info) {
   String guid = device_info->guid;
-  USBDevice* device = device_cache_.at(guid);
+  USBDevice* device = device_cache_.DeprecatedAtOrEmptyValue(guid);
   if (!device) {
     device = MakeGarbageCollected<USBDevice>(
         std::move(device_info), mojo::NullRemote(), GetExecutionContext());
diff --git a/third_party/blink/renderer/modules/xr/xr_input_source_array.cc b/third_party/blink/renderer/modules/xr/xr_input_source_array.cc
index b6bad19..17b3304 100644
--- a/third_party/blink/renderer/modules/xr/xr_input_source_array.cc
+++ b/third_party/blink/renderer/modules/xr/xr_input_source_array.cc
@@ -29,7 +29,7 @@
 }
 
 XRInputSource* XRInputSourceArray::GetWithSourceId(uint32_t source_id) {
-  return input_sources_.at(source_id);
+  return input_sources_.DeprecatedAtOrEmptyValue(source_id);
 }
 
 void XRInputSourceArray::RemoveWithSourceId(uint32_t source_id) {
diff --git a/third_party/blink/renderer/platform/bindings/dom_wrapper_world.cc b/third_party/blink/renderer/platform/bindings/dom_wrapper_world.cc
index d38eaa4..54096d3 100644
--- a/third_party/blink/renderer/platform/bindings/dom_wrapper_world.cc
+++ b/third_party/blink/renderer/platform/bindings/dom_wrapper_world.cc
@@ -206,7 +206,7 @@
 
 String DOMWrapperWorld::NonMainWorldStableId() const {
   DCHECK(!IsMainWorld());
-  return IsolatedWorldStableIds().at(GetWorldId());
+  return IsolatedWorldStableIds().DeprecatedAtOrEmptyValue(GetWorldId());
 }
 
 void DOMWrapperWorld::SetNonMainWorldStableId(int32_t world_id,
diff --git a/third_party/blink/renderer/platform/geometry/length.h b/third_party/blink/renderer/platform/geometry/length.h
index d1e007a..51fa54a1 100644
--- a/third_party/blink/renderer/platform/geometry/length.h
+++ b/third_party/blink/renderer/platform/geometry/length.h
@@ -64,7 +64,8 @@
     kExtendToZoom,
     kDeviceWidth,
     kDeviceHeight,
-    kNone
+    kNone,    // only valid for max-width, max-height, or contain-intrinsic-size
+    kContent  // only valid for flex-basis
   };
 
   Length() : int_value_(0), quirk_(false), type_(kAuto), is_float_(false) {}
@@ -152,6 +153,7 @@
   static Length DeviceHeight() { return Length(kDeviceHeight); }
   static Length None() { return Length(kNone); }
   static Length FitContent() { return Length(kFitContent); }
+  static Length Content() { return Length(kContent); }
   template <typename NUMBER_TYPE>
   static Length Percent(NUMBER_TYPE number) {
     return Length(number, kPercent);
@@ -233,7 +235,8 @@
   // as `auto`. https://www.w3.org/TR/css-sizing-3/#valdef-width-min-content
   bool IsContentOrIntrinsic() const {
     return GetType() == kMinContent || GetType() == kMaxContent ||
-           GetType() == kFitContent || GetType() == kMinIntrinsic;
+           GetType() == kFitContent || GetType() == kMinIntrinsic ||
+           GetType() == kContent;
   }
   bool IsAutoOrContentOrIntrinsic() const {
     return GetType() == kAuto || IsContentOrIntrinsic();
@@ -253,6 +256,7 @@
   bool IsCalculatedEqual(const Length&) const;
   bool IsMinContent() const { return GetType() == kMinContent; }
   bool IsMaxContent() const { return GetType() == kMaxContent; }
+  bool IsContent() const { return GetType() == kContent; }
   bool IsMinIntrinsic() const { return GetType() == kMinIntrinsic; }
   bool IsFillAvailable() const { return GetType() == kFillAvailable; }
   bool IsFitContent() const { return GetType() == kFitContent; }
diff --git a/third_party/blink/renderer/platform/geometry/length_functions.cc b/third_party/blink/renderer/platform/geometry/length_functions.cc
index e1fd6780..1b3b5fd 100644
--- a/third_party/blink/renderer/platform/geometry/length_functions.cc
+++ b/third_party/blink/renderer/platform/geometry/length_functions.cc
@@ -50,6 +50,7 @@
     case Length::kMaxContent:
     case Length::kMinIntrinsic:
     case Length::kFitContent:
+    case Length::kContent:
     case Length::kExtendToZoom:
     case Length::kDeviceWidth:
     case Length::kDeviceHeight:
@@ -79,6 +80,7 @@
     case Length::kMaxContent:
     case Length::kMinIntrinsic:
     case Length::kFitContent:
+    case Length::kContent:
     case Length::kExtendToZoom:
     case Length::kDeviceWidth:
     case Length::kDeviceHeight:
@@ -103,6 +105,7 @@
     case Length::kMaxContent:
     case Length::kMinIntrinsic:
     case Length::kFitContent:
+    case Length::kContent:
     case Length::kExtendToZoom:
     case Length::kDeviceWidth:
     case Length::kDeviceHeight:
diff --git a/third_party/blink/renderer/platform/heap/test/heap_test.cc b/third_party/blink/renderer/platform/heap/test/heap_test.cc
index f1ef45da..cdcd9a4 100644
--- a/third_party/blink/renderer/platform/heap/test/heap_test.cc
+++ b/third_party/blink/renderer/platform/heap/test/heap_test.cc
@@ -30,6 +30,7 @@
 
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
+#include "build/build_config.h"
 #include "gin/public/v8_platform.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/common/features.h"
@@ -2717,10 +2718,11 @@
   EphemeronWrapper* wrapper = chain;
   for (int i = 0; i < 100; i++) {
     EXPECT_EQ(1u, wrapper->GetMap().size());
+
     if (i == 49)
-      wrapper = wrapper->GetMap().at(key2);
+      wrapper = wrapper->GetMap().DeprecatedAtOrEmptyValue(key2);
     else
-      wrapper = wrapper->GetMap().at(key);
+      wrapper = wrapper->GetMap().DeprecatedAtOrEmptyValue(key);
   }
   EXPECT_EQ(nullptr, wrapper);
 
@@ -2730,7 +2732,7 @@
   wrapper = chain;
   for (int i = 0; i < 50; i++) {
     EXPECT_EQ(i == 49 ? 0u : 1u, wrapper->GetMap().size());
-    wrapper = wrapper->GetMap().at(key);
+    wrapper = wrapper->GetMap().DeprecatedAtOrEmptyValue(key);
   }
   EXPECT_EQ(nullptr, wrapper);
 
diff --git a/third_party/blink/renderer/platform/wtf/BUILD.gn b/third_party/blink/renderer/platform/wtf/BUILD.gn
index d30097a..e49c9a9 100644
--- a/third_party/blink/renderer/platform/wtf/BUILD.gn
+++ b/third_party/blink/renderer/platform/wtf/BUILD.gn
@@ -208,6 +208,9 @@
 
   public_configs = [
     ":wtf_config",
+
+    # TODO(crbug.com/879657): Fix size_t to int truncations.
+    "//build/config/compiler:no_shorten_64_warnings",
     "//third_party/blink/renderer:features",
   ]
 
diff --git a/third_party/blink/tools/diff_wpt_results.py b/third_party/blink/tools/diff_wpt_results.py
index 5881d506..50955da 100755
--- a/third_party/blink/tools/diff_wpt_results.py
+++ b/third_party/blink/tools/diff_wpt_results.py
@@ -38,15 +38,32 @@
 from blinkpy.web_tests.port.android import (
     PRODUCTS, PRODUCTS_TO_STEPNAMES)
 
-CSV_HEADING = ('Test name, Test Result, Baseline Result, '
+CSV_HEADING = ('Test name, %s Result, %s Result, '
                'Result Comparison, Test Flaky Results, '
                'Baseline Flaky Results, Unreliable Comparison\n')
 YES = 'Yes'
 NO = 'No'
 _log = logging.getLogger(os.path.basename(__file__))
+
+# Extend this script to compare the results between wptrunner/Chrome
+# and rwt/content_shell on Linux
+PRODUCTS = PRODUCTS + ['chrome_linux', 'content_shell']
+PRODUCTS_TO_STEPNAMES.update({
+    'chrome_linux': 'wpt_tests_suite',
+    'content_shell': 'blink_web_tests'})
+PRODUCTS_TO_BUILDER_NAME = {
+    'android_weblayer': 'android-weblayer-pie-x86-wpt-fyi-rel',
+    'android_webview': 'android-webview-pie-x86-wpt-fyi-rel',
+    'chrome_android': 'android-web-platform-pie-x86-fyi-rel',
+    'chrome_linux': 'linux-wpt-fyi-rel',
+    'content_shell': "Linux Tests"}
+
 STEP_NAME_VARIANTS = {
     'chrome_public_wpt': ['chrome_public_wpt on Ubuntu-16.04 or Ubuntu-18.04'],
-    'weblayer_shell_wpt': ['weblayer_shell_wpt on Ubuntu-16.04 or Ubuntu-18.04']
+    'weblayer_shell_wpt': ['weblayer_shell_wpt on Ubuntu-16.04 or Ubuntu-18.04'],
+    'system_webview_wpt': ['system_webview_wpt on Ubuntu-16.04 or Ubuntu-18.04'],
+    'wpt_tests_suite': ['wpt_tests_suite on Ubuntu-18.04'],
+    'blink_web_tests': ['blink_web_tests on Ubuntu-18.04']
 }
 
 def map_tests_to_results(output_mp, input_mp, path=''):
@@ -60,16 +77,30 @@
 class WPTResultsDiffer(object):
 
     def __init__(self, args, host, actual_results_map,
-                 baseline_results_map, csv_output):
+                 baseline_results_map, csv_output, ignore_missing=False):
         self._args = args
         self._host = host
         self._actual_results_map = actual_results_map
         self._baseline_results_map = baseline_results_map
         self._csv_output = csv_output
-        self._test_flaky_results = self._get_flaky_test_results(
-            args.product_to_compare)
-        self._baseline_flaky_results = self._get_flaky_test_results(
-            args.baseline_product)
+        self._ignore_missing = ignore_missing
+        self._test_flaky_results = None
+        self._baseline_flaky_results = None
+
+        try:
+            self._test_flaky_results = self._get_flaky_test_results(
+                args.product_to_compare)
+        except:
+            _log.info('Failed to get flaky results for %s' % args.product_to_compare)
+
+        try:
+            self._baseline_flaky_results = self._get_flaky_test_results(
+                args.baseline_product)
+        except:
+            _log.info('Failed to get flaky results for %s' % args.baseline_product)
+
+        self._handle_flaky = self._test_flaky_results is not None \
+            and self._baseline_flaky_results is not None
 
     def _get_flaky_test_results(self, product):
         return self._get_bot_expectations(product).flakes_by_path(
@@ -77,13 +108,7 @@
             consider_only_flaky_runs=False)
 
     def _get_bot_expectations(self, product):
-        specifiers = [product]
-        builders = self._host.builders.filter_builders(
-            include_specifiers=specifiers)
-        assert len(builders) == 1, (
-            'Multiple builders match the specifiers %s' % specifiers)
-
-        builder_name = builders[0]
+        builder_name = PRODUCTS_TO_BUILDER_NAME[product]
         bot_expectations_factory = BotTestExpectationsFactory(
             self._host.builders, PRODUCTS_TO_STEPNAMES[product])
 
@@ -96,7 +121,8 @@
     def create_csv(self):
         super_set = (set(self._actual_results_map.keys()) |
                      set(self._baseline_results_map.keys()))
-        file_output = CSV_HEADING
+        file_output = CSV_HEADING % (self._args.product_to_compare,
+                                     self._args.baseline_product)
 
         for test in sorted(super_set):
             if ',' in test:
@@ -112,11 +138,13 @@
             if line[-1] == line[-2]:
                 line.append('SAME RESULTS')
             elif 'MISSING' in (line[-1], line[-2]):
+                if self._ignore_missing:
+                    continue
                 line.append('MISSING RESULTS')
             else:
                 line.append('DIFFERENT RESULTS')
 
-            if line[-1] != 'MISSING RESULTS':
+            if self._handle_flaky and line[-1] != 'MISSING RESULTS':
                 test_flaky_results = self.flaky_results(
                     test, self._test_flaky_results)
 
@@ -169,19 +197,15 @@
     else:
         _log.info(('Retrieving test results for '
                    'product %s using the bb command'), product)
-        specifiers = [product]
-        builders = host.builders.filter_builders(
-            include_specifiers=specifiers)
-        assert len(builders) == 1
-
-        builder_name = builders[0]
+        builder_name = PRODUCTS_TO_BUILDER_NAME[product]
+        # TODO: Note the builder name and number in the CSV file
         latest_build = host.bb_agent.get_latest_finished_build(
             builder_name)
         _log.debug('The latest build for %s is %d',
                    builder_name, latest_build.build_number)
 
         build_results = _get_build_test_results(host, product, latest_build)
-        json_results_obj = tempfile.TemporaryFile()
+        json_results_obj = tempfile.NamedTemporaryFile()
         json_results_obj.write(json.dumps(build_results))
         json_results_obj.seek(0)
 
@@ -197,16 +221,19 @@
                         help='Path to baseline test results JSON file')
     parser.add_argument('--baseline-product', required=True, action='store',
                         choices=PRODUCTS,
-                        help='Name of the baseline WPT product')
+                        help='Name of the baseline product')
     parser.add_argument('--test-results-to-compare', required=False,
                         help='Path to actual test results JSON file')
     parser.add_argument('--product-to-compare', required=True, action='store',
                         choices=PRODUCTS,
-                        help='Name of the WPT product being compared')
+                        help='Name of the product being compared')
     parser.add_argument('--csv-output', required=True,
                         help='Path to CSV output file')
     parser.add_argument('--verbose', '-v', action='count', default=1,
                         help='Verbosity level')
+    parser.add_argument('--ignore-missing', action='store_true',
+                        required=False, default=False,
+                        help='Ignore tests that are not run for one of the product')
     args = parser.parse_args()
 
     if args.verbose >= 3:
@@ -240,14 +267,26 @@
         # names to their results map
         tests_to_actual_results = {}
         tests_to_baseline_results = {}
+        if args.product_to_compare == 'chrome_linux':
+            path = '/external/wpt'
+        else:
+            path = ''
         map_tests_to_results(tests_to_actual_results,
-                             actual_results_json['tests'])
+                             actual_results_json['tests'],
+                             path=path)
+
+        if args.baseline_product == 'chrome_linux':
+            path = '/external/wpt'
+        else:
+            path = ''
         map_tests_to_results(tests_to_baseline_results,
-                             baseline_results_json['tests'])
+                             baseline_results_json['tests'],
+                             path=path)
 
         # Create a CSV file which compares tests results to baseline results
         WPTResultsDiffer(args, host, tests_to_actual_results,
-                         tests_to_baseline_results, csv_output).create_csv()
+                         tests_to_baseline_results, csv_output,
+                         args.ignore_missing).create_csv()
 
     return 0
 
diff --git a/third_party/blink/tools/diff_wpt_results_unittest.py b/third_party/blink/tools/diff_wpt_results_unittest.py
index 86b0b454..9100849c 100755
--- a/third_party/blink/tools/diff_wpt_results_unittest.py
+++ b/third_party/blink/tools/diff_wpt_results_unittest.py
@@ -86,7 +86,8 @@
             MockWPTResultsDiffer(actual_mp, actual_mp, csv_out).create_csv()
             csv_out.seek(0)
             content = csv_out.read()
-            self.assertEquals(content, CSV_HEADING +
+            heading = CSV_HEADING % (TEST_PRODUCT, TEST_BASELINE_PRODUCT)
+            self.assertEquals(content, heading +
                               ('"test, name.html",PASS,PASS,'
                                'SAME RESULTS,"{FAIL, TIMEOUT, PASS}",'
                                '"{CRASH, PASS}",Yes\n'))
@@ -97,7 +98,8 @@
             MockWPTResultsDiffer(actual_mp, actual_mp, csv_out).create_csv()
             csv_out.seek(0)
             content = csv_out.read()
-            self.assertEquals(content, CSV_HEADING +
+            heading = CSV_HEADING % (TEST_PRODUCT, TEST_BASELINE_PRODUCT)
+            self.assertEquals(content, heading +
                               ('test.html,PASS,PASS,SAME RESULTS,'
                                '"{FAIL, TIMEOUT, PASS}","{CRASH, PASS}",Yes\n'))
 
@@ -109,7 +111,8 @@
             MockWPTResultsDiffer(actual_mp, baseline_mp, csv_out).create_csv()
             csv_out.seek(0)
             content = csv_out.read()
-            self.assertEquals(content, CSV_HEADING +
+            heading = CSV_HEADING % (TEST_PRODUCT, TEST_BASELINE_PRODUCT)
+            self.assertEquals(content, heading +
                               ('test.html,PASS,FAIL,DIFFERENT RESULTS,'
                                '"{FAIL, TIMEOUT, PASS}","{FAIL, CRASH}",No\n'))
 
@@ -121,7 +124,8 @@
             MockWPTResultsDiffer(actual_mp, baseline_mp, csv_out).create_csv()
             csv_out.seek(0)
             content = csv_out.read()
-            self.assertEquals(content, CSV_HEADING +
+            heading = CSV_HEADING % (TEST_PRODUCT, TEST_BASELINE_PRODUCT)
+            self.assertEquals(content, heading +
                               ('test.html,CRASH,FAIL,DIFFERENT RESULTS,'
                                '"{FAIL, CRASH, TIMEOUT}","{FAIL, CRASH}",Yes\n'))
 
@@ -131,7 +135,8 @@
             MockWPTResultsDiffer(actual_mp, {}, csv_out).create_csv()
             csv_out.seek(0)
             content = csv_out.read()
-            self.assertEquals(content, CSV_HEADING +
+            heading = CSV_HEADING % (TEST_PRODUCT, TEST_BASELINE_PRODUCT)
+            self.assertEquals(content, heading +
                               'test.html,PASS,MISSING,MISSING RESULTS,{},{},No\n')
 
     def test_use_bb_to_get_results(self):
@@ -175,7 +180,8 @@
                                  csv_out).create_csv()
             csv_out.seek(0)
             content = csv_out.read()
-            self.assertEquals(content, CSV_HEADING +
+            heading = CSV_HEADING % (TEST_PRODUCT, TEST_BASELINE_PRODUCT)
+            self.assertEquals(content, heading +
                               ('test.html,PASS,FAIL,DIFFERENT RESULTS,'
                                '"{FAIL, TIMEOUT, PASS}","{FAIL, CRASH}",No\n'))
 
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
index 45b32d3..5db61fb 100644
--- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
+++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -94,6 +94,10 @@
 crbug.com/1011718 external/wpt/css/css-flexbox/flexbox-justify-content-vert-006.xhtml [ Failure ]
 crbug.com/1011718 external/wpt/css/css-flexbox/flexbox_justifycontent-left-002.html [ Failure ]
 crbug.com/1011718 external/wpt/css/css-flexbox/flexbox_justifycontent-right-002.html [ Failure ]
+crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-001a.html [ Failure ]
+crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-001b.html [ Failure ]
+crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-002a.html [ Failure ]
+crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-002b.html [ Failure ]
 
 ### external/wpt/css/css-fonts/
 crbug.com/591099 external/wpt/css/css-fonts/font-features-across-space-1.html [ Failure ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index f636afb..48a98b5 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -866,16 +866,6 @@
 crbug.com/886585 external/wpt/css/css-flexbox/flexbox-align-self-baseline-horiz-007.xhtml [ Failure ]
 crbug.com/886585 external/wpt/css/css-flexbox/flexbox-align-self-baseline-horiz-008.xhtml [ Failure ]
 
-# We haven't implemented flex-basis: content yet.
-crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-001a.html [ Failure ]
-crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-001b.html [ Failure ]
-crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-002a.html [ Failure ]
-crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-002b.html [ Failure ]
-crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-003a.html [ Failure ]
-crbug.com/470421 external/wpt/css/css-flexbox/flexbox-flex-basis-content-004a.html [ Failure ]
-crbug.com/470421 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-021.html [ Failure ]
-crbug.com/470421 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-022.html [ Failure ]
-
 # Bad test expectations, but we aren't sure if web compatible yet.
 crbug.com/1114280 external/wpt/css/css-flexbox/flexbox-min-width-auto-005.html [ Failure ]
 crbug.com/1114280 external/wpt/css/css-flexbox/flexbox-min-width-auto-006.html [ Failure ]
@@ -7308,6 +7298,9 @@
 # Temporary disabling to allow landing https://webrtc-review.googlesource.com/c/src/+/227120
 crbug.com/webrtc/12906 external/wpt/webrtc/RTCRtpTransceiver.https.html [ Failure Pass Timeout ]
 
+# Temporary disabling to allow landing https://crrev.com/c/3080307
+crbug.com/1146422 http/tests/devtools/profiler/agents-disabled-check.js [ Failure Pass ]
+
 # Sheriff 2021-07-29
 crbug.com/626703 [ Mac ] external/wpt/webrtc/simulcast/setParameters-active.https.html [ Failure Pass ]
 crbug.com/626703 http/tests/security/cross-frame-access-put.html [ Failure Pass ]
@@ -7333,3 +7326,6 @@
 crbug.com/1230534 external/wpt/webrtc/simulcast/getStats.https.html [ Failure Pass Timeout ]
 crbug.com/1237132 [ Mac ] virtual/oopr-canvas2d/fast/canvas/canvas-blending-pattern-over-gradient.html [ Pass Timeout ]
 crbug.com/1178292 [ Mac ] fast/mediacapturefromelement/CanvasCaptureMediaStream-set-size-too-large.html [ Pass Timeout ]
+
+# Sheriff 2021-08-09
+crbug.com/1237909 [ Linux ] external/wpt/webrtc-svc/RTCRtpParameters-scalability.html [ Failure Pass Crash ]
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-basis-intrinsics-001.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-basis-intrinsics-001.html
new file mode 100644
index 0000000..d34a5c9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-basis-intrinsics-001.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<script src='/resources/testharness.js'></script>
+<script src='/resources/testharnessreport.js'></script>
+<script src='/resources/check-layout-th.js'></script>
+<link rel="author" title="David Grogan" href="dgrogan@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-basis-property">
+<meta name="assert" content="flex-basis:min/max/fit-content works in row and column flexboxes when the items have either parallel or orthogonal writing modes" />
+
+<style>
+.inline-block {
+  float: left;
+  height: 50px;
+  width: 50px;
+  background: blue;
+}
+
+.flexbox {
+  display: flex;
+  width: 75px;
+  height: 75px;
+  margin-bottom: 50px;
+}
+
+.flex-item {
+  flex-shrink: 0;
+  min-width: 0px;
+  min-height: 0px;
+  background: green;
+}
+
+.ortho-item {
+  writing-mode: vertical-rl;
+}
+
+</style>
+
+<div id=log></div>
+
+<div class=flexbox>
+  <div class=flex-item style="flex-basis: min-content;" data-expected-width=50>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox>
+  <div class=flex-item style="flex-basis: max-content; width: 300px;" data-expected-width=100>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox>
+  <div class=flex-item style="flex-basis: -moz-fit-content; flex-basis: fit-content;" data-expected-width=75>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox style="flex-flow: column;">
+  <div class=flex-item style="flex-basis: min-content;" data-expected-height=100>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox style="flex-flow: column;">
+  <div class=flex-item style="flex-basis: max-content;" data-expected-height=100>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox style="flex-flow: column;">
+  <div class=flex-item style="flex-basis: -moz-fit-content; flex-basis: fit-content;" data-expected-height=100>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox>
+  <div class="flex-item ortho-item" style="flex-basis: min-content;" data-expected-width=100>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox>
+  <div class="flex-item ortho-item" style="flex-basis: max-content; width: 300px;" data-expected-width=100>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox>
+  <div class="flex-item ortho-item" style="flex-basis: -moz-fit-content; flex-basis: fit-content;" data-expected-width=100>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox style="flex-flow: column;">
+  <div class="flex-item ortho-item" style="flex-basis: min-content;" data-expected-height=50>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox style="flex-flow: column;">
+  <div class="flex-item ortho-item" style="flex-basis: max-content;" data-expected-height=100>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<div class=flexbox style="flex-flow: column;">
+  <div class="flex-item ortho-item" style="flex-basis: -moz-fit-content; flex-basis: fit-content;" data-expected-height=75>
+    <div class=inline-block></div><div class=inline-block></div>
+  </div>
+</div>
+
+<script>
+checkLayout('.flex-item');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-computed-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-computed-expected.txt
index ad4db31..08ab962 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-computed-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-computed-expected.txt
@@ -2,6 +2,10 @@
 PASS Property flex-basis value '1px'
 PASS Property flex-basis value '400%'
 PASS Property flex-basis value 'auto'
+PASS Property flex-basis value 'content'
+PASS Property flex-basis value 'fit-content'
+PASS Property flex-basis value 'min-content'
+PASS Property flex-basis value 'max-content'
 PASS Property flex-basis value 'calc(10px + 0.5em)'
 PASS Property flex-basis value 'calc(10px - 0.5em)'
 PASS Property flex-basis value 'calc(10%)'
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-computed.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-computed.html
index 549c9bf7..a5a9dc82 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-computed.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-computed.html
@@ -21,6 +21,10 @@
 test_computed_value("flex-basis", "1px");
 test_computed_value("flex-basis", "400%");
 test_computed_value("flex-basis", "auto");
+test_computed_value("flex-basis", "content");
+test_computed_value("flex-basis", "fit-content");
+test_computed_value("flex-basis", "min-content");
+test_computed_value("flex-basis", "max-content");
 
 test_computed_value("flex-basis", "calc(10px + 0.5em)", "30px");
 test_computed_value("flex-basis", "calc(10px - 0.5em)", "0px");
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-valid.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-valid.html
index 25c91ad..b493519 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-valid.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-basis-valid.html
@@ -16,9 +16,10 @@
 test_valid_value("flex-basis", "calc(2em + 3ex)");
 test_valid_value("flex-basis", "400%");
 test_valid_value("flex-basis", "auto");
-
-// The following is not yet supported by browsers:
-// test_valid_value("flex-basis", "content");
+test_valid_value("flex-basis", "fit-content");
+test_valid_value("flex-basis", "min-content");
+test_valid_value("flex-basis", "max-content");
+test_valid_value("flex-basis", "content");
 </script>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-shorthand.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-shorthand.html
index 51e01794..1d74df80 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-shorthand.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/parsing/flex-shorthand.html
@@ -46,6 +46,24 @@
   'flex-shrink': '1',
   'flex-basis': 'auto'
 });
+
+test_shorthand_value('flex', 'content', {
+  'flex-grow': '1',
+  'flex-shrink': '1',
+  'flex-basis': 'content'
+});
+
+test_shorthand_value('flex', '0 fit-content', {
+  'flex-grow': '0',
+  'flex-shrink': '1',
+  'flex-basis': 'fit-content'
+});
+
+test_shorthand_value('flex', '1 0 max-content', {
+  'flex-grow': '1',
+  'flex-shrink': '0',
+  'flex-basis': 'max-content'
+});
 </script>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis-expected.txt
deleted file mode 100644
index c87c1ef8..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This is a testharness.js-based test.
-PASS Can set 'flex-basis' to CSS-wide keywords
-PASS Can set 'flex-basis' to var() references
-PASS Can set 'flex-basis' to the 'auto' keyword
-FAIL Can set 'flex-basis' to the 'content' keyword Failed to execute 'set' on 'StylePropertyMap': Invalid type for property
-PASS Can set 'flex-basis' to a length
-PASS Can set 'flex-basis' to a percent
-PASS Setting 'flex-basis' to a time throws TypeError
-PASS Setting 'flex-basis' to an angle throws TypeError
-PASS Setting 'flex-basis' to a flexible length throws TypeError
-PASS Setting 'flex-basis' to a number throws TypeError
-PASS Setting 'flex-basis' to a position throws TypeError
-PASS Setting 'flex-basis' to a URL throws TypeError
-PASS Setting 'flex-basis' to a transform throws TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html
index 650b0803..5795abb 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/flex-basis.html
@@ -16,6 +16,9 @@
 runPropertyTests('flex-basis', [
   { syntax: 'auto' },
   { syntax: 'content' },
+  { syntax: 'fit-content' },
+  { syntax: 'min-content' },
+  { syntax: 'max-content' },
   {
     syntax: '<length>',
     specified: assert_is_equal_with_range_handling,
diff --git a/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any-expected.txt
new file mode 100644
index 0000000..fa94b8c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL same-origin: 2xAnonymous, 2xCredentialled, 1xAnonymous assert_equals: Response 3 header Server-Request-Count is "1", not "2" expected "2" but got "1"
+FAIL same-origin: 2xCredentialled, 2xAnonymous, 1xCredentialled assert_equals: Response 3 header Server-Request-Count is "1", not "2" expected "2" but got "1"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.js b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.js
new file mode 100644
index 0000000..3177092
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.js
@@ -0,0 +1,62 @@
+// META: global=window,worker
+// META: title=HTTP Cache - Content
+// META: timeout=long
+// META: script=/common/utils.js
+// META: script=http-cache.js
+
+// This is a tentative test.
+// Firefox behavior is used as expectations.
+//
+// whatwg/fetch issue:
+// https://github.com/whatwg/fetch/issues/1253
+//
+// Chrome design doc:
+// https://docs.google.com/document/d/1lvbiy4n-GM5I56Ncw304sgvY5Td32R6KHitjRXvkZ6U/edit#
+
+const request_cacheable = {
+  request_headers: [],
+  response_headers: [
+    ['Cache-Control', 'max-age=3600'],
+  ],
+  // TODO(arthursonzogni): The behavior is tested only for same-origin requests.
+  // It must behave similarly for cross-site and cross-origin requests. The
+  // problems is the http-cache.js infrastructure returns the
+  // "Server-Request-Count" as HTTP response headers, which aren't readable for
+  // CORS requests.
+  base_url: location.href.replace(/\/[^\/]*$/, '/'),
+};
+
+const request_credentialled = { ...request_cacheable, credentials: 'include', };
+const request_anonymous     = { ...request_cacheable, credentials: 'omit', };
+
+const responseIndex = count => {
+  return {
+    expected_response_headers: [
+      ['Server-Request-Count', count.toString()],
+    ],
+  }
+};
+
+var tests = [
+  {
+    name: 'same-origin: 2xAnonymous, 2xCredentialled, 1xAnonymous',
+    requests: [
+      { ...request_anonymous     , ...responseIndex(1)} ,
+      { ...request_anonymous     , ...responseIndex(1)} ,
+      { ...request_credentialled , ...responseIndex(2)} ,
+      { ...request_credentialled , ...responseIndex(2)} ,
+      { ...request_anonymous     , ...responseIndex(1)} ,
+    ]
+  },
+  {
+    name: 'same-origin: 2xCredentialled, 2xAnonymous, 1xCredentialled',
+    requests: [
+      { ...request_credentialled , ...responseIndex(1)} ,
+      { ...request_credentialled , ...responseIndex(1)} ,
+      { ...request_anonymous     , ...responseIndex(2)} ,
+      { ...request_anonymous     , ...responseIndex(2)} ,
+      { ...request_credentialled , ...responseIndex(1)} ,
+    ]
+  },
+];
+run_tests(tests);
diff --git a/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.serviceworker-expected.txt
new file mode 100644
index 0000000..fa94b8c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.serviceworker-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL same-origin: 2xAnonymous, 2xCredentialled, 1xAnonymous assert_equals: Response 3 header Server-Request-Count is "1", not "2" expected "2" but got "1"
+FAIL same-origin: 2xCredentialled, 2xAnonymous, 1xCredentialled assert_equals: Response 3 header Server-Request-Count is "1", not "2" expected "2" but got "1"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.sharedworker-expected.txt
new file mode 100644
index 0000000..fa94b8c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.sharedworker-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL same-origin: 2xAnonymous, 2xCredentialled, 1xAnonymous assert_equals: Response 3 header Server-Request-Count is "1", not "2" expected "2" but got "1"
+FAIL same-origin: 2xCredentialled, 2xAnonymous, 1xCredentialled assert_equals: Response 3 header Server-Request-Count is "1", not "2" expected "2" but got "1"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.worker-expected.txt
new file mode 100644
index 0000000..fa94b8c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/http-cache/credentials.tentative.any.worker-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL same-origin: 2xAnonymous, 2xCredentialled, 1xAnonymous assert_equals: Response 3 header Server-Request-Count is "1", not "2" expected "2" but got "1"
+FAIL same-origin: 2xCredentialled, 2xAnonymous, 1xCredentialled assert_equals: Response 3 header Server-Request-Count is "1", not "2" expected "2" but got "1"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/external/wpt/css/css-flexbox/flex-basis-intrinsics-001-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/external/wpt/css/css-flexbox/flex-basis-intrinsics-001-expected.txt
new file mode 100644
index 0000000..6abc4303
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/external/wpt/css/css-flexbox/flex-basis-intrinsics-001-expected.txt
@@ -0,0 +1,27 @@
+This is a testharness.js-based test.
+PASS .flex-item 1
+PASS .flex-item 2
+PASS .flex-item 3
+PASS .flex-item 4
+PASS .flex-item 5
+PASS .flex-item 6
+PASS .flex-item 7
+FAIL .flex-item 8 assert_equals: 
+<div class="flex-item ortho-item" style="flex-basis: max-content; width: 300px;" data-expected-width="100">
+    <div class="inline-block"></div><div class="inline-block"></div>
+  </div>
+width expected 100 but got 0
+PASS .flex-item 9
+FAIL .flex-item 10 assert_equals: 
+<div class="flex-item ortho-item" style="flex-basis: min-content;" data-expected-height="50">
+    <div class="inline-block"></div><div class="inline-block"></div>
+  </div>
+height expected 50 but got 100
+PASS .flex-item 11
+FAIL .flex-item 12 assert_equals: 
+<div class="flex-item ortho-item" style="flex-basis: -moz-fit-content; flex-basis: fit-content;" data-expected-height="75">
+    <div class="inline-block"></div><div class="inline-block"></div>
+  </div>
+height expected 75 but got 100
+Harness: the test ran to completion.
+
diff --git a/tools/android/asan/third_party/with_asan.py b/tools/android/asan/third_party/with_asan.py
index 8563b127..dbdfeee 100755
--- a/tools/android/asan/third_party/with_asan.py
+++ b/tools/android/asan/third_party/with_asan.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env vpython
+#!/usr/bin/env vpython3
 # Copyright 2019 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff --git a/tools/android/avd/avd.py b/tools/android/avd/avd.py
index b9462c69c..0620c76 100755
--- a/tools/android/avd/avd.py
+++ b/tools/android/avd/avd.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env vpython
+#! /usr/bin/env vpython3
 # Copyright 2019 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
diff --git a/tools/android/customtabs_benchmark/scripts/customtabs_benchmark.py b/tools/android/customtabs_benchmark/scripts/customtabs_benchmark.py
index 92342e01..08f9b402 100755
--- a/tools/android/customtabs_benchmark/scripts/customtabs_benchmark.py
+++ b/tools/android/customtabs_benchmark/scripts/customtabs_benchmark.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright 2015 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff --git a/tools/android/customtabs_benchmark/scripts/run_benchmark.py b/tools/android/customtabs_benchmark/scripts/run_benchmark.py
index e48930b..154fbed 100755
--- a/tools/android/customtabs_benchmark/scripts/run_benchmark.py
+++ b/tools/android/customtabs_benchmark/scripts/run_benchmark.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright 2015 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
@@ -14,7 +14,7 @@
 import sys
 import threading
 
-import customtabs_benchmark
+from . import customtabs_benchmark
 
 _SRC_PATH = os.path.abspath(os.path.join(
     os.path.dirname(__file__), '..', '..', '..', '..'))
diff --git a/tools/android/find_annotated_tests.py b/tools/android/find_annotated_tests.py
index 5e4504d..4e6eeadc 100755
--- a/tools/android/find_annotated_tests.py
+++ b/tools/android/find_annotated_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright 2016 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -30,7 +30,8 @@
 _CRBUG_ID_PATTERN = re.compile(r'crbug(?:.com)?/(\d+)')
 _EXPORT_TIME_FORMAT = '%Y%m%dT%H%M%S'
 _GIT_LOG_TIME_PATTERN = re.compile(r'\d+')
-_GIT_LOG_MESSAGE_PATTERN = r'Cr-Commit-Position: refs/heads/(?:master|main)@{#(\d+)}'
+_GIT_LOG_MESSAGE_PATTERN = (
+    r'Cr-Commit-Position: refs/heads/(?:master|main)@{#(\d+)}')
 _GIT_TIME_FORMAT = '%Y-%m-%dT%H:%M:%S'
 
 
@@ -38,7 +39,7 @@
   """Find and return the test bug id from its annoation message elements"""
   # TODO(yolandyan): currently the script only supports on bug id per method,
   # add support for multiple bug id
-  for content in test_annotations.itervalues():
+  for content in test_annotations.items():
     if content and content.get('message'):
       search_result = re.search(_CRBUG_ID_PATTERN, content.get('message'))
       if search_result is not None:
diff --git a/tools/android/mempressure.py b/tools/android/mempressure.py
index be3ecf15..1bd7039b 100755
--- a/tools/android/mempressure.py
+++ b/tools/android/mempressure.py
@@ -1,10 +1,8 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright 2013 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-from __future__ import print_function
-
 import collections
 import logging
 import optparse
@@ -50,13 +48,13 @@
                            help=('Simulate Activity#onTrimMemory(...) with ' +
                                  ', '.join(ACTION_TRIM.keys())),
                            type='string')
-  option_parser.add_option('-b',
-                           '--browser',
-                           default=DEFAULT_BROWSER,
-                           help=('Which browser to use. One of ' +
-                                 ', '.join(constants.PACKAGE_INFO.keys()) +
-                                 ' [default: %default]'),
-                           type='string')
+  option_parser.add_option(
+      '-b',
+      '--browser',
+      default=DEFAULT_BROWSER,
+      help=('Which browser to use. One of ' +
+            ', '.join(constants.PACKAGE_INFO.keys()) + ' [default: %default]'),
+      type='string')
 
   (options, args) = option_parser.parse_args(argv)
 
diff --git a/tools/android/native_lib_memory/code_pages_pss.py b/tools/android/native_lib_memory/code_pages_pss.py
index c8abc11..7dc6ca4 100755
--- a/tools/android/native_lib_memory/code_pages_pss.py
+++ b/tools/android/native_lib_memory/code_pages_pss.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright 2018 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -17,8 +17,6 @@
     --chrome-package com.android.chrome --verbose
 """
 
-from __future__ import print_function
-
 import argparse
 import logging
 import os
diff --git a/tools/android/native_lib_memory/extract_resident_pages.py b/tools/android/native_lib_memory/extract_resident_pages.py
index 9ffb5764..5f0fa9e 100755
--- a/tools/android/native_lib_memory/extract_resident_pages.py
+++ b/tools/android/native_lib_memory/extract_resident_pages.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright 2019 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
diff --git a/tools/android/native_lib_memory/java_code_pages_pss.py b/tools/android/native_lib_memory/java_code_pages_pss.py
index a7b7aa9..f7992ae 100755
--- a/tools/android/native_lib_memory/java_code_pages_pss.py
+++ b/tools/android/native_lib_memory/java_code_pages_pss.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright 2018 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -13,8 +13,6 @@
     --app-package com.google.android.gms --verbose
 """
 
-from __future__ import print_function
-
 import argparse
 import logging
 import os
diff --git a/tools/android/native_lib_memory/parse_smaps.py b/tools/android/native_lib_memory/parse_smaps.py
index b680c2ef..d0d449de 100755
--- a/tools/android/native_lib_memory/parse_smaps.py
+++ b/tools/android/native_lib_memory/parse_smaps.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright 2018 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -6,8 +6,6 @@
 """Parses /proc/[pid]/smaps on a device and shows the total amount of swap used.
 """
 
-from __future__ import print_function
-
 import argparse
 import collections
 import logging
diff --git a/tools/android/wpr/chrome_proxy_wpr_record.py b/tools/android/wpr/chrome_proxy_wpr_record.py
index a3cd290..eac628b6 100755
--- a/tools/android/wpr/chrome_proxy_wpr_record.py
+++ b/tools/android/wpr/chrome_proxy_wpr_record.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2021 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -7,8 +7,6 @@
 To use the proxy, run Chrome with the flags printed by this script.
 """
 
-from __future__ import print_function
-
 import argparse
 import os
 import subprocess
diff --git a/tools/android/wpr/chrome_proxy_wpr_replay.py b/tools/android/wpr/chrome_proxy_wpr_replay.py
index aabc54310..eaf53ca 100755
--- a/tools/android/wpr/chrome_proxy_wpr_replay.py
+++ b/tools/android/wpr/chrome_proxy_wpr_replay.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2021 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -7,8 +7,6 @@
 To use the proxy, run Chrome with the flags printed by this script.
 """
 
-from __future__ import print_function
-
 import argparse
 import os
 import subprocess
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 99f0303..e13468b 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -17469,6 +17469,11 @@
 </action>
 
 <action name="Notifications.Quiet.ManageClicked">
+  <obsolete>
+    From July 2021. Migrated to
+    Permissions.Prompt.QuietBubble.Notifications.ManageClicked as that name
+    represents the metric better.
+  </obsolete>
   <owner>andypaicu@chromium.org</owner>
   <owner>engedy@chromium.org</owner>
   <owner>hkamila@chromium.org</owner>
@@ -17490,6 +17495,11 @@
 </action>
 
 <action name="Notifications.Quiet.ShowForSiteClicked">
+  <obsolete>
+    From July 2021. Migrated to
+    Permissions.Prompt.QuietBubble.Notifications.AllowClicked as that name
+    represents the metric better.
+  </obsolete>
   <owner>andypaicu@chromium.org</owner>
   <owner>engedy@chromium.org</owner>
   <owner>hkamila@chromium.org</owner>
@@ -20814,6 +20824,50 @@
   </description>
 </action>
 
+<action name="Permissions.Prompt.QuietBubble.Geolocation.AllowClicked">
+  <owner>engedy@chromium.org</owner>
+  <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
+  <description>
+    Logs when the user clicks &quot;Allow for this site&quot;, which is a
+    button, that upon being clicked, allows the site to send notifications. This
+    metric can be baselined against
+    &quot;Permissions.QuietChip.TimeToInteraction&quot; histogram.
+  </description>
+</action>
+
+<action name="Permissions.Prompt.QuietBubble.Geolocation.ManageClicked">
+  <owner>engedy@chromium.org</owner>
+  <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
+  <description>
+    Logs when the user clicks &quot;Manage&quot;, which is a button, that upon
+    being clicked, navigates the user to the geolocation category settings page.
+    This metric can be baselined against
+    &quot;Permissions.QuietChip.TimeToInteraction&quot; histogram.
+  </description>
+</action>
+
+<action name="Permissions.Prompt.QuietBubble.Notifications.AllowClicked">
+  <owner>engedy@chromium.org</owner>
+  <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
+  <description>
+    Logs when the user clicks &quot;Show for site&quot;, which is a button, that
+    upon being clicked, allows the site to send notifications. This metric can
+    be baselined against &quot;Permissions.QuietChip.TimeToInteraction&quot;
+    histogram.
+  </description>
+</action>
+
+<action name="Permissions.Prompt.QuietBubble.Notifications.ManageClicked">
+  <owner>engedy@chromium.org</owner>
+  <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
+  <description>
+    Logs when the user clicks &quot;Manage&quot;, which is a button, that upon
+    being clicked, navigates the user to the notifications category settings
+    page. This metric can be baselined against
+    &quot;Permissions.QuietChip.TimeToInteraction&quot; histogram.
+  </description>
+</action>
+
 <action name="PhysicalWeb.NotificationPressed">
   <obsolete>Replaced by the histogram PhysicalWeb.ActivityReferral</obsolete>
   <owner>cco3@chromium.org</owner>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 92c1462..ed56ec5 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -25973,6 +25973,7 @@
   <int value="885" label="AssistantVoiceMatchEnabledDuringOobe"/>
   <int value="886" label="LensRegionSearchEnabled"/>
   <int value="887" label="ArcAppToWebAppSharingEnabled"/>
+  <int value="888" label="EnhancedNetworkVoicesInSelectToSpeakAllowed"/>
 </enum>
 
 <enum name="EnterprisePolicyDeviceIdValidity">
@@ -34106,6 +34107,8 @@
   <int value="3971" label="CSSSelectorPseudoHasInSnapshotProfile"/>
   <int value="3972" label="CSSSelectorPseudoHasInLiveProfile"/>
   <int value="3973" label="NavigatorPdfViewerEnabled"/>
+  <int value="3974" label="CanvasRenderingContext2DContextLostEvent"/>
+  <int value="3975" label="CanvasRenderingContext2DContextRestoredEvent"/>
 </enum>
 
 <enum name="FeaturePolicyAllowlistType">
@@ -53678,9 +53681,10 @@
 
 <enum name="MatchResult">
   <int value="0" label="Valid match"/>
-  <int value="1" label="Invalid match"/>
-  <int value="2" label="Index Out of Bounds"/>
+  <int value="1" label="Suggestion mismatch"/>
+  <int value="2" label="Result array size mismatch"/>
   <int value="3" label="Native match dead"/>
+  <int value="4" label="Suggestion index out of bounds"/>
 </enum>
 
 <enum name="MayLaunchUrlType">
diff --git a/tools/metrics/histograms/metadata/assistant/histograms.xml b/tools/metrics/histograms/metadata/assistant/histograms.xml
index 12ab1b6..7360442 100644
--- a/tools/metrics/histograms/metadata/assistant/histograms.xml
+++ b/tools/metrics/histograms/metadata/assistant/histograms.xml
@@ -35,6 +35,12 @@
       summary="Clicks on the 'manage settings' button"/>
 </variants>
 
+<variants name="QuickAnswersV2ConsentResultType">
+  <variant name=".Allow" summary="Clicks on the allow button"/>
+  <variant name=".Dismiss" summary="Dismisses or ignores the consent"/>
+  <variant name=".NoThanks" summary="Clicks on the no thanks button"/>
+</variants>
+
 <variants name="UserEligibilityTiming">
 <!--
     Before M90, the base ("") variant was reported multiple times per search
@@ -511,6 +517,43 @@
   </summary>
 </histogram>
 
+<histogram name="QuickAnswers.V2.Consent" units="impressions"
+    expires_after="2022-09-01">
+  <owner>updowndota@google.com</owner>
+  <owner>croissant-eng@chromium.org</owner>
+  <summary>
+    For every quick answers consent impression, records how many times the user
+    has seen the consent. ChromeOS only.
+  </summary>
+</histogram>
+
+<histogram
+    name="QuickAnswers.V2.Consent.Duration{QuickAnswersV2ConsentResultType}"
+    units="ms" expires_after="2022-09-01">
+  <owner>updowndota@google.com</owner>
+  <owner>croissant-eng@chromium.org</owner>
+  <summary>
+    For every quick answers consent result event, records how long the user has
+    seen the consent before. ChromeOS only. {QuickAnswersV2ConsentResultType}
+  </summary>
+  <token key="QuickAnswersV2ConsentResultType"
+      variants="QuickAnswersV2ConsentResultType"/>
+</histogram>
+
+<histogram
+    name="QuickAnswers.V2.Consent.Impression{QuickAnswersV2ConsentResultType}"
+    units="impressions" expires_after="2022-09-01">
+  <owner>updowndota@google.com</owner>
+  <owner>croissant-eng@chromium.org</owner>
+  <summary>
+    For every quick answers consent result event, records how many times the
+    user has seen the consent before. ChromeOS only.
+    {QuickAnswersV2ConsentResultType}
+  </summary>
+  <token key="QuickAnswersV2ConsentResultType"
+      variants="QuickAnswersV2ConsentResultType"/>
+</histogram>
+
 </histograms>
 
 </histogram-configuration>
diff --git a/tools/metrics/histograms/metadata/browser/histograms.xml b/tools/metrics/histograms/metadata/browser/histograms.xml
index 556af9d7..256656c 100644
--- a/tools/metrics/histograms/metadata/browser/histograms.xml
+++ b/tools/metrics/histograms/metadata/browser/histograms.xml
@@ -812,6 +812,7 @@
 <!-- expires-never: For monitoring stability regressions. -->
 
   <owner>wfh@chromium.org</owner>
+  <owner>chrome-stability-core@google.com</owner>
   <summary>
     Count of renderer process terminations due to a code integrity failure,
     grouped by type. This is only reported on Windows.
@@ -819,20 +820,29 @@
 </histogram>
 
 <histogram name="BrowserRenderProcessHost.ChildCrashes" enum="RendererType"
-    expires_after="2021-09-19">
+    expires_after="never">
+<!-- expires-never: For monitoring stability regressions. -->
+
   <owner>wfh@chromium.org</owner>
+  <owner>chrome-stability-core@google.com</owner>
   <summary>Count of renderer process crashes grouped by type.</summary>
 </histogram>
 
 <histogram name="BrowserRenderProcessHost.ChildKills" enum="RendererType"
-    expires_after="2020-12-27">
+    expires_after="never">
+<!-- expires-never: For monitoring stability regressions. -->
+
   <owner>wfh@chromium.org</owner>
+  <owner>chrome-stability-core@google.com</owner>
   <summary>Count of renderer process kills grouped by type.</summary>
 </histogram>
 
 <histogram name="BrowserRenderProcessHost.ChildKills.OOM" enum="RendererType"
-    expires_after="2021-10-25">
+    expires_after="never">
+<!-- expires-never: For monitoring stability regressions. -->
+
   <owner>oshima@chromium.org</owner>
+  <owner>chrome-stability-core@google.com</owner>
   <summary>
     Out of BrowserRenderProcessHost.ChildKills, numer of kills due to SIGKILL,
     which is a strong signal of out of memory on Chrome OS, grouped by renderer
@@ -845,6 +855,7 @@
 <!-- expires-never: For monitoring stability regressions. -->
 
   <owner>wfh@chromium.org</owner>
+  <owner>chrome-stability-core@google.com</owner>
   <summary>
     The launch error codes for failed renderer process launches.
   </summary>
@@ -855,6 +866,7 @@
 <!-- expires-never: For monitoring stability regressions. -->
 
   <owner>wfh@chromium.org</owner>
+  <owner>chrome-stability-core@google.com</owner>
   <summary>Count of renderer process launch failures grouped by type.</summary>
 </histogram>
 
@@ -863,6 +875,7 @@
 <!-- expires-never: For monitoring stability regressions. -->
 
   <owner>wfh@chromium.org</owner>
+  <owner>chrome-stability-core@google.com</owner>
   <summary>
     Count of renderer process crashes that we miscounted because we took the
     exit code too early. Grouped by type.
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
index 138d6ee..9875051b 100644
--- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
+++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
@@ -18780,6 +18780,7 @@
   <suffix name="OSSettings" label="OS Settings"/>
   <suffix name="Personalization" label="Personalization"/>
   <suffix name="PrintManagement" label="PrintManagement"/>
+  <suffix name="Projector" label="Projector"/>
   <suffix name="Sample" label="Sample"/>
   <suffix name="Scanning" label="Scanning"/>
   <suffix name="ShimlessRMA" label="Shimless RMA"/>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index f1f5109..8ec49e9 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -2904,7 +2904,7 @@
 </histogram>
 
 <histogram name="ClientHints.AcceptCHFrame" enum="AcceptCHFrameRestart"
-    expires_after="2021-08-22">
+    expires_after="2022-03-31">
   <owner>aarontag@chromium.org</owner>
   <owner>miketaylr@chromium.org</owner>
   <summary>
@@ -2916,9 +2916,9 @@
 </histogram>
 
 <histogram name="ClientHints.CriticalCHRestart" enum="CriticalCHRestart"
-    expires_after="2021-12-26">
+    expires_after="2022-03-31">
   <owner>aarontag@chromium.org</owner>
-  <owner>yoavweiss@chromium.org</owner>
+  <owner>miketaylr@chromium.org</owner>
   <summary>
     Count of requests restarted because of the Critical-CH response header.
   </summary>
@@ -9269,7 +9269,7 @@
 </histogram>
 
 <histogram name="LiteVideo.CanApplyLiteVideo.HintCache.HasHint"
-    enum="BooleanAvailable" expires_after="2021-08-22">
+    enum="BooleanAvailable" expires_after="M96">
   <owner>mcrouse@chromium.org</owner>
   <owner>rajendrant@chromium.org</owner>
   <summary>
@@ -9280,7 +9280,7 @@
 </histogram>
 
 <histogram name="LiteVideo.CanApplyLiteVideo.UserBlocklist"
-    enum="LiteVideoBlocklistReason" expires_after="2021-08-22">
+    enum="LiteVideoBlocklistReason" expires_after="M96">
   <owner>mcrouse@chromium.org</owner>
   <owner>rajendrant@chromium.org</owner>
   <summary>
@@ -9292,7 +9292,7 @@
 </histogram>
 
 <histogram name="LiteVideo.HintAgent.ActiveThrottleSize" units="count"
-    expires_after="M94">
+    expires_after="M96">
   <owner>rajendrant@chromium.org</owner>
   <owner>mcrouse@chromium.org</owner>
   <summary>
@@ -9302,7 +9302,7 @@
 </histogram>
 
 <histogram name="LiteVideo.HintAgent.HasHint" units="boolean"
-    expires_after="2022-01-02">
+    expires_after="M96">
   <owner>rajendrant@chromium.org</owner>
   <owner>mcrouse@chromium.org</owner>
   <summary>
@@ -9312,7 +9312,7 @@
 </histogram>
 
 <histogram name="LiteVideo.LiteVideoDecider.OptGuideHintCacheSize"
-    units="count" expires_after="2021-08-22">
+    units="count" expires_after="M96">
   <owner>mcrouse@chromium.org</owner>
   <owner>rajendrant@chromium.org</owner>
   <summary>
@@ -9322,7 +9322,7 @@
 </histogram>
 
 <histogram name="LiteVideo.NavigationMetrics.FrameRebufferMapSize"
-    units="count" expires_after="2022-01-02">
+    units="count" expires_after="M96">
   <owner>mcrouse@chromium.org</owner>
   <owner>rajendrant@chromium.org</owner>
   <summary>
@@ -9332,7 +9332,7 @@
 </histogram>
 
 <histogram name="LiteVideo.OriginHints.ParseResult" enum="BooleanSuccess"
-    expires_after="M94">
+    expires_after="M96">
   <owner>mcrouse@chromium.org</owner>
   <owner>rajendrant@chromium.org</owner>
   <summary>
@@ -9343,7 +9343,7 @@
 </histogram>
 
 <histogram name="LiteVideo.URLLoader.ThrottleLatency" units="ms"
-    expires_after="2021-08-22">
+    expires_after="M96">
   <owner>rajendrant@chromium.org</owner>
   <owner>mcrouse@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/sharing/histograms.xml b/tools/metrics/histograms/metadata/sharing/histograms.xml
index b159855..06ec046 100644
--- a/tools/metrics/histograms/metadata/sharing/histograms.xml
+++ b/tools/metrics/histograms/metadata/sharing/histograms.xml
@@ -567,6 +567,9 @@
 <histogram
     name="Sharing.SharingHubAndroid.SharedHighlights.TimeToGetLinkToText"
     units="ms" expires_after="2021-07-11">
+  <obsolete>
+    Removed in M94.
+  </obsolete>
   <owner>gayane@chromium.org</owner>
   <owner>chrome-shared-highlighting@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/startup/histograms.xml b/tools/metrics/histograms/metadata/startup/histograms.xml
index 730dc40..fc95a6d2 100644
--- a/tools/metrics/histograms/metadata/startup/histograms.xml
+++ b/tools/metrics/histograms/metadata/startup/histograms.xml
@@ -761,6 +761,9 @@
 
 <histogram name="Startup.WebFooterExperiment.DidFirstVisuallyNonEmptyPaint"
     units="ms" expires_after="M89">
+  <obsolete>
+    Removed 08/2021 and tracked in http://crbug.com/1072603.
+  </obsolete>
   <owner>pbos@chromium.org</owner>
   <owner>robliao@chromium.org</owner>
   <summary>
@@ -774,6 +777,9 @@
 
 <histogram name="Startup.WebFooterExperiment.WebFooterCreation" units="ms"
     expires_after="M89">
+  <obsolete>
+    Removed 08/2021 and tracked in http://crbug.com/1072603.
+  </obsolete>
   <owner>pbos@chromium.org</owner>
   <owner>robliao@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index 660d0f6..172b31d 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -13433,7 +13433,7 @@
 </event>
 
 <event name="PostMessage.Incoming.Frame">
-  <owner>chlily@chromium.org</owner>
+  <owner>arichiv@chromium.org</owner>
   <owner>miketaylr@chromium.org</owner>
   <summary>
     The frame received an incoming postMessage event. This is recorded only for
@@ -13447,7 +13447,7 @@
 </event>
 
 <event name="PostMessage.Incoming.Page">
-  <owner>chlily@chromium.org</owner>
+  <owner>arichiv@chromium.org</owner>
   <owner>miketaylr@chromium.org</owner>
   <summary>
     A frame on the page received an incoming postMessage event. This is recorded
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
index 6cb7394..3fa0348f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -755,8 +755,8 @@
 <translation id="7765158879357617694">انتقال</translation>
 <translation id="7774365994322694683">پرنده</translation>
 <translation id="7788080748068240085">برای ذخیره «<ph name="FILE_NAME" />» به‌صورت آفلاین باید <ph name="TOTAL_FILE_SIZE" /> فضای دیگر خالی کنید:<ph name="MARKUP_1" />
-        <ph name="MARKUP_2" />فایل‌هایی را که دیگر نمی‌خواهید به آن‌ها دسترسی آفلاین داشته باشید٬ لغو پین کنید<ph name="MARKUP_3" />
-        <ph name="MARKUP_4" />فایل‌ها را از پوشه دانلودهایتان حذف کنید<ph name="MARKUP_5" /></translation>
+        <ph name="MARKUP_2" />سنجاق فایل‌هایی را که دیگر نمی‌خواهید به آن‌ها دسترسی آفلاین داشته باشید بردارید<ph name="MARKUP_3" />
+        <ph name="MARKUP_4" />فایل‌ها را از پوشه بارگیری‌ها حذف کنید<ph name="MARKUP_5" /></translation>
 <translation id="7794058097940213561">قالب‌بندی دستگاه</translation>
 <translation id="7799329977874311193">‏سند HTML</translation>
 <translation id="7801354353640549019">‏دستگاه‌های Chromebook</translation>
@@ -824,7 +824,7 @@
 <translation id="8300849813060516376">‏OTASP انجام نشد</translation>
 <translation id="8312871300878166382">جای‌گذاری در پوشه</translation>
 <translation id="8329978297633540474">نوشتار ساده</translation>
-<translation id="8335587457941836791">جدا کردن از راه‌انداز</translation>
+<translation id="8335587457941836791">برداشتن سنجاق از راه‌انداز</translation>
 <translation id="8335837413233998004">بلاروسی</translation>
 <translation id="8336153091935557858">دیروز <ph name="YESTERDAY_DAYTIME" /></translation>
 <translation id="8342318071240498787">یک فایل یا یک پوشه با همین نام از قبل وجود دارد.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
index 5ac1b340..dafa90c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -577,7 +577,7 @@
 <translation id="613750717151263950">ஜாப்பனீஸ் - யூஎஸ் கீபோர்டு</translation>
 <translation id="6138894911715675297"><ph name="NETWORK_TYPE" />, நெட்வொர்க் இல்லை</translation>
 <translation id="6146563240635539929">வீடியோக்கள்</translation>
-<translation id="6150853954427645995">இந்தக் கோப்பை ஆஃப்லைனில் பயன்படுத்துவதற்காகச் சேமிப்பதற்கு, இணைய இணைப்பை இயக்கி, ஃபைலில் வலது கிளிக் செய்து, பின்னர் <ph name="OFFLINE_CHECKBOX_NAME" /> விருப்பத்தைத் தேர்ந்தெடுக்கவும்.</translation>
+<translation id="6150853954427645995">இந்த ஃபைலை ஆஃப்லைனில் பயன்படுத்துவதற்காகச் சேமிப்பதற்கு, இணைய இணைப்பை இயக்கி, ஃபைலில் வலது கிளிக் செய்து, பின்னர் <ph name="OFFLINE_CHECKBOX_NAME" /> விருப்பத்தைத் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="6164412158936057769">வண்ணத்துப்பூச்சிகள்</translation>
 <translation id="6170470584681422115">சாண்ட்விச்</translation>
 <translation id="6187719147498869044">ஹங்கேரியன்</translation>
diff --git a/ui/display/display_features.cc b/ui/display/display_features.cc
index ccb6f6b..60d8c788 100644
--- a/ui/display/display_features.cc
+++ b/ui/display/display_features.cc
@@ -33,9 +33,9 @@
   return base::FeatureList::IsEnabled(kListAllDisplayModes);
 }
 
-// TODO(crbug.com/1161556): Add a flag to control hardware mirroring as the
-// first step towards permanently disabling hardware mirroring. This will be
-// removed once no critical regression is seen by removing HW mirroring.
+// A temporary flag to control hardware mirroring until it is decided whether to
+// permanently remove hardware mirroring support. See crbug.com/1161556 for
+// details.
 const base::Feature kEnableHardwareMirrorMode{
     "EnableHardwareMirrorMode", base::FEATURE_DISABLED_BY_DEFAULT};
 
diff --git a/ui/display/manager/display_configurator.cc b/ui/display/manager/display_configurator.cc
index 3965eace..b094b23 100644
--- a/ui/display/manager/display_configurator.cc
+++ b/ui/display/manager/display_configurator.cc
@@ -201,10 +201,9 @@
     cached_displays.push_back(display_state);
   }
 
-  // TODO(crbug.com/1161556): Hardware mirroring is now disabled by deafult.
-  // This is the first step towards permanently disabling HW mirroring. The use
-  // of a feature flag will be removed once we verify no regressions occur due
-  // to disabling HW mirroring.
+  // Hardware mirroring is now disabled by default until it is decided whether
+  // to permanently remove hardware mirroring support. See crbug.com/1161556 for
+  // details.
   if (!features::IsHardwareMirrorModeEnabled())
     return cached_displays;
 
diff --git a/ui/file_manager/file_manager/foreground/js/ui/progress_center_panel.js b/ui/file_manager/file_manager/foreground/js/ui/progress_center_panel.js
index 822a597..c2e5f0af 100644
--- a/ui/file_manager/file_manager/foreground/js/ui/progress_center_panel.js
+++ b/ui/file_manager/file_manager/foreground/js/ui/progress_center_panel.js
@@ -138,6 +138,8 @@
             } else {
               return strf('FILE_MOVED', info['source']);
             }
+          } else if (item.type === ProgressItemType.ZIP) {
+            return strf('ZIP_FILE_NAME', info['source']);
           } else {
             return item.message;
           }
@@ -158,6 +160,8 @@
             } else {
               return strf('FILE_ITEMS_MOVED', info['source']);
             }
+          } else if (item.type === ProgressItemType.ZIP) {
+            return strf('ZIP_ITEMS_REMAINING', info['count']);
           } else {
             return item.message;
           }
@@ -274,7 +278,7 @@
           // Create a completed panel for copies, moves and formats.
           // TODO(crbug.com/947388) decide if we want these for delete, etc.
           if (item.type === 'copy' || item.type === 'move' ||
-              item.type === 'format') {
+              item.type === 'format' || item.type === 'zip') {
             const donePanelItem = this.feedbackHost_.addPanelItem(item.id);
             donePanelItem.id = item.id;
             donePanelItem.panelType = donePanelItem.panelTypeDone;
diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
index 5a82d3a3..547f138 100644
--- a/ui/webui/resources/BUILD.gn
+++ b/ui/webui/resources/BUILD.gn
@@ -289,6 +289,7 @@
     "cr_elements/icons.m.js",
     "cr_elements/md_select_css.m.js",
     "cr_elements/mouse_hoverable_mixin.js",
+    "cr_elements/mwb_element_shared_style.js",
     "cr_elements/mwb_shared_style.js",
     "cr_elements/mwb_shared_vars.js",
     "cr_elements/policy/cr_policy_pref_behavior.m.js",
diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn
index a3f41c04..01d9d76 100644
--- a/ui/webui/resources/cr_elements/BUILD.gn
+++ b/ui/webui/resources/cr_elements/BUILD.gn
@@ -192,6 +192,7 @@
     "hidden_style_css.m.js",
     "icons.m.js",
     "md_select_css.m.js",
+    "mwb_element_shared_style.js",
     "mwb_shared_icons.js",
     "mwb_shared_style.js",
     "mwb_shared_vars.js",
@@ -461,6 +462,7 @@
   js_files = [
     "cr_page_host_style_css.js",
     "mwb_shared_icons.js",
+    "mwb_element_shared_style.js",
     "mwb_shared_style.js",
     "mwb_shared_vars.js",
     "search_highlight_style_css.js",
diff --git a/chrome/browser/resources/read_later/read_later_shared_style.html b/ui/webui/resources/cr_elements/mwb_element_shared_style.html
similarity index 87%
rename from chrome/browser/resources/read_later/read_later_shared_style.html
rename to ui/webui/resources/cr_elements/mwb_element_shared_style.html
index f0b9e006..657e298 100644
--- a/chrome/browser/resources/read_later/read_later_shared_style.html
+++ b/ui/webui/resources/cr_elements/mwb_element_shared_style.html
@@ -2,14 +2,12 @@
   <style>
     a,
     cr-button,
-    cr-tabs,
+    cr-icon-button,
     div {
       cursor: default;
     }
 
     cr-icon-button {
-      border-radius: 50%;
-      cursor: default;
       --cr-icon-button-icon-size: var(--mwb-icon-size);
       --cr-icon-button-size: calc(var(--mwb-icon-size) * 1.5);
     }
@@ -22,4 +20,4 @@
       box-shadow: 0 0 0 2px var(--mwb-icon-button-focus-ring-color);
     }
   </style>
-</template>
\ No newline at end of file
+</template>
diff --git a/chrome/browser/resources/read_later/read_later_shared_style.js b/ui/webui/resources/cr_elements/mwb_element_shared_style.js
similarity index 69%
rename from chrome/browser/resources/read_later/read_later_shared_style.js
rename to ui/webui/resources/cr_elements/mwb_element_shared_style.js
index 122b559..3a19a077 100644
--- a/chrome/browser/resources/read_later/read_later_shared_style.js
+++ b/ui/webui/resources/cr_elements/mwb_element_shared_style.js
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/mwb_shared_vars.js';
+import './mwb_shared_vars.js';
 
 const template = document.createElement('template');
 template.innerHTML = `
-<dom-module id="read-later-shared-style">{__html_template__}</dom-module>
+<dom-module id="mwb-element-shared-style">{__html_template__}</dom-module>
 `;
-document.body.appendChild(template.content.cloneNode(true));
\ No newline at end of file
+document.body.appendChild(template.content.cloneNode(true));
diff --git a/ui/webui/resources/cr_elements/mwb_shared_vars.html b/ui/webui/resources/cr_elements/mwb_shared_vars.html
index 81c802d..8b63a9f 100644
--- a/ui/webui/resources/cr_elements/mwb_shared_vars.html
+++ b/ui/webui/resources/cr_elements/mwb_shared_vars.html
@@ -3,7 +3,7 @@
     html {
       --mwb-background-color: white;
       --mwb-icon-button-fill-color: var(--google-grey-refresh-700);
-      --mwb-icon-button-focus-ring-color: rgba(var(--google-blue-600-rgb), 0.4);
+      --mwb-icon-button-focus-ring-color: var(--cr-focus-outline-color);
       --mwb-icon-button-hover-background-color: rgba(var(--google-grey-900-rgb), 0.1);
       --mwb-icon-size: 16px;
       --mwb-item-height: 56px;