diff --git a/DEPS b/DEPS
index 22bca62c..00222a7 100644
--- a/DEPS
+++ b/DEPS
@@ -331,7 +331,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Fuchsia sdk
   # and whatever else without interference from each other.
-  'fuchsia_version': 'version:11.20221230.1.1',
+  'fuchsia_version': 'version:11.20221231.1.1',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling google-toolbox-for-mac
   # and whatever else without interference from each other.
@@ -383,7 +383,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': 'c456c477697bf61a576cffcfcac1b48e0b6ea26b',
+  'devtools_frontend_revision': '4f73ee63549e6c41c7e35da7950292ef67533fbf',
   # 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.
@@ -419,7 +419,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': 'ce3400170d0eaa266144a6ec5153f07892ccdb54',
+  'dawn_revision': 'cb8ce4332c5d6102b8b489186f342ae01d5054be',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -443,7 +443,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling nearby
   # and whatever else without interference from each other.
-  'nearby_revision': '1f2095a9be808cf41af83424c10de0afe4b85446',
+  'nearby_revision': '7e82794d4da4612b1e0409faaf3a96876f11a8de',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling securemessage
   # and whatever else without interference from each other.
@@ -776,7 +776,7 @@
 
   'src/clank': {
     'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' +
-    '364793b131bf9b312ace270259a9e8e6e92c79ff',
+    '7e9cec773034c1d5e310a79f63a3a1eaa74d250f',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -875,7 +875,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/linux-amd64',
-          'version': 'qmoLjo8DE3QVuBJLHkVKPLFAgakweY1Ivfo4m79lOOAC',
+          'version': 'DJIx394QXJarVqzGE_--L_GBpEH16eBd7l13-lBH-AwC',
         },
       ],
       'dep_type': 'cipd',
@@ -886,7 +886,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/mac-amd64',
-          'version': 'FERsNsn16ImdGWaH8dh8Myyxiywb_chVbzCjVuWGdCAC',
+          'version': 'tR7YVxaPngdJa1gr7niAyz4x3dgYAefxit7FKuJMGY0C',
         },
       ],
       'dep_type': 'cipd',
@@ -897,7 +897,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/windows-amd64',
-          'version': 'VQjb_q9IcJm8huFmM26ju0mqFjluXuG0xqurSzGKMgcC',
+          'version': 'hkPpNURCKLYTSJx0aMLyvxIi_fttaxq48_z2zbexmAIC',
         },
       ],
       'dep_type': 'cipd',
@@ -965,7 +965,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'mlioxSGP0NZyX50Ou3-VsC385Jda4AiTXy3u6wz7kMAC',
+          'version': 'MzT3WKEIbc1paqLYOJFzhgQIpZCKMnKm6FNum2LHMmwC',
       },
     ],
     'condition': 'checkout_android',
@@ -1182,7 +1182,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' + '@' + '79d40d721d419e1be130a3e0fb337db724fc874d',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '18df248c90c06297a66520198b02b2705095f4ec',
       'condition': 'checkout_chromeos',
   },
 
@@ -1216,7 +1216,7 @@
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
 
   'src/third_party/devtools-frontend-internal': {
-      'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '9afc27b5f3c2512a85f4b5694a4c640d264d141a',
+      'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '5c10c1429a344f538788740191eb641494d05467',
     'condition': 'checkout_src_internal',
   },
 
@@ -1830,7 +1830,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '030f44dcf868629f3b5776bd69207d342873ed3d',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '66b52fd6c1124c700426f9868fb56769268ed9c1',
+    Var('webrtc_git') + '/src.git' + '@' + '727080cbacd58a2f303ed8a03f0264fe1493e47a',
 
   # Wuffs' canonical repository is at github.com/google/wuffs, but we use
   # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file.
@@ -1930,7 +1930,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'qadmZ4N1GGs9K-U7um8-6W8g0KAylZmoE-U4_rDdhE0C',
+        'version': 'V41yABU6t_pHyRxZoPBgrHaKjL473Tx3BQ6Xtpq0f60C',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1941,7 +1941,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': 'HF0rMJkrH1jtFUHEI3IaiaXoHaSR8WuuF4j7kiodfhYC',
+        'version': 'OhmFXljzLY3219Q4VOUweIT0NqIl9FAZSMMH1_255vgC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1952,7 +1952,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/projector_app/app',
-        'version': '1dtDlxRC8NlsYguwcEllMw31Mz6REYjQq_297ndztQsC',
+        'version': 'kj9PkX2gTKeq2HVGTxByabxg0DUdQ6ikbqCGB8rLDtgC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/WATCHLISTS b/WATCHLISTS
index a20c7ba..a3216776 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -1713,6 +1713,10 @@
     'privacy_budget': {
       'filepath': 'privacy_budget',
     },
+    'privacy_guide_desktop': {
+      'filepath': 'chrome/browser/resources/settings/privacy_page/privacy_guide/' \
+                  '|chrome/test/data/webui/settings/privacy_guide*',
+    },
     'privacy_sandbox': {
       'filepath': 'privacy_sandbox|PrivacySandbox',
     },
@@ -2909,6 +2913,7 @@
     'preview_features': ['chrome-lite-pages+watch@google.com'],
     'print_preview': ['print-reviews+preview@chromium.org'],
     'privacy_budget': ['antoniosartori+watch-privacy_budget@chromium.org'],
+    'privacy_guide_desktop': ['rainhard+watch@chromium.org'],
     'privacy_sandbox': [
       'alimariam+watch-privacy-sandbox@google.com',
       'dullweber+watch-privacy-sandbox@chromium.org',
diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/BUILD.gn
index ceb379e..2a72dd3e 100644
--- a/android_webview/nonembedded/BUILD.gn
+++ b/android_webview/nonembedded/BUILD.gn
@@ -118,7 +118,6 @@
     "java/src/org/chromium/android_webview/services/MetricsUploadService.java",
     "java/src/org/chromium/android_webview/services/SafeModeContentProvider.java",
     "java/src/org/chromium/android_webview/services/SafeModeService.java",
-    "java/src/org/chromium/android_webview/services/ServicesStatsHelper.java",
     "java/src/org/chromium/android_webview/services/StartupFeatureMetadataHolder.java",
     "java/src/org/chromium/android_webview/services/VariationsSeedHolder.java",
     "java/src/org/chromium/android_webview/services/VariationsSeedServer.java",
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java
index d98eb7e..bb4c173 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java
@@ -6,7 +6,6 @@
 
 import android.os.PersistableBundle;
 
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 import org.chromium.components.minidump_uploader.MinidumpUploadJob;
 import org.chromium.components.minidump_uploader.MinidumpUploadJobImpl;
 import org.chromium.components.minidump_uploader.MinidumpUploadJobService;
@@ -17,11 +16,6 @@
 // OBS: This class needs to be public to be started from android.app.ActivityThread.
 public class AwMinidumpUploadJobService extends MinidumpUploadJobService {
     @Override
-    public void onCreate() {
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.AW_MINIDUMP_UPLOAD_JOB_SERVICE);
-    }
-
-    @Override
     protected MinidumpUploadJob createMinidumpUploadJob(PersistableBundle unusedExtras) {
         return new MinidumpUploadJobImpl(new AwMinidumpUploaderDelegate());
     }
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java
index e64061d..9f4660a 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java
@@ -18,7 +18,6 @@
 import org.chromium.android_webview.common.AwSwitches;
 import org.chromium.android_webview.common.variations.VariationsServiceMetricsHelper;
 import org.chromium.android_webview.common.variations.VariationsUtils;
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 import org.chromium.base.CommandLine;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
@@ -227,11 +226,6 @@
     }
 
     @Override
-    public void onCreate() {
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.AW_VARIATIONS_SEED_FETCHER);
-    }
-
-    @Override
     public boolean onStartJob(JobParameters params) {
         // If this process has survived since the last run of this job, mFetchTask could still
         // exist. Either way, (re)create it with the new params.
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/ComponentsProviderService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/ComponentsProviderService.java
index bf22155..7305177 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/ComponentsProviderService.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/ComponentsProviderService.java
@@ -22,7 +22,6 @@
 import androidx.annotation.VisibleForTesting;
 
 import org.chromium.android_webview.common.services.ServiceNames;
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.FileUtils;
 import org.chromium.base.Log;
@@ -189,8 +188,6 @@
 
         cleanupOlderFiles();
         maybeScheduleComponentUpdateService();
-
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.COMPONENTS_PROVIDER_SERVICE);
     }
 
     private void cleanupOlderFiles() {
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashReceiverService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashReceiverService.java
index 26b530d..8eb1ade 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashReceiverService.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashReceiverService.java
@@ -16,7 +16,6 @@
 import org.chromium.android_webview.common.crash.CrashUploadUtil;
 import org.chromium.android_webview.common.crash.SystemWideCrashDirectories;
 import org.chromium.android_webview.common.services.ICrashReceiverService;
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 import org.chromium.base.Log;
 import org.chromium.components.minidump_uploader.CrashFileManager;
 
@@ -185,11 +184,6 @@
     }
 
     @Override
-    public void onCreate() {
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.CRASH_RECEIVER_SERVICE);
-    }
-
-    @Override
     public IBinder onBind(Intent intent) {
         return mBinder;
     }
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/DeveloperUiService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/DeveloperUiService.java
index 2ffa0e6..e0ee2e1 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/DeveloperUiService.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/DeveloperUiService.java
@@ -30,7 +30,6 @@
 import org.chromium.android_webview.common.ProductionSupportedFlagList;
 import org.chromium.android_webview.common.services.IDeveloperUiService;
 import org.chromium.android_webview.common.services.ServiceHelper;
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 import org.chromium.base.CommandLine;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.IntentUtils;
@@ -110,11 +109,6 @@
     };
 
     @Override
-    public void onCreate() {
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.DEVELOPER_UI_SERVICE);
-    }
-
-    @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
         final int mode = super.onStartCommand(intent, flags, startId);
         // Service is always expected to run in foreground, so mark as such when it is started.
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/MetricsBridgeService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/MetricsBridgeService.java
index 50dfc70..8a4e8b0 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/MetricsBridgeService.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/MetricsBridgeService.java
@@ -17,7 +17,6 @@
 import org.chromium.android_webview.common.services.IMetricsBridgeService;
 import org.chromium.android_webview.proto.MetricsBridgeRecords.HistogramRecord;
 import org.chromium.android_webview.proto.MetricsBridgeRecords.HistogramRecord.RecordType;
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 import org.chromium.base.Log;
 import org.chromium.base.PathUtils;
 import org.chromium.base.task.PostTask;
@@ -147,7 +146,6 @@
                 Log.e(TAG, "Failed reading proto log file", e);
             }
         });
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.METRICS_BRIDGE_SERVICE);
     }
 
     public MetricsBridgeService() {
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/MetricsUploadService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/MetricsUploadService.java
index e036b7c7..0f6f298 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/MetricsUploadService.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/MetricsUploadService.java
@@ -10,7 +10,6 @@
 
 import org.chromium.android_webview.common.PlatformServiceBridge;
 import org.chromium.android_webview.common.services.IMetricsUploadService;
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 
 /**
  * Service that receives UMA metrics logs from embedded WebView instances and send them to GMS-core
@@ -28,11 +27,6 @@
     };
 
     @Override
-    public void onCreate() {
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.METRICS_UPLOAD_SERVICE);
-    }
-
-    @Override
     public IBinder onBind(Intent intent) {
         return mBinder;
     }
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/SafeModeService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/SafeModeService.java
index 3f0a646b..a2c4dc9 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/SafeModeService.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/SafeModeService.java
@@ -25,7 +25,6 @@
 import org.chromium.android_webview.common.SafeModeController;
 import org.chromium.android_webview.common.services.ISafeModeService;
 import org.chromium.android_webview.services.SafeModeService.TrustedPackage;
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 import org.chromium.base.BuildInfo;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
@@ -224,11 +223,6 @@
     };
 
     @Override
-    public void onCreate() {
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.SAFE_MODE_SERVICE);
-    }
-
-    @Override
     public IBinder onBind(Intent intent) {
         return mBinder;
     }
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/ServicesStatsHelper.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/ServicesStatsHelper.java
deleted file mode 100644
index e9302a8..0000000
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/ServicesStatsHelper.java
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.android_webview.services;
-
-import androidx.annotation.IntDef;
-
-import org.chromium.base.metrics.RecordHistogram;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-// A helper class to record some stats about nonembedded WebView services.
-/* package */ class ServicesStatsHelper {
-    private static AtomicBoolean sIsFirstServiceInProcess = new AtomicBoolean(true);
-
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({NonembeddedService.AW_MINIDUMP_UPLOAD_JOB_SERVICE,
-            NonembeddedService.AW_VARIATIONS_SEED_FETCHER,
-            NonembeddedService.COMPONENTS_PROVIDER_SERVICE,
-            NonembeddedService.CRASH_RECEIVER_SERVICE, NonembeddedService.DEVELOPER_UI_SERVICE,
-            NonembeddedService.METRICS_BRIDGE_SERVICE, NonembeddedService.METRICS_UPLOAD_SERVICE,
-            NonembeddedService.SAFE_MODE_SERVICE, NonembeddedService.VARIATIONS_SEED_SERVER,
-            NonembeddedService.COUNT})
-    public @interface NonembeddedService {
-        // These values are persisted to logs. Entries should not be renumbered and
-        // numeric values should never be reused.
-        int AW_MINIDUMP_UPLOAD_JOB_SERVICE = 0;
-        int AW_VARIATIONS_SEED_FETCHER = 1;
-        int COMPONENTS_PROVIDER_SERVICE = 2;
-        int CRASH_RECEIVER_SERVICE = 3;
-        int DEVELOPER_UI_SERVICE = 4;
-        int METRICS_BRIDGE_SERVICE = 5;
-        int METRICS_UPLOAD_SERVICE = 6;
-        int SAFE_MODE_SERVICE = 7;
-        int VARIATIONS_SEED_SERVER = 8;
-        int COUNT = 9;
-    }
-
-    static void recordServiceLaunch(@NonembeddedService int service) {
-        boolean isFirstServiceInProcess = sIsFirstServiceInProcess.getAndSet(false);
-
-        RecordHistogram.recordBooleanHistogram(
-                "Android.WebView.Nonembedded.IsFreshServiceProcessLaunched",
-                isFirstServiceInProcess);
-        if (isFirstServiceInProcess) {
-            RecordHistogram.recordEnumeratedHistogram(
-                    "Android.WebView.Nonembedded.FirstServiceInProcess", service,
-                    NonembeddedService.COUNT);
-        }
-    }
-}
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/VariationsSeedServer.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/VariationsSeedServer.java
index d050046..2403d7d 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/VariationsSeedServer.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/VariationsSeedServer.java
@@ -15,7 +15,6 @@
 import org.chromium.android_webview.common.services.IVariationsSeedServer;
 import org.chromium.android_webview.common.services.IVariationsSeedServerCallback;
 import org.chromium.android_webview.common.variations.VariationsServiceMetricsHelper;
-import org.chromium.android_webview.services.ServicesStatsHelper.NonembeddedService;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 
@@ -37,11 +36,6 @@
     };
 
     @Override
-    public void onCreate() {
-        ServicesStatsHelper.recordServiceLaunch(NonembeddedService.VARIATIONS_SEED_SERVER);
-    }
-
-    @Override
     public IBinder onBind(Intent intent) {
         return mBinder;
     }
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 2c85b85f..b6a4697 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -3695,6 +3695,8 @@
     "projector/test/mock_projector_metadata_controller.h",
     "projector/test/mock_projector_ui_controller.cc",
     "projector/test/mock_projector_ui_controller.h",
+    "public/cpp/fake_hats_bluetooth_revamp_trigger_impl.cc",
+    "public/cpp/fake_hats_bluetooth_revamp_trigger_impl.h",
     "system/diagnostics/log_test_helpers.cc",
     "system/diagnostics/log_test_helpers.h",
     "system/geolocation/test_geolocation_url_loader_factory.cc",
diff --git a/ash/components/arc/ime/arc_ime_service.cc b/ash/components/arc/ime/arc_ime_service.cc
index b9e26e2..99b7355b59 100644
--- a/ash/components/arc/ime/arc_ime_service.cc
+++ b/ash/components/arc/ime/arc_ime_service.cc
@@ -59,7 +59,7 @@
 }
 
 // Return true if the given key event is used for language switching by IME.
-// Please refer to ui::InputMethodAsh::DispatchKeyEvent for details.
+// Please refer to `ash::InputMethodAsh::DispatchKeyEvent` for details.
 bool IsLanguageInputKey(const ui::KeyEvent* event) {
   switch (event->key_code()) {
     case ui::VKEY_CONVERT:
@@ -674,7 +674,7 @@
 
   // Do not forward the key event from virtual keyboard if it's sent via
   // InsertChar(). By the special logic in
-  // `ui::InputMethodAsh::DispatchKeyEvent`, both of InsertChar() and
+  // `ash::InputMethodAsh::DispatchKeyEvent`, both of InsertChar() and
   // DispatchKeyEventPostIME() are called for a key event injected by the
   // virtual keyboard. The below logic stops key event propagation through
   // DispatchKeyEventPostIME() to prevent from inputting two characters.
@@ -685,7 +685,7 @@
     event->SetHandled();
 
   // Do not forward the language input key event from virtual keyboard because
-  // it's already handled by ui::InputMethodAsh.
+  // it's already handled by `ash::InputMethodAsh`.
   if (from_vk && IsLanguageInputKey(event))
     event->SetHandled();
 
diff --git a/ash/components/arc/ime/key_event_result_receiver.cc b/ash/components/arc/ime/key_event_result_receiver.cc
index 4e291ab..aad03a33 100644
--- a/ash/components/arc/ime/key_event_result_receiver.cc
+++ b/ash/components/arc/ime/key_event_result_receiver.cc
@@ -31,7 +31,7 @@
 KeyEventResultReceiver::~KeyEventResultReceiver() = default;
 
 bool KeyEventResultReceiver::DispatchKeyEventPostIME(ui::KeyEvent* event) {
-  // This method is called by `ui::InputMethodAsh` when IME finishes
+  // This method is called by `ash::InputMethodAsh` when IME finishes
   // handling a key event coming from |ArcImeService::SendKeyEvent()|. If the
   // key event seems not to be consumed by IME, it's sent back to ARC to give it
   // to the focused View in ARC side.
diff --git a/ash/metrics/ui_metrics_recorder_unittest.cc b/ash/metrics/ui_metrics_recorder_unittest.cc
index a4a8974..d2f799f 100644
--- a/ash/metrics/ui_metrics_recorder_unittest.cc
+++ b/ash/metrics/ui_metrics_recorder_unittest.cc
@@ -197,7 +197,7 @@
 TEST_F(UiMetricsRecorderTest, TargetDestroyedWithSyncIME) {
   // Setup.
   auto ime_engine = std::make_unique<TestIMEEngineHandler>();
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(ime_engine.get());
+  IMEBridge::Get()->SetCurrentEngineHandler(ime_engine.get());
 
   std::unique_ptr<views::Widget> widget = CreateTestWindowWidget();
   FakeTestView* view =
@@ -215,7 +215,7 @@
   EXPECT_EQ(destroyer.GetReceivedKeyEvent(), 1);
 
   // Teardown.
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
+  IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
 }
 
 }  // namespace
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn
index 07fd323..839e02d 100644
--- a/ash/public/cpp/BUILD.gn
+++ b/ash/public/cpp/BUILD.gn
@@ -130,6 +130,8 @@
     "fwupd_download_client.cc",
     "fwupd_download_client.h",
     "gesture_action_type.h",
+    "hats_bluetooth_revamp_trigger.cc",
+    "hats_bluetooth_revamp_trigger.h",
     "holding_space/holding_space_client.h",
     "holding_space/holding_space_constants.h",
     "holding_space/holding_space_controller.cc",
diff --git a/ash/public/cpp/fake_hats_bluetooth_revamp_trigger_impl.cc b/ash/public/cpp/fake_hats_bluetooth_revamp_trigger_impl.cc
new file mode 100644
index 0000000..82b899b0
--- /dev/null
+++ b/ash/public/cpp/fake_hats_bluetooth_revamp_trigger_impl.cc
@@ -0,0 +1,17 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/public/cpp/fake_hats_bluetooth_revamp_trigger_impl.h"
+#include "ash/public/cpp/hats_bluetooth_revamp_trigger.h"
+
+namespace ash {
+
+FakeHatsBluetoothRevampTriggerImpl::FakeHatsBluetoothRevampTriggerImpl() =
+    default;
+
+void FakeHatsBluetoothRevampTriggerImpl::TryToShowSurvey() {
+  try_to_show_survey_called_ = true;
+}
+
+}  // namespace ash
diff --git a/ash/public/cpp/fake_hats_bluetooth_revamp_trigger_impl.h b/ash/public/cpp/fake_hats_bluetooth_revamp_trigger_impl.h
new file mode 100644
index 0000000..64f676b
--- /dev/null
+++ b/ash/public/cpp/fake_hats_bluetooth_revamp_trigger_impl.h
@@ -0,0 +1,36 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_PUBLIC_CPP_FAKE_HATS_BLUETOOTH_REVAMP_TRIGGER_IMPL_H_
+#define ASH_PUBLIC_CPP_FAKE_HATS_BLUETOOTH_REVAMP_TRIGGER_IMPL_H_
+
+#include "ash/public/cpp/ash_public_export.h"
+#include "ash/public/cpp/hats_bluetooth_revamp_trigger.h"
+
+namespace ash {
+
+// Fake implementation of `HatsBluetoothRevampTrigger`, used in test.
+class ASH_PUBLIC_EXPORT FakeHatsBluetoothRevampTriggerImpl
+    : public HatsBluetoothRevampTrigger {
+ public:
+  FakeHatsBluetoothRevampTriggerImpl();
+  FakeHatsBluetoothRevampTriggerImpl(
+      const FakeHatsBluetoothRevampTriggerImpl&) = delete;
+  const FakeHatsBluetoothRevampTriggerImpl& operator=(
+      const FakeHatsBluetoothRevampTriggerImpl&) = delete;
+  ~FakeHatsBluetoothRevampTriggerImpl() override = default;
+
+  bool try_to_show_survey_called() const { return try_to_show_survey_called_; }
+
+  // HatsBluetoothRevampTrigger:
+  void TryToShowSurvey() override;
+
+ private:
+  // True if `TryToShowSurvey()` was called.
+  bool try_to_show_survey_called_ = false;
+};
+
+}  // namespace ash
+
+#endif  // ASH_PUBLIC_CPP_FAKE_HATS_BLUETOOTH_REVAMP_TRIGGER_IMPL_H_
\ No newline at end of file
diff --git a/ash/public/cpp/hats_bluetooth_revamp_trigger.cc b/ash/public/cpp/hats_bluetooth_revamp_trigger.cc
new file mode 100644
index 0000000..e2b1386
--- /dev/null
+++ b/ash/public/cpp/hats_bluetooth_revamp_trigger.cc
@@ -0,0 +1,30 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/public/cpp/hats_bluetooth_revamp_trigger.h"
+
+#include "base/check_op.h"
+
+namespace ash {
+
+namespace {
+HatsBluetoothRevampTrigger* g_hats_bluetooth_revamp_trigger = nullptr;
+}  // namespace
+
+HatsBluetoothRevampTrigger::HatsBluetoothRevampTrigger() {
+  DCHECK(!g_hats_bluetooth_revamp_trigger);
+  g_hats_bluetooth_revamp_trigger = this;
+}
+
+// static
+HatsBluetoothRevampTrigger* HatsBluetoothRevampTrigger::Get() {
+  return g_hats_bluetooth_revamp_trigger;
+}
+
+HatsBluetoothRevampTrigger::~HatsBluetoothRevampTrigger() {
+  DCHECK_EQ(g_hats_bluetooth_revamp_trigger, this);
+  g_hats_bluetooth_revamp_trigger = nullptr;
+}
+
+}  // namespace ash
\ No newline at end of file
diff --git a/ash/public/cpp/hats_bluetooth_revamp_trigger.h b/ash/public/cpp/hats_bluetooth_revamp_trigger.h
new file mode 100644
index 0000000..b8f83f4d
--- /dev/null
+++ b/ash/public/cpp/hats_bluetooth_revamp_trigger.h
@@ -0,0 +1,35 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_PUBLIC_CPP_HATS_BLUETOOTH_REVAMP_TRIGGER_H_
+#define ASH_PUBLIC_CPP_HATS_BLUETOOTH_REVAMP_TRIGGER_H_
+
+#include "ash/public/cpp/ash_public_export.h"
+
+namespace ash {
+
+// Used to show a Happiness Tracking Survey after user interacts with revamped
+// Bluetooth UI surfaces. Implementation of this class is in
+// //chrome/browser/ash/bluetooth.
+class ASH_PUBLIC_EXPORT HatsBluetoothRevampTrigger {
+ public:
+  // Gets the global instance.
+  static HatsBluetoothRevampTrigger* Get();
+
+  HatsBluetoothRevampTrigger(const HatsBluetoothRevampTrigger&) = delete;
+  HatsBluetoothRevampTrigger& operator=(const HatsBluetoothRevampTrigger&) =
+      delete;
+
+  // Checks to see if a survey should be shown, and if so, displays the survey
+  // with some probability determined by the Finch config file.
+  virtual void TryToShowSurvey() = 0;
+
+ protected:
+  HatsBluetoothRevampTrigger();
+  virtual ~HatsBluetoothRevampTrigger();
+};
+
+}  // namespace ash
+
+#endif  // ASH_PUBLIC_CPP_HATS_BLUETOOTH_REVAMP_TRIGGER_H_
\ No newline at end of file
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index 4d69deaf..03513a9 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -926,6 +926,7 @@
 <translation id="6040143037577758943">Maak toe</translation>
 <translation id="6043212731627905357">Hierdie monitor werk nie saam met jou <ph name="DEVICE_TYPE" /> nie (die monitor is nie gesteun nie).</translation>
 <translation id="6043994281159824495">Meld nou af</translation>
+<translation id="6045629311476491587">Word deur <ph name="APP_COUNT" /> apps gebruik</translation>
 <translation id="6047696787498798094">Skermdeling sal stop wanneer jy na 'n ander gebruiker oorskakel. Wil jy voortgaan?</translation>
 <translation id="6054305421211936131">Meld met slimkaart aan</translation>
 <translation id="6059276912018042191">Onlangse Chrome-oortjies</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 43a7d5f..8e8a937 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -927,6 +927,7 @@
 <translation id="6040143037577758943">إغلاق</translation>
 <translation id="6043212731627905357">لا تتوافق هذه الشاشة مع <ph name="DEVICE_TYPE" /> (هذه الشاشة غير مدعومة).</translation>
 <translation id="6043994281159824495">الخروج الآن</translation>
+<translation id="6045629311476491587">عدد التطبيقات التي تستخدم عناصر التحكم هذه: <ph name="APP_COUNT" /></translation>
 <translation id="6047696787498798094">سيتم إيقاف مشاركة الشاشة عند التبديل إلى مستخدم آخر. هل تريد المتابعة؟</translation>
 <translation id="6054305421211936131">تسجيل الدخول باستخدام البطاقة الذكية</translation>
 <translation id="6059276912018042191">‏علامات تبويب Chrome الأخيرة</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index 2de4354..7b154442 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">বন্ধ কৰক</translation>
 <translation id="6043212731627905357">এই মনিটৰটো আপোনাৰ <ph name="DEVICE_TYPE" />ৰ খাপ খোৱা নাই (মনিটৰটো সমৰ্থিত নহয়)।</translation>
 <translation id="6043994281159824495">এতিয়াই ছাইন আউট কৰক</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> টা এপে ব্যৱহাৰ কৰিছে</translation>
 <translation id="6047696787498798094">আপুনি যদি অন্য ব্যৱহাৰকাৰীলৈ সলনি কৰে তেতিয়া স্ক্ৰীন শ্বেয়াৰ কৰা বন্ধ হ'ব। আপুনি অব্যাহত ৰাখিব খোজেনে?</translation>
 <translation id="6054305421211936131">স্মার্ট কার্ডৰ জৰিয়তে ছাইন ইন কৰক</translation>
 <translation id="6059276912018042191">Chromeৰ শেহতীয়া টেব</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb
index ec0e6f9..8e288a43 100644
--- a/ash/strings/ash_strings_az.xtb
+++ b/ash/strings/ash_strings_az.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Qapat</translation>
 <translation id="6043212731627905357">Bu monitor <ph name="DEVICE_TYPE" /> cihazına uyğun gəlmir (monitor dəstəklənmir).</translation>
 <translation id="6043994281159824495">Hesabdan çıxın</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> tətbiq istifadə edir</translation>
 <translation id="6047696787498798094">Digər istifadəçiyə keçirdiyiniz zaman ekran paylaşması dayandırılacaq. Davam etmək istəyirsiniz?</translation>
 <translation id="6054305421211936131">Smart kart ilə daxil olun</translation>
 <translation id="6059276912018042191">Son Chrome tabları</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index 6b00b1b..36899e7 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="6043212731627905357">Ovaj monitor i vaš <ph name="DEVICE_TYPE" /> ne funkcioniraju skupa (monitor nije podržan).</translation>
 <translation id="6043994281159824495">Odjavi se sada</translation>
+<translation id="6045629311476491587">Koriste aplikacije, njih <ph name="APP_COUNT" /></translation>
 <translation id="6047696787498798094">Dijeljenje ekrana će se zaustaviti kada se prebacite na drugog korisnika. Želite li nastaviti?</translation>
 <translation id="6054305421211936131">Prijava pomoću pametne kartice</translation>
 <translation id="6059276912018042191">Nedavne kartice Chromea</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index 638157f..fe242c5 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Tanca</translation>
 <translation id="6043212731627905357">Aquest monitor i el teu <ph name="DEVICE_TYPE" /> no s'entenen (el monitor no és compatible).</translation>
 <translation id="6043994281159824495">Tanca la sessió ara</translation>
+<translation id="6045629311476491587">Utilitzats per <ph name="APP_COUNT" /> aplicacions</translation>
 <translation id="6047696787498798094">La compartició de pantalla s'aturarà quan canviïs d'usuari. Vols continuar?</translation>
 <translation id="6054305421211936131">Inicia la sessió amb la targeta intel·ligent</translation>
 <translation id="6059276912018042191">Pestanyes de Chrome recents</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index 67457933..bd6835c8 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Κλείσιμο</translation>
 <translation id="6043212731627905357">Αυτή η οθόνη δεν είναι συμβατή με τη συσκευή σας <ph name="DEVICE_TYPE" /> (η οθόνη δεν υποστηρίζεται).</translation>
 <translation id="6043994281159824495">Έξοδος τώρα</translation>
+<translation id="6045629311476491587">Χρησιμοποιείται από <ph name="APP_COUNT" /> εφαρμογές</translation>
 <translation id="6047696787498798094">Η κοινή χρήση οθόνης θα διακοπεί κατά την εναλλαγή σε άλλον χρήστη. Θέλετε να συνεχίσετε;</translation>
 <translation id="6054305421211936131">Σύνδεση με έξυπνη κάρτα</translation>
 <translation id="6059276912018042191">Πρόσφατες καρτέλες Chrome</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb
index d77d56a..11555d03 100644
--- a/ash/strings/ash_strings_fr-CA.xtb
+++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Fermer</translation>
 <translation id="6043212731627905357">Ce moniteur n'est pas compatible avec votre <ph name="DEVICE_TYPE" /> (le moniteur n'est pas pris en charge).</translation>
 <translation id="6043994281159824495">Se déconnecter maintenant</translation>
+<translation id="6045629311476491587">Utilisée par <ph name="APP_COUNT" /> applications</translation>
 <translation id="6047696787498798094">Le partage d'écran s'arrête lorsque vous passez à un autre utilisateur. Voulez-vous continuer?</translation>
 <translation id="6054305421211936131">Se connecter avec une carte à puce</translation>
 <translation id="6059276912018042191">Onglets Chrome récents</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index 782e29d..48d432d 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">બંધ કરો</translation>
 <translation id="6043212731627905357">આ મૉનિટર તમારા <ph name="DEVICE_TYPE" /> સાથે કામ કરી રહ્યું નથી (મૉનિટર સમર્થિત નથી).</translation>
 <translation id="6043994281159824495">હવે સાઇન આઉટ કરો</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> ઍપ દ્વારા ઉપયોગ કરવામાં આવ્યો</translation>
 <translation id="6047696787498798094">જ્યારે તમે બીજા વપરાશકર્તા પર સ્વિચ કરો ત્યારે સ્ક્રીન શેરિંગ રોકવામાં આવશે. શું તમે ચાલુ રાખવા માંગો છો?</translation>
 <translation id="6054305421211936131">સ્માર્ટ કાર્ડ વડે સાઇન ઇન કરો</translation>
 <translation id="6059276912018042191">તાજેતરની Chrome ટૅબ</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index bdfacb2..951f6bc 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -924,6 +924,7 @@
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="6043212731627905357">Ovaj se monitor ne podudara s vašim uređajem <ph name="DEVICE_TYPE" /> (monitor nije podržan).</translation>
 <translation id="6043994281159824495">Odjavi se odmah</translation>
+<translation id="6045629311476491587">Koristi: <ph name="APP_COUNT" /> aplikacija/aplikacije</translation>
 <translation id="6047696787498798094">Dijeljenje zaslona prekinut će se kad se prebacite na drugog korisnika. Želite li nastaviti?</translation>
 <translation id="6054305421211936131">Prijava pomoću pametne kartice</translation>
 <translation id="6059276912018042191">Nedavne Chromeove kartice</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index ee7af2c..c7bd8cc 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -926,6 +926,7 @@
 <translation id="6040143037577758943">Bezárás</translation>
 <translation id="6043212731627905357">Ez a monitor nem illik össze <ph name="DEVICE_TYPE" />-eszközével (a monitor nem támogatott).</translation>
 <translation id="6043994281159824495">Kijelentkezés most</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> alkalmazás használja</translation>
 <translation id="6047696787498798094">A képernyőmegosztás leáll, amikor másik felhasználóra vált. Folytatja?</translation>
 <translation id="6054305421211936131">Bejelentkezés intelligens kártyával</translation>
 <translation id="6059276912018042191">Nemrég megnyitott Chrome-lapok</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index b694c0f4..30a7eeb3 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -214,7 +214,7 @@
 <translation id="2023558322300866873">언제든지 패킷 캡처를 중단할 수 있습니다.</translation>
 <translation id="2034971124472263449">무시하고 저장</translation>
 <translation id="2049240716062114887">데스크 이름이 <ph name="DESK_NAME" />(으)로 변경되었습니다.</translation>
-<translation id="2050339315714019657">세로 방향</translation>
+<translation id="2050339315714019657">인물</translation>
 <translation id="2064048859448024834">동영상 카메라 미리보기 켜짐</translation>
 <translation id="2067602449040652523">키보드 밝기</translation>
 <translation id="2078034614700056995">다음 데스크로 전환하려면 네 손가락을 사용해 오른쪽으로 스와이프하세요.</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index e091a97..573a51b 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Uždaryti</translation>
 <translation id="6043212731627905357">Šis monitorius nesuderinamas su jūsų „<ph name="DEVICE_TYPE" />“ (monitorius nepalaikomas).</translation>
 <translation id="6043994281159824495">Atsijungti dabar</translation>
+<translation id="6045629311476491587">Naudoja <ph name="APP_COUNT" /> progr.</translation>
 <translation id="6047696787498798094">Perjungus naudotoją ekrano bendrinimas bus nutrauktas. Ar norite tęsti?</translation>
 <translation id="6054305421211936131">Prisijungti naudojant išmaniąją kortelę</translation>
 <translation id="6059276912018042191">Pastarieji „Chrome“ skirtukai</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index b2230102..60dc959 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">അടയ്ക്കുക</translation>
 <translation id="6043212731627905357">ഈ മോണിറ്റർ നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> ഉപകരണത്തിൽ പ്രവർത്തിക്കുന്നില്ല (മോണിറ്റർ ഇതിൽ പ്രവർത്തിക്കില്ല).</translation>
 <translation id="6043994281159824495">ഇപ്പോൾ സൈൻ ഔട്ട് ചെയ്യുക</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> ആപ്പുകൾ ഉപയോഗിച്ചു</translation>
 <translation id="6047696787498798094">മറ്റൊരു ഉപയോക്താവിലേക്ക് മാറുമ്പോൾ സ്ക്രീൻ പങ്കിടൽ നിർത്തും. നിങ്ങൾക്ക് തുടരണോ?</translation>
 <translation id="6054305421211936131">സ്‌മാർട്ട് കാർഡ് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="6059276912018042191">അടുത്തിടെയുള്ള Chrome ടാബുകൾ</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index 06c769af..2159a16 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">बंद करा</translation>
 <translation id="6043212731627905357">हा मॉनिटर तुमच्या <ph name="DEVICE_TYPE" /> सह व्यवस्थित काम करत नाही (मॉनिटरला सपोर्ट नाही).</translation>
 <translation id="6043994281159824495">आता साइन आउट करा</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> अ‍ॅपने वापरले</translation>
 <translation id="6047696787498798094">तुम्ही दुसर्‍या वापरकर्त्यावर स्‍विच करता तेव्‍हा स्क्रीन सामायिकरण थांबेल. तुम्ही सुरू ठेवू इच्छिता?</translation>
 <translation id="6054305421211936131">तुमचे स्मार्ट कार्ड वापरून साइन इन करा</translation>
 <translation id="6059276912018042191">अलीकडील Chrome टॅब</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb
index e3ac02c..cdfb3e0 100644
--- a/ash/strings/ash_strings_ne.xtb
+++ b/ash/strings/ash_strings_ne.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">बन्द गर्नुहोस्</translation>
 <translation id="6043212731627905357">तपाईंको मनिटरले <ph name="DEVICE_TYPE" /> सँग राम्ररी काम गरिरहेको छैन (यस मनिटरलाई समर्थन छैन)।</translation>
 <translation id="6043994281159824495">अहिले साइन आउट गर्नुहोस्</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> वटा एपले प्रयोग गरेका छन्</translation>
 <translation id="6047696787498798094">तपाइँले अर्को प्रयोगकर्तामा स्विच गर्दा स्क्रिन साझा गर्ने रोकिनेछ। के तपाइँ जारी राख्न चाहनुहुन्छ?</translation>
 <translation id="6054305421211936131">स्मार्ट कार्डमार्फत साइन इन गर्नुहोस्</translation>
 <translation id="6059276912018042191">Chrome का हालसालै खोलिएका ट्याबहरू</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 4c22a918..703230b 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Sluiten</translation>
 <translation id="6043212731627905357">Dit beeldscherm werkt niet met je <ph name="DEVICE_TYPE" /> (het beeldscherm wordt niet ondersteund).</translation>
 <translation id="6043994281159824495">Nu uitloggen</translation>
+<translation id="6045629311476491587">Gebruikt door <ph name="APP_COUNT" /> apps</translation>
 <translation id="6047696787498798094">Scherm delen wordt gestopt wanneer je overschakelt naar een andere gebruiker. Wil je doorgaan?</translation>
 <translation id="6054305421211936131">Inloggen met smartkaart</translation>
 <translation id="6059276912018042191">Recente Chrome-tabbladen</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index f784f35..9ad45dcc 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Lukk</translation>
 <translation id="6043212731627905357">Denne skjermen liker ikke <ph name="DEVICE_TYPE" /> (skjermen støttes ikke).</translation>
 <translation id="6043994281159824495">Logg av nå</translation>
+<translation id="6045629311476491587">Brukt av <ph name="APP_COUNT" /> apper</translation>
 <translation id="6047696787498798094">Skjermdelingen stopper hvis du bytter til en annen bruker.</translation>
 <translation id="6054305421211936131">Logg på med smartkort</translation>
 <translation id="6059276912018042191">Nylige Chrome-faner</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 6ed99a5..43c2fd3f 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Fechar</translation>
 <translation id="6043212731627905357">Este monitor não está funcionando bem com seu <ph name="DEVICE_TYPE" /> (o monitor não é compatível).</translation>
 <translation id="6043994281159824495">Sair agora</translation>
+<translation id="6045629311476491587">Usados por <ph name="APP_COUNT" /> apps</translation>
 <translation id="6047696787498798094">O compartilhamento de tela será interrompido quando você alternar para outro usuário. Quer continuar?</translation>
 <translation id="6054305421211936131">Fazer login com cartão inteligente</translation>
 <translation id="6059276912018042191">Guias recentes do Chrome</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 20e3c10..fba018d9 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Închide</translation>
 <translation id="6043212731627905357">Monitorul nu funcționează cu <ph name="DEVICE_TYPE" /> (monitorul nu este compatibil).</translation>
 <translation id="6043994281159824495">Deconectați-vă acum</translation>
+<translation id="6045629311476491587">Folosite de <ph name="APP_COUNT" /> aplicații</translation>
 <translation id="6047696787498798094">Permiterea accesului la ecran încetează când comuți la alt utilizator. Dorești să continui?</translation>
 <translation id="6054305421211936131">Conectează-te cu cardul inteligent</translation>
 <translation id="6059276912018042191">File Chrome recente</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index 8396f28f..cd9ec86 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Закрыть</translation>
 <translation id="6043212731627905357">Монитор не совместим с устройством <ph name="DEVICE_TYPE" />.</translation>
 <translation id="6043994281159824495">Выйти</translation>
+<translation id="6045629311476491587">Используется в нескольких приложениях (<ph name="APP_COUNT" />)</translation>
 <translation id="6047696787498798094">Если перейти к другому пользователю, доступ к экрану будет закрыт. Продолжить?</translation>
 <translation id="6054305421211936131">Войти с помощью смарт-карты</translation>
 <translation id="6059276912018042191">Недавние вкладки в Chrome</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index 74a8f64..32581b7 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Zavrieť</translation>
 <translation id="6043212731627905357">Tento monitor nie je kompatibilný s vaším zariadením <ph name="DEVICE_TYPE" /> (monitor nie je podporovaný).</translation>
 <translation id="6043994281159824495">Odhlásiť sa</translation>
+<translation id="6045629311476491587">Používané <ph name="APP_COUNT" /> aplikáciami</translation>
 <translation id="6047696787498798094">Keď prepnete na iného používateľa, zdieľanie obrazovky sa ukončí. Chcete pokračovať?</translation>
 <translation id="6054305421211936131">Prihlásiť sa pomocou inteligentnej karty</translation>
 <translation id="6059276912018042191">Nedávne karty Chromu</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index b6bd6ec6..745a53b5 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">மூடு</translation>
 <translation id="6043212731627905357">இந்த மானிட்டர் உங்கள் <ph name="DEVICE_TYPE" /> உடன் செயல்படவில்லை (இந்த மானிட்டர் ஆதரிக்கப்படவில்லை).</translation>
 <translation id="6043994281159824495">இப்போது வெளியேறு</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> ஆப்ஸ் பயன்படுத்துகிறது</translation>
 <translation id="6047696787498798094">நீங்கள் வேறொரு பயனருக்கு மாறும்போது, திரைப் பகிர்வு நிறுத்தப்படும். தொடர விருப்பமா?</translation>
 <translation id="6054305421211936131">ஸ்மார்ட் கார்டு மூலம் உள்நுழைக</translation>
 <translation id="6059276912018042191">சமீபத்திய Chrome தாவல்கள்</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 3fccf41..9f8440d45 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Закрити</translation>
 <translation id="6043212731627905357">Ваш пристрій <ph name="DEVICE_TYPE" /> не підтримує цей монітор.</translation>
 <translation id="6043994281159824495">Вийти зараз</translation>
+<translation id="6045629311476491587">Використано в стількох додатках: <ph name="APP_COUNT" /></translation>
 <translation id="6047696787498798094">Якщо змінити користувача, спільний доступ до екрана буде скасовано. Продовжити?</translation>
 <translation id="6054305421211936131">Увійти за допомогою розумної картки</translation>
 <translation id="6059276912018042191">Останні вкладки Chrome</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb
index 4b6cc11..6630f41 100644
--- a/ash/strings/ash_strings_ur.xtb
+++ b/ash/strings/ash_strings_ur.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">بند کریں</translation>
 <translation id="6043212731627905357">یہ مانیٹر آپ کے <ph name="DEVICE_TYPE" /> کے ساتھ ٹھیک طرح سے کام نہیں کر رہا (مانیٹر تعاون یافتہ نہیں ہے)۔</translation>
 <translation id="6043994281159824495">ابھی سائن آؤٹ کریں</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> ایپس کے ذریعے استعمال کردہ</translation>
 <translation id="6047696787498798094">جب آپ کسی دوسرے صارف پر سوئچ کریں گے تو اسکرین کا اشتراک رک جائے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟</translation>
 <translation id="6054305421211936131">اپنے اسمارٹ کارڈ سے سائن ان کریں</translation>
 <translation id="6059276912018042191">‏حالیہ Chrome ٹیبز</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index 3a8d4057..f88ac59 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -31,7 +31,7 @@
 <translation id="1142002900084379065">Yaqinda olingan suratlar</translation>
 <translation id="1148499908455722006"><ph name="USER_NAME" /> axborot oynasini ochish</translation>
 <translation id="1150989369772528668">Taqvim</translation>
-<translation id="1153356358378277386">Ulangan qurilmalar</translation>
+<translation id="1153356358378277386">Juftlangan qurilmalar</translation>
 <translation id="1170753161936175256"><ph name="EVENT_SUMMARY" />, <ph name="TIME_RANGE" /></translation>
 <translation id="1171742223880403396">USB-C kabelingiz displeylarga toʻgʻri ulanmasligi mumkin</translation>
 <translation id="1175572348579024023">Aylantirish</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index 07b3081..30e11bf 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Đóng</translation>
 <translation id="6043212731627905357">Màn hình này không tương thích với <ph name="DEVICE_TYPE" /> của bạn (màn hình không được hỗ trợ).</translation>
 <translation id="6043994281159824495">Đăng xuất bây giờ</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> ứng dụng đã dùng</translation>
 <translation id="6047696787498798094">Chia sẻ màn hình sẽ dừng khi bạn chuyển sang người dùng khác. Bạn có muốn tiếp tục không?</translation>
 <translation id="6054305421211936131">Đăng nhập bằng thẻ thông minh</translation>
 <translation id="6059276912018042191">Các thẻ Chrome mở gần đây</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index 5f47c614..d52ed62 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -924,6 +924,7 @@
 <translation id="6040143037577758943">關閉</translation>
 <translation id="6043212731627905357">此顯示器與您的 <ph name="DEVICE_TYPE" /> 無法配對 (並不支援該顯示器)。</translation>
 <translation id="6043994281159824495">立即登出</translation>
+<translation id="6045629311476491587">正由 <ph name="APP_COUNT" /> 個應用程式使用</translation>
 <translation id="6047696787498798094">切換到另一個使用者會停止共用畫面,您要繼續嗎?</translation>
 <translation id="6054305421211936131">使用智能卡登入</translation>
 <translation id="6059276912018042191">最近開啟的 Chrome 分頁</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 26f8026..a5aa5de 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -924,6 +924,7 @@
 <translation id="6040143037577758943">關閉</translation>
 <translation id="6043212731627905357">這個顯示器與你的 <ph name="DEVICE_TYPE" /> 不相容 (這是不支援的顯示器)。</translation>
 <translation id="6043994281159824495">立即登出</translation>
+<translation id="6045629311476491587">正由 <ph name="APP_COUNT" /> 個應用程式使用</translation>
 <translation id="6047696787498798094">切換到另一個使用者會停止共用螢幕,你要繼續嗎?</translation>
 <translation id="6054305421211936131">使用智慧型卡片登入</translation>
 <translation id="6059276912018042191">最近開啟的 Chrome 分頁</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb
index 96772e8b..379bbee0 100644
--- a/ash/strings/ash_strings_zu.xtb
+++ b/ash/strings/ash_strings_zu.xtb
@@ -925,6 +925,7 @@
 <translation id="6040143037577758943">Vala</translation>
 <translation id="6043212731627905357">Imonitha ayihambisani ne-<ph name="DEVICE_TYPE" /> yakho (imonitha ayisekelwe).</translation>
 <translation id="6043994281159824495">Phuma ngemvume manje</translation>
+<translation id="6045629311476491587">Kusetshenziswe ama-app angu-<ph name="APP_COUNT" /></translation>
 <translation id="6047696787498798094">Ukwabelana ngesikwini kuzomiswa uma ushintshela komunye umsebenzisi. Ingabe ufuna ukuqhubeka?</translation>
 <translation id="6054305421211936131">Ngena ngekhadi elisebenza ngobuchwepheshe besimanje</translation>
 <translation id="6059276912018042191">Amathebhu we-Chrome wakamuva</translation>
diff --git a/ash/system/accessibility/dictation_button_tray_unittest.cc b/ash/system/accessibility/dictation_button_tray_unittest.cc
index 012a7158..811a6a8 100644
--- a/ash/system/accessibility/dictation_button_tray_unittest.cc
+++ b/ash/system/accessibility/dictation_button_tray_unittest.cc
@@ -115,8 +115,8 @@
     // Focus some input text so the Dictation button will be enabled.
     fake_text_input_client_ =
         std::make_unique<ui::FakeTextInputClient>(ui::TEXT_INPUT_TYPE_TEXT);
-    ui::InputMethodAsh ime(nullptr);
-    ui::IMEBridge::Get()->SetInputContextHandler(&ime);
+    InputMethodAsh ime(nullptr);
+    IMEBridge::Get()->SetInputContextHandler(&ime);
     AshTestBase::SetUp();
     FocusTextInputClient();
   }
diff --git a/ash/system/bluetooth/bluetooth_detailed_view_controller.cc b/ash/system/bluetooth/bluetooth_detailed_view_controller.cc
index a9d5adf41..620740e 100644
--- a/ash/system/bluetooth/bluetooth_detailed_view_controller.cc
+++ b/ash/system/bluetooth/bluetooth_detailed_view_controller.cc
@@ -6,6 +6,7 @@
 
 #include "ash/constants/ash_switches.h"
 #include "ash/public/cpp/bluetooth_config_service.h"
+#include "ash/public/cpp/hats_bluetooth_revamp_trigger.h"
 #include "ash/public/cpp/system_tray_client.h"
 #include "ash/shell.h"
 #include "ash/strings/grit/ash_strings.h"
@@ -118,6 +119,10 @@
   tray_controller_->CloseBubble();  // Deletes |this|.
   Shell::Get()->system_tray_model()->client()->ShowBluetoothPairingDialog(
       /*device_address=*/absl::nullopt);
+
+  if (auto* hats_bluetooth_revamp_trigger = HatsBluetoothRevampTrigger::Get()) {
+    hats_bluetooth_revamp_trigger->TryToShowSurvey();
+  }
 }
 
 void BluetoothDetailedViewController::OnDeviceListItemSelected(
diff --git a/ash/system/bluetooth/bluetooth_detailed_view_controller_unittest.cc b/ash/system/bluetooth/bluetooth_detailed_view_controller_unittest.cc
index b7cc98ce..49de71c 100644
--- a/ash/system/bluetooth/bluetooth_detailed_view_controller_unittest.cc
+++ b/ash/system/bluetooth/bluetooth_detailed_view_controller_unittest.cc
@@ -7,6 +7,8 @@
 #include <memory>
 #include <vector>
 
+#include "ash/public/cpp/fake_hats_bluetooth_revamp_trigger_impl.h"
+#include "ash/public/cpp/hats_bluetooth_revamp_trigger.h"
 #include "ash/public/cpp/test/test_system_tray_client.h"
 #include "ash/system/bluetooth/bluetooth_detailed_view.h"
 #include "ash/system/bluetooth/bluetooth_device_list_controller.h"
@@ -116,6 +118,8 @@
         ->unified_system_tray_controller()
         ->ShowBluetoothDetailedView();
 
+    fake_trigger_impl_ = std::make_unique<FakeHatsBluetoothRevampTriggerImpl>();
+
     bluetooth_detailed_view_controller_ =
         static_cast<BluetoothDetailedViewController*>(
             GetPrimaryUnifiedSystemTray()
@@ -179,11 +183,16 @@
     return bluetooth_config_test_helper()->fake_device_operation_handler();
   }
 
+  FakeHatsBluetoothRevampTriggerImpl* fake_trigger_impl() {
+    return fake_trigger_impl_.get();
+  }
+
  private:
   ScopedBluetoothConfigTestHelper* bluetooth_config_test_helper() {
     return ash_test_helper()->bluetooth_config_test_helper();
   }
 
+  std::unique_ptr<FakeHatsBluetoothRevampTriggerImpl> fake_trigger_impl_;
   BluetoothDetailedViewController* bluetooth_detailed_view_controller_;
   FakeBluetoothDetailedViewFactory bluetooth_detailed_view_factory_;
   FakeBluetoothDeviceListControllerFactory
@@ -248,10 +257,12 @@
 }
 
 TEST_F(BluetoothDetailedViewControllerTest,
-       OnPairNewDeviceRequestedOpensBluetoothDialog) {
+       OnPairNewDeviceRequestedOpensBluetoothDialogWithHatsTrigger) {
+  EXPECT_FALSE(fake_trigger_impl()->try_to_show_survey_called());
   EXPECT_EQ(0, GetSystemTrayClient()->show_bluetooth_pairing_dialog_count());
   bluetooth_detailed_view_delegate()->OnPairNewDeviceRequested();
   EXPECT_EQ(1, GetSystemTrayClient()->show_bluetooth_pairing_dialog_count());
+  EXPECT_TRUE(fake_trigger_impl()->try_to_show_survey_called());
 }
 
 TEST_F(BluetoothDetailedViewControllerTest,
diff --git a/ash/system/ime_menu/ime_menu_tray.cc b/ash/system/ime_menu/ime_menu_tray.cc
index 83d1d0fba..36f50f26 100644
--- a/ash/system/ime_menu/ime_menu_tray.cc
+++ b/ash/system/ime_menu/ime_menu_tray.cc
@@ -105,7 +105,7 @@
 
 // Returns true if the current input context type is password.
 bool IsInPasswordInputContext() {
-  return ui::IMEBridge::Get()->GetCurrentInputContext().type ==
+  return IMEBridge::Get()->GetCurrentInputContext().type ==
          ui::TEXT_INPUT_TYPE_PASSWORD;
 }
 
diff --git a/ash/system/ime_menu/ime_menu_tray_unittest.cc b/ash/system/ime_menu/ime_menu_tray_unittest.cc
index cff1a384..06ff4834c 100644
--- a/ash/system/ime_menu/ime_menu_tray_unittest.cc
+++ b/ash/system/ime_menu/ime_menu_tray_unittest.cc
@@ -34,9 +34,8 @@
 #include "ui/events/event.h"
 #include "ui/views/controls/label.h"
 
-using base::UTF8ToUTF16;
-
 namespace ash {
+
 namespace {
 
 const int kEmojiButtonId = 1;
@@ -155,8 +154,8 @@
 
   // Focuses in the given type of input context.
   void FocusInInputContext(ui::TextInputType input_type) {
-    ui::IMEBridge::Get()->SetCurrentInputContext(
-        ui::TextInputMethod::InputContext(input_type));
+    IMEBridge::Get()->SetCurrentInputContext(
+        TextInputMethod::InputContext(input_type));
   }
 
   bool MenuHasOnScreenKeyboardToggle() const {
diff --git a/ash/webui/camera_app_ui/resources/js/device/mode/video.ts b/ash/webui/camera_app_ui/resources/js/device/mode/video.ts
index 7475e5a3b..c0cf85fd 100644
--- a/ash/webui/camera_app_ui/resources/js/device/mode/video.ts
+++ b/ash/webui/camera_app_ui/resources/js/device/mode/video.ts
@@ -612,6 +612,7 @@
     // TODO(b/191950622): Grab frames from capture stream when multistream
     // enabled.
     const video = this.video.video;
+    const videoTrack = this.getVideoTrack();
     let {videoWidth: width, videoHeight: height} = video;
     if (width > GIF_MAX_SIDE || height > GIF_MAX_SIDE) {
       const ratio = GIF_MAX_SIDE / Math.max(width, height);
@@ -622,12 +623,21 @@
     const canvas = new OffscreenCanvas(width, height);
     const context = assertInstanceof(
         canvas.getContext('2d'), OffscreenCanvasRenderingContext2D);
+    if (videoTrack.readyState === 'ended') {
+      throw new NoFrameError();
+    }
     const frames = await new Promise<number>((resolve) => {
       let encodedFrames = 0;
       let writtenFrames = 0;
+      let handle = 0;
+      function stopRecording() {
+        video.cancelVideoFrameCallback(handle);
+        videoTrack.removeEventListener('ended', stopRecording);
+        resolve(writtenFrames);
+      }
       function updateCanvas() {
         if (!state.get(state.State.RECORDING)) {
-          resolve(writtenFrames);
+          stopRecording();
           return;
         }
         encodedFrames++;
@@ -636,9 +646,10 @@
           context.drawImage(video, 0, 0, width, height);
           gifSaver.write(context.getImageData(0, 0, width, height).data);
         }
-        video.requestVideoFrameCallback(updateCanvas);
+        handle = video.requestVideoFrameCallback(updateCanvas);
       }
-      video.requestVideoFrameCallback(updateCanvas);
+      videoTrack.addEventListener('ended', stopRecording);
+      handle = video.requestVideoFrameCallback(updateCanvas);
     });
     if (frames === 0) {
       throw new NoFrameError();
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_ko.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_ko.xtb
index 1dbd99c9..6dffc5f 100644
--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_ko.xtb
+++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_ko.xtb
@@ -35,7 +35,7 @@
 <translation id="1995951722691075581">기기 저장공간이 부족하여 녹화가 중단되었습니다. 동영상을 더 녹화하려면 기기에서 여유 공간을 확보해야 합니다.</translation>
 <translation id="2022953316617983419">QR 코드</translation>
 <translation id="2036868001356139588">타이머 시간</translation>
-<translation id="2050339315714019657">세로 방향</translation>
+<translation id="2050339315714019657">인물</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> 사용 중</translation>
 <translation id="2134029355740465625">동영상 설정</translation>
 <translation id="2144806332417375165">맞춤 동영상 매개변수</translation>
@@ -47,12 +47,12 @@
 <translation id="2501278716633472235">뒤로 이동</translation>
 <translation id="2501853267655415902">녹화가 중지되었습니다.</translation>
 <translation id="2501953888035679275">카메라로 사진을 찍고 동영상을 녹화합니다.</translation>
-<translation id="2517472476991765520">검색</translation>
+<translation id="2517472476991765520">스캔</translation>
 <translation id="2549985041256363841">녹화 시작</translation>
 <translation id="2577915835281444458">녹음이 곧 중지됩니다. 기기 저장공간으로 이동하여 여유 공간을 확보하세요.</translation>
 <translation id="2599796128805996109">후면 카메라</translation>
 <translation id="2759905922487820242"><ph name="CURRENT" />/<ph name="MAXIMAL" />초</translation>
-<translation id="2761536921376153655">검색 유형</translation>
+<translation id="2761536921376153655">스캔 유형</translation>
 <translation id="28682968802727151">미러링 미리보기</translation>
 <translation id="2879583609344924966"><ph name="CAMERA" /> 카메라가 연결되었습니다.</translation>
 <translation id="2904654629665923749">문서 스캔 기능 사용 가능</translation>
@@ -71,7 +71,7 @@
 <translation id="3411958449466169012">타이머 사용 안함</translation>
 <translation id="3448774564454087943">동영상이 너무 짧아 저장할 수 없습니다.</translation>
 <translation id="346539236881580388">다시 촬영</translation>
-<translation id="3517926952904427380">세로 모드 사진을 찍을 수 없습니다.</translation>
+<translation id="3517926952904427380">인물 모드 사진을 찍을 수 없습니다.</translation>
 <translation id="3566302376254083266">왼쪽 상단으로 이동</translation>
 <translation id="3569311554794739032"><ph name="FILE" /> 파일을 삭제하시겠습니까?</translation>
 <translation id="3573890771273113519">스캔 모드로 전환</translation>
@@ -83,23 +83,23 @@
 <translation id="4060608699153044055">기기 저장공간이 부족하여 녹화할 수 없습니다. 녹화를 시작하려면 기기에서 여유 공간을 확보해야 합니다.</translation>
 <translation id="4061162772429051350"><ph name="MAGAPIXELS_AMOUNT" />MP</translation>
 <translation id="4118525110028899586">녹화 일시중지</translation>
-<translation id="4121305183798804752">문서 삭제됨</translation>
+<translation id="4121305183798804752">문서 감지됨</translation>
 <translation id="414641094616694804">이 카메라는 해상도를 변경할 수 없습니다.</translation>
 <translation id="4269820728363426813">링크 주소 복사</translation>
 <translation id="4281620174117014503">중간 해상도</translation>
 <translation id="428234092390943511">페이지 썸네일</translation>
-<translation id="4329152592498422850">스퀘어 사진 촬영으로 전환</translation>
-<translation id="4340659173795395806">이제 다중 페이지 PDF를 생성할 수 있습니다.</translation>
-<translation id="4383571725254449280">실적 로그 인쇄</translation>
+<translation id="4329152592498422850">정사각형 사진 촬영 모드로 전환</translation>
+<translation id="4340659173795395806">이제 여러 페이지로 PDF 파일을 생성할 수 있습니다.</translation>
+<translation id="4383571725254449280">성능 로그 인쇄</translation>
 <translation id="4445542136948522167">사진 촬영 중지</translation>
 <translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" />메가픽셀</translation>
 <translation id="4570032796877367747">전면 카메라</translation>
 <translation id="4598556348158889687">저장용량 관리</translation>
-<translation id="4620818268515773682">마이크 음소거를 전환합니다. 음소거가 사용 중지되었습니다</translation>
+<translation id="4620818268515773682">마이크 음소거 모드를 변경합니다. 음소거가 중지되었습니다.</translation>
 <translation id="4628948037717959914">사진</translation>
 <translation id="4649291346448517080">파일을 저장할 수 없습니다.</translation>
 <translation id="4695379108709712600">상단으로 이동</translation>
-<translation id="4705093842003735294">전체 해상도</translation>
+<translation id="4705093842003735294">최대 해상도</translation>
 <translation id="4890010094662541459">3x3</translation>
 <translation id="491895758387112773">멀티스트림 동영상 녹화</translation>
 <translation id="4984613436295737187">QHD(1440p)</translation>
@@ -175,7 +175,7 @@
 <translation id="8428213095426709021">설정</translation>
 <translation id="8629662593426079630">360p</translation>
 <translation id="8687491812650032292">HD <ph name="HEIGHT" />p(<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
-<translation id="8711011893539266636">마이크 음소거를 전환합니다. 음소거가 사용 설정되었습니다</translation>
+<translation id="8711011893539266636">마이크 음소거 모드를 변경합니다. 음소거가 설정되었습니다.</translation>
 <translation id="8712637175834984815">확인</translation>
 <translation id="8730621377337864115">완료</translation>
 <translation id="8732462232047530626">메타데이터 미리보기</translation>
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc
index 99828b8..566134b 100644
--- a/ash/wm/splitview/split_view_controller.cc
+++ b/ash/wm/splitview/split_view_controller.cc
@@ -160,9 +160,10 @@
 }
 
 ui::InputMethod* GetCurrentInputMethod() {
-  if (auto* bridge = ui::IMEBridge::Get())
+  if (auto* bridge = IMEBridge::Get()) {
     if (auto* handler = bridge->GetInputContextHandler())
       return handler->GetInputMethod();
+  }
   return nullptr;
 }
 
diff --git a/base/android/jni_generator/README.md b/base/android/jni_generator/README.md
index 6ba6c79c4..b254205d 100644
--- a/base/android/jni_generator/README.md
+++ b/base/android/jni_generator/README.md
@@ -23,26 +23,16 @@
 
 ### Exposing Native Methods
 
-**Without Crazy Linker:**
- * Java->Native calls are exported from the shared library and lazily resolved
-   by the runtime (via `dlsym()`).
+Generally Java->Native calls are exported from the shared library and lazily
+resolved by the runtime (via `dlsym()`). There are a number of notable
+exceptions to this. See usage of `jni_registration_generator.py` in the
+codebase.
 
-**With Crazy Linker:**
- * Java->Native calls are explicitly registered with JNI on the native side.
-   Explicit registration is necessary because crazy linker provides its own
-   `dlsym()`, but JNI is hardcoded to use the system's `dlsym()`.
-   * The logic to explicitly register stubs is generated by
-     `jni_registration_generator.py`.
-     * This script finds all native methods by scanning all source `.java` files
-       of an APK. Inefficient, but very convenient.
-   * Since `dlsym()` is not used in this case, we use a linker script to avoid
-     the cost of exporting symbols from the shared library (refer to
-     `//build/config/android:hide_all_but_jni_onload`).
- * `jni_registration_generator.py` exposes two registrations methods:
-   * `RegisterNonMainDexNatives` - Registers native functions needed by multiple
-     process types (e.g. Rendereres, GPU process).
-   * `RegisterMainDexNatives` - Registers native functions needed only by the
-     browser process.
+The `jni_registration_generator.py` exposes two registration methods:
+* `RegisterNonMainDexNatives` - Registers native functions needed by multiple
+  process types (e.g. Rendereres, GPU process).
+* `RegisterMainDexNatives` - Registers native functions needed only by the
+  browser process.
 
 ### Exposing Java Methods
 
@@ -263,7 +253,7 @@
  * `generate_jar_jni` - Generates a header file with stubs for a given `.jar`
    file
  * `generate_jni_registration` - Generates a header file with functions to
-   register native-side JNI methods (required only when using crazy linker).
+   register native-side JNI methods.
 
 Refer to [//build/config/android/rules.gni](https://cs.chromium.org/chromium/src/build/config/android/rules.gni)
 for more about the GN templates.
diff --git a/base/mac/authorization_util.h b/base/mac/authorization_util.h
index d02d95d3..a356765 100644
--- a/base/mac/authorization_util.h
+++ b/base/mac/authorization_util.h
@@ -29,6 +29,7 @@
 #include <sys/types.h>
 
 #include "base/base_export.h"
+#include "base/mac/scoped_authorizationref.h"
 
 namespace base::mac {
 
@@ -36,18 +37,18 @@
 // necessary, prompts the user for authentication. If the user is prompted,
 // |prompt| will be used as the prompt string and an icon appropriate for the
 // application will be displayed in a prompt dialog. Note that the system
-// appends its own text to the prompt string. |extraFlags| will be ORed
-// together with the default flags. Returns NULL on failure.
+// appends its own text to the prompt string. |extra_flags| will be ORed
+// together with the default flags. Returns null on failure.
 BASE_EXPORT
-AuthorizationRef GetAuthorizationRightsWithPrompt(
+ScopedAuthorizationRef GetAuthorizationRightsWithPrompt(
     AuthorizationRights* rights,
     CFStringRef prompt,
-    AuthorizationFlags extraFlags);
+    AuthorizationFlags extra_flags);
 
 // Obtains an AuthorizationRef (using |GetAuthorizationRightsWithPrompt|) that
 // can be used to run commands as root.
 BASE_EXPORT
-AuthorizationRef AuthorizationCreateToRunAsRoot(CFStringRef prompt);
+ScopedAuthorizationRef AuthorizationCreateToRunAsRoot(CFStringRef prompt);
 
 // Calls straight through to AuthorizationExecuteWithPrivileges.  If that
 // call succeeds, |pid| will be set to the pid of the executed tool.  If the
diff --git a/base/mac/authorization_util.mm b/base/mac/authorization_util.mm
index ad3be808..edb0faa66 100644
--- a/base/mac/authorization_util.mm
+++ b/base/mac/authorization_util.mm
@@ -22,18 +22,18 @@
 
 namespace base::mac {
 
-AuthorizationRef GetAuthorizationRightsWithPrompt(
+ScopedAuthorizationRef GetAuthorizationRightsWithPrompt(
     AuthorizationRights* rights,
     CFStringRef prompt,
-    AuthorizationFlags extraFlags) {
+    AuthorizationFlags extra_flags) {
   // Create an empty AuthorizationRef.
   ScopedAuthorizationRef authorization;
-  OSStatus status = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment,
-                                        kAuthorizationFlagDefaults,
-                                        authorization.get_pointer());
+  OSStatus status = AuthorizationCreate(
+      /*rights=*/nullptr, kAuthorizationEmptyEnvironment,
+      kAuthorizationFlagDefaults, authorization.InitializeInto());
   if (status != errAuthorizationSuccess) {
     OSSTATUS_LOG(ERROR, status) << "AuthorizationCreate";
-    return NULL;
+    return ScopedAuthorizationRef();
   }
 
   // Never consider the current WatchHangsInScope as hung. There was most likely
@@ -47,8 +47,7 @@
   AuthorizationFlags flags = kAuthorizationFlagDefaults |
                              kAuthorizationFlagInteractionAllowed |
                              kAuthorizationFlagExtendRights |
-                             kAuthorizationFlagPreAuthorize |
-                             extraFlags;
+                             kAuthorizationFlagPreAuthorize | extra_flags;
 
   // product_logo_32.png is used instead of app.icns because Authorization
   // Services can't deal with .icns files.
@@ -72,31 +71,27 @@
   AuthorizationEnvironment environment = {std::size(environment_items),
                                           environment_items};
 
-  status = AuthorizationCopyRights(authorization,
-                                   rights,
-                                   &environment,
-                                   flags,
-                                   NULL);
+  status = AuthorizationCopyRights(authorization, rights, &environment, flags,
+                                   nullptr);
 
   if (status != errAuthorizationSuccess) {
     if (status != errAuthorizationCanceled) {
       OSSTATUS_LOG(ERROR, status) << "AuthorizationCopyRights";
     }
-    return NULL;
+    return ScopedAuthorizationRef();
   }
 
-  return authorization.release();
+  return authorization;
 }
 
-AuthorizationRef AuthorizationCreateToRunAsRoot(CFStringRef prompt) {
+ScopedAuthorizationRef AuthorizationCreateToRunAsRoot(CFStringRef prompt) {
   // Specify the "system.privilege.admin" right, which allows
   // AuthorizationExecuteWithPrivileges to run commands as root.
   AuthorizationItem right_items[] = {
-    {kAuthorizationRightExecute, 0, NULL, 0}
-  };
+      {kAuthorizationRightExecute, 0, nullptr, 0}};
   AuthorizationRights rights = {std::size(right_items), right_items};
 
-  return GetAuthorizationRightsWithPrompt(&rights, prompt, 0);
+  return GetAuthorizationRightsWithPrompt(&rights, prompt, /*extra_flags=*/0);
 }
 
 OSStatus ExecuteWithPrivilegesAndGetPID(AuthorizationRef authorization,
diff --git a/base/mac/scoped_authorizationref.h b/base/mac/scoped_authorizationref.h
index fc988996..4ec1d47 100644
--- a/base/mac/scoped_authorizationref.h
+++ b/base/mac/scoped_authorizationref.h
@@ -7,29 +7,38 @@
 
 #include <Security/Authorization.h>
 
-#include "base/base_export.h"
+#include <utility>
 
-// ScopedAuthorizationRef maintains ownership of an AuthorizationRef.  It is
-// patterned after the unique_ptr interface.
+#include "base/base_export.h"
+#include "base/check.h"
+
+// `ScopedAuthorizationRef` maintains ownership of an `AuthorizationRef`.  It is
+// patterned after the `unique_ptr` interface.
 
 namespace base::mac {
 
 class BASE_EXPORT ScopedAuthorizationRef {
  public:
-  explicit ScopedAuthorizationRef(AuthorizationRef authorization = NULL)
-      : authorization_(authorization) {
-  }
+  explicit ScopedAuthorizationRef(AuthorizationRef authorization = nullptr)
+      : authorization_(authorization) {}
 
   ScopedAuthorizationRef(const ScopedAuthorizationRef&) = delete;
   ScopedAuthorizationRef& operator=(const ScopedAuthorizationRef&) = delete;
 
+  ScopedAuthorizationRef(ScopedAuthorizationRef&& that)
+      : authorization_(std::exchange(that.authorization_, nullptr)) {}
+  ScopedAuthorizationRef& operator=(ScopedAuthorizationRef&& that) {
+    authorization_ = std::exchange(that.authorization_, nullptr);
+    return *this;
+  }
+
   ~ScopedAuthorizationRef() {
     if (authorization_) {
       FreeInternal();
     }
   }
 
-  void reset(AuthorizationRef authorization = NULL) {
+  void reset(AuthorizationRef authorization = nullptr) {
     if (authorization_ != authorization) {
       if (authorization_) {
         FreeInternal();
@@ -50,24 +59,24 @@
     return authorization_;
   }
 
-  AuthorizationRef* get_pointer() { return &authorization_; }
+  // This is to be used only to take ownership of objects that are created
+  // by pass-by-pointer create functions. To enforce this, require that the
+  // object be reset to NULL before this may be used.
+  [[nodiscard]] AuthorizationRef* InitializeInto() {
+    DCHECK(!authorization_);
+    return &authorization_;
+  }
 
   AuthorizationRef get() const {
     return authorization_;
   }
 
-  void swap(ScopedAuthorizationRef& that) {
-    AuthorizationRef temp = that.authorization_;
-    that.authorization_ = authorization_;
-    authorization_ = temp;
-  }
-
   // ScopedAuthorizationRef::release() is like std::unique_ptr<>::release. It is
   // NOT a wrapper for AuthorizationFree(). To force a ScopedAuthorizationRef
   // object to call AuthorizationFree(), use ScopedAuthorizationRef::reset().
   [[nodiscard]] AuthorizationRef release() {
     AuthorizationRef temp = authorization_;
-    authorization_ = NULL;
+    authorization_ = nullptr;
     return temp;
   }
 
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1
index 230006e..d4ff946 100644
--- a/build/fuchsia/linux_internal.sdk.sha1
+++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@
-11.20221230.0.1
+11.20221231.1.1
diff --git a/chrome/VERSION b/chrome/VERSION
index d9db1e2..6852d57c 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=111
 MINOR=0
-BUILD=5509
+BUILD=5511
 PATCH=0
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java
index fa82aa190..22e33c2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java
@@ -24,8 +24,7 @@
 
     public CardUnmaskBridge(long nativeCardUnmaskPromptViewAndroid, String title,
             String instructions, String confirmButtonLabel, int cvcIconId, int googlePayIconId,
-            boolean isCardLocal, boolean isVirtualCard, boolean shouldRequestExpirationDate,
-            boolean defaultToStoringLocally, boolean shouldOfferWebauthn,
+            boolean isVirtualCard, boolean shouldRequestExpirationDate, boolean shouldOfferWebauthn,
             boolean defaultUseScreenlockChecked, long successMessageDurationMilliseconds,
             WindowAndroid windowAndroid) {
         mNativeCardUnmaskPromptViewAndroid = nativeCardUnmaskPromptViewAndroid;
@@ -37,22 +36,21 @@
             new Handler().post(() -> dismissed());
         } else {
             mCardUnmaskPrompt = new CardUnmaskPrompt(activity, this, title, instructions,
-                    confirmButtonLabel, cvcIconId, googlePayIconId, isCardLocal, isVirtualCard,
-                    shouldRequestExpirationDate, defaultToStoringLocally, shouldOfferWebauthn,
-                    defaultUseScreenlockChecked, successMessageDurationMilliseconds);
+                    confirmButtonLabel, cvcIconId, googlePayIconId, isVirtualCard,
+                    shouldRequestExpirationDate, shouldOfferWebauthn, defaultUseScreenlockChecked,
+                    successMessageDurationMilliseconds);
         }
     }
 
     @CalledByNative
     private static CardUnmaskBridge create(long nativeUnmaskPrompt, String title,
             String instructions, String confirmButtonLabel, int cvcIconId, int googlePayIconId,
-            boolean isCardLocal, boolean isVirtualCard, boolean shouldRequestExpirationDate,
-            boolean defaultToStoringLocally, boolean shouldOfferWebauthn,
+            boolean isVirtualCard, boolean shouldRequestExpirationDate, boolean shouldOfferWebauthn,
             boolean defaultUseScreenlockChecked, long successMessageDurationMilliseconds,
             WindowAndroid windowAndroid) {
         return new CardUnmaskBridge(nativeUnmaskPrompt, title, instructions, confirmButtonLabel,
-                cvcIconId, googlePayIconId, isCardLocal, isVirtualCard, shouldRequestExpirationDate,
-                defaultToStoringLocally, shouldOfferWebauthn, defaultUseScreenlockChecked,
+                cvcIconId, googlePayIconId, isVirtualCard, shouldRequestExpirationDate,
+                shouldOfferWebauthn, defaultUseScreenlockChecked,
                 successMessageDurationMilliseconds, windowAndroid);
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
index 227e303..51ec495 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
@@ -71,7 +71,6 @@
     private final TextView mVerificationView;
     private final long mSuccessMessageDurationMilliseconds;
     private final int mGooglePayDrawableId;
-    private final boolean mIsCardLocal;
     private final boolean mIsVirtualCard;
 
     private int mThisYear;
@@ -147,13 +146,11 @@
 
     public CardUnmaskPrompt(Context context, CardUnmaskPromptDelegate delegate, String title,
             String instructions, String confirmButtonLabel, int cvcDrawableId,
-            int googlePayDrawableId, boolean isCardLocal, boolean isVirtualCard,
-            boolean shouldRequestExpirationDate, boolean defaultToStoringLocally,
+            int googlePayDrawableId, boolean isVirtualCard, boolean shouldRequestExpirationDate,
             boolean shouldOfferWebauthn, boolean defaultUseScreenlockChecked,
             long successMessageDurationMilliseconds) {
         mDelegate = delegate;
         mGooglePayDrawableId = googlePayDrawableId;
-        mIsCardLocal = isCardLocal;
         mIsVirtualCard = isVirtualCard;
 
         LayoutInflater inflater = LayoutInflater.from(context);
@@ -161,6 +158,7 @@
         mInstructions = (TextView) v.findViewById(R.id.instructions);
         mInstructions.setText(instructions);
         mTitleView = (TextView) v.findViewById(R.id.title);
+        updateTitleForCustomView(title, context);
 
         mMainView = v;
         mNoRetryErrorMessage = (TextView) v.findViewById(R.id.no_retry_error_message);
@@ -185,13 +183,6 @@
         ((ImageView) v.findViewById(R.id.cvc_hint_image)).setImageResource(cvcDrawableId);
 
         Resources resources = context.getResources();
-        String modalDialogTitle = null;
-        if (isCardLocal) {
-            mTitleView.setVisibility(View.GONE);
-            modalDialogTitle = title;
-        } else {
-            updateTitleForCustomView(title, context);
-        }
         PropertyModel.Builder dialogModelBuilder =
                 new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
                         .with(ModalDialogProperties.CONTROLLER, this)
@@ -199,9 +190,6 @@
                         .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, confirmButtonLabel)
                         .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
                                 R.string.cancel);
-        if (modalDialogTitle != null) {
-            dialogModelBuilder.with(ModalDialogProperties.TITLE, modalDialogTitle);
-        }
         mDialogModel = dialogModelBuilder.build();
 
         mShouldRequestExpirationDate = shouldRequestExpirationDate;
@@ -284,12 +272,7 @@
     }
 
     public void update(String title, String instructions, boolean shouldRequestExpirationDate) {
-        if (mIsCardLocal) {
-            mDialogModel.set(ModalDialogProperties.TITLE, title);
-        } else {
-            updateTitleForCustomView(title, mContext);
-            mDialogModel.set(ModalDialogProperties.CUSTOM_VIEW, mMainView);
-        }
+        updateTitleForCustomView(title, mContext);
         mInstructions.setText(instructions);
         mShouldRequestExpirationDate = shouldRequestExpirationDate;
         if (mShouldRequestExpirationDate && (mThisYear == -1 || mThisMonth == -1)) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
index c093281..a9e70ec5 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
@@ -690,7 +690,6 @@
     @SmallTest
     @Feature({"Preferences"})
     @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4)
-    @DisabledTest(message = "https://crbug.com/1395173")
     public void testSiteExceptionSiteDataBlocked() throws Exception {
         setGlobalToggleForCategory(SiteSettingsCategory.Type.SITE_DATA, true);
 
diff --git a/chrome/app/resources/chromium_strings_af.xtb b/chrome/app/resources/chromium_strings_af.xtb
index 9ed6beb..ecef180 100644
--- a/chrome/app/resources/chromium_strings_af.xtb
+++ b/chrome/app/resources/chromium_strings_af.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium het kameratoestemming vir hierdie werf nodig</translation>
 <translation id="7196312274710523067">Kon nie Chromium begin nie. Probeer weer.</translation>
 <translation id="7197677400338048821">Chromium kan nie jou wagwoorde nagaan nie. Probeer weer ná 24 uur.</translation>
-<translation id="7218568399872925918">Werwe wat jy besoek, onthou jou inligting totdat jy Chromium toemaak</translation>
 <translation id="7223968959479464213">Taakbestuurder – Chromium</translation>
 <translation id="7246575524853130370">Jou belangstellings soos geskat deur Chromium</translation>
 <translation id="7309928523159922338">Advertensiemeting stel werwe wat jy besoek in staat om inligting van Chromium af te versoek wat die werf help om die werkverrigting van hul advertensies te meet. Advertensiemeting beperk oorkruiswerfnasporing deur so min inligting moontlik tussen werwe oor te dra.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Kon weens 'n ongespesifiseerde fout nie installeer nie. Laai Chromium asseblief weer af.</translation>
 <translation id="8697124171261953979">Dit beheer ook watter bladsy gewys word wanneer jy Chromium begin of vanuit die omnikassie soek.</translation>
 <translation id="8704119203788522458">Dit is jou Chromium</translation>
-<translation id="8713679423359107094">Webkoekies en werfdata word outomaties uitgevee wanneer jy alle Chromium-vensters toemaak</translation>
-<translation id="8796443464227412154">Jy sal <ph name="BEGIN_BOLD" />by die meeste werwe afgemeld word<ph name="END_BOLD" /> wanneer jy Chromium toemaak. As sinkronisering af is, sal jy ook <ph name="BEGIN_BOLD" />by Google-dienste en Chromium afgemeld word<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium het toestemming nodig om toegang te kry tot jou kamera en mikrofoon vir hierdie werf</translation>
 <translation id="8833697763442816810">Chromium-bedryfstelsel</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Watter data gebruik word:<ph name="END_BOLD" /> Jou blaaigeskiedenis, ’n rekord van werwe wat jy besoek het deur Chromium op hierdie toestel te gebruik.</translation>
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb
index e78813c..9e02d4cd 100644
--- a/chrome/app/resources/chromium_strings_am.xtb
+++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium ለዚህ ጣቢያ የካሜራ ፈቃድ ያስፈልገዋል</translation>
 <translation id="7196312274710523067">Chromiumን ማስጀመር አልተቻለም። እንደገና ይሞክሩ።</translation>
 <translation id="7197677400338048821">Chromium የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም። ከ24 ሰዓቶች በኋላ እንደገና ይሞክሩ።</translation>
-<translation id="7218568399872925918">እርስዎ የጎበኟቸው ጣቢያዎች Chromiumን እስኪዘጉ ድረስ መረጃዎን ያስታውሳሉ</translation>
 <translation id="7223968959479464213">ተግባር መሪ - Chromium</translation>
 <translation id="7246575524853130370">በChromium የተገመቱ የእርስዎ ዝንባሌዎች</translation>
 <translation id="7309928523159922338">የማስታወቂያ ልኬት እርስዎ የሚጎበኟቸው ጣቢያዎች የማስታወቂያዎቻቸውን አፈጻጸም የሚለካው ጣቢያ የሚያግዘውን መረጃ ከChromium እንዲጠይቁ ያስችላቸዋል። የማስታወቂያ ልኬት በተቻለ መጠን ትንሽ መረጃን በጣቢያዎች መካከል በማስተላለፍ የጣቢያ ተሻጋሪ ክትትልን ይገድባል።</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">ተለይቶ ባልታወቀ ስህተት ምክንያት ጭነት ከሽፏል። እባክዎ Chromiumን እንደገና ያውርዱ።</translation>
 <translation id="8697124171261953979">እንዲሁም Chromiumን ሲጀምሩት ወይም ከኦምኒቦክሱ ሆነው ሲፈልጉ የሚታየውን ገጽ ይቆጣጠራል።</translation>
 <translation id="8704119203788522458">ይሄ የእርስዎ Chromium ነው</translation>
-<translation id="8713679423359107094">ሁሉንም የChromium መስኮቶች ሲዘጉ፣ ኩኪዎች እና የጣቢያ ውሂብ በራስሰር ይጸዳሉ</translation>
-<translation id="8796443464227412154">Chromiumን ሲዘጉ <ph name="BEGIN_BOLD" />ከብዙ ጣቢያዎች ዘግተው እንዲወጡ<ph name="END_BOLD" /> ይደረጋሉ። ማስመር ጠፍቶ ከሆነ <ph name="BEGIN_BOLD" />ከGoogle አገልግሎቶች እና Chromium<ph name="END_BOLD" /> ዘግተው እንዲወጡ ይደረጋሉ።</translation>
 <translation id="8796602469536043152">Chromium ለዚህ ጣቢያ የእርስዎን ካሜራ እና ማይክሮፎን ለመድረስ ፈቃድ ያስፈልገዋል</translation>
 <translation id="8833697763442816810">የChromiumOS ስርዓት</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />ምን ውሂብ ጥቅም ላይ እንደሚውል፦<ph name="END_BOLD" /> የአሰሳ ታሪክዎ፣ በዚህ መሣሪያ ላይ Chromiumን ተጠቅመው የጎበኟቸው የጣቢያዎች መዝገብ።</translation>
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb
index 00ffc8f..1f71bdd 100644
--- a/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -279,7 +279,6 @@
 <translation id="718435575166326686">‏يحتاج Chromium إلى إذن للوصول إلى الكاميرا من أجل هذا الموقع الإلكتروني.</translation>
 <translation id="7196312274710523067">‏تعذَّر إطلاق Chromium. يُرجى إعادة المحاولة.</translation>
 <translation id="7197677400338048821">‏يتعذّر على Chromium التحقُّق من كلمات المرور. يُرجى إعادة المحاولة بعد 24 ساعة.</translation>
-<translation id="7218568399872925918">‏تحتفظ المواقع الإلكترونية التي تزورها بمعلوماتك إلى أن تغلق متصفّح Chromium.</translation>
 <translation id="7223968959479464213">‏إدارة المهام - Chromium</translation>
 <translation id="7246575524853130370">‏قائمة اهتماماتك وفقًا لتقدير Chromium</translation>
 <translation id="7309928523159922338">‏يسمح Ad measurement للمواقع الإلكترونية التي تنتقل إليها بطلب معلومات من Chromium تساعد الموقع الإلكتروني في قياس أداء الإعلانات التي يعرضها. ويحدّ Ad measurement من عملية تتبّع البيانات ونشاط التصفّح على المواقع الإلكترونية، وذلك من خلال نقل أقل قدر ممكن من المعلومات بينها.</translation>
@@ -351,8 +350,6 @@
 <translation id="8621669128220841554">‏تعذّر التثبيت نظرًا لحدوث خطأ غير محدد. يُرجى إعادة تنزيل Chromium.</translation>
 <translation id="8697124171261953979">‏كما أنها تتحكم في الصفحة التي تظهر عند تشغيل Chromium أو إجراء بحث من المربع متعدد الاستخدامات.</translation>
 <translation id="8704119203788522458">‏هذا هو Chromium الخاص بك</translation>
-<translation id="8713679423359107094">‏عند إغلاق جميع نوافذ Chromium، يتم تلقائيًا محو ملفات تعريف الارتباط وبيانات المواقع الإلكترونية.</translation>
-<translation id="8796443464227412154">‏سيتم <ph name="BEGIN_BOLD" />تسجيل خروجك من معظم المواقع الإلكترونية<ph name="END_BOLD" /> عند إغلاق متصفّح Chromium. إذا كانت المزامنة متوقّفة، سيتم أيضًا <ph name="BEGIN_BOLD" />تسجيل خروجك من خدمات Google ومتصفّح Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">‏يحتاج Chromium إلى إذن للوصول إلى الكاميرا والميكروفون من أجل الموقع الإلكتروني هذا.</translation>
 <translation id="8833697763442816810">‏نظام التشغيل Chromium</translation>
 <translation id="8846118132221683440">‏<ph name="BEGIN_BOLD" />البيانات المستخدَمة:<ph name="END_BOLD" /> سجلّ تصفّحك، وهو سجل يشمل المواقع الإلكترونية التي زرتها باستخدام Chromium على هذا الجهاز.</translation>
diff --git a/chrome/app/resources/chromium_strings_as.xtb b/chrome/app/resources/chromium_strings_as.xtb
index 5e441c17..b27f1b8b 100644
--- a/chrome/app/resources/chromium_strings_as.xtb
+++ b/chrome/app/resources/chromium_strings_as.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromiumক এই ছাইটটোৰ বাবে কেমেৰাৰ অনুমতিৰ আৱশ্যক</translation>
 <translation id="7196312274710523067">Chromium লন্স কৰিব পৰা নগ’ল। পুনৰ চেষ্টা কৰক।</translation>
 <translation id="7197677400338048821">Chromiumএ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব নোৱাৰে। ২৪ ঘণ্টাৰ পাছত পুনৰ চেষ্টা কৰক।</translation>
-<translation id="7218568399872925918">আপুনি Chromium বন্ধ নকৰালৈকে আপুনি চোৱা ছাইটসমূহে আপোনাৰ তথ্য মনত ৰাখে</translation>
 <translation id="7223968959479464213">কাৰ্য পৰিচালক - Chromium</translation>
 <translation id="7246575524853130370">Chromiumএ অনুমান কৰা অনুসৰি আপোনাৰ আগ্ৰহ</translation>
 <translation id="7309928523159922338">বিজ্ঞাপনৰ জোখ-মাখে আপুনি যিবিলাক ছাইটলৈ যায়, সেইবিলাকক Chromiumৰ পৰা তথ্য অনুৰোধ কৰাৰ অনুমতি দিয়ে, যিটোৱে ছাইটটোক নিজৰ বিজ্ঞাপনৰ কাৰ্যক্ষমতা জোখাত সহায় কৰে। বিজ্ঞাপনৰ জোখ-মাখে ছাইটবিলাকৰ মাজত যিমান পাৰি কম তথ্য স্থানান্তৰণৰ জৰিয়তে ক্ৰছ-ছাইট ট্ৰেকিং সীমিত কৰে।</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">অনির্দিষ্ট আসোঁৱাহৰ বাবে ইনষ্টলেশ্বন কৰিব পৰা নগ’ল। অনুগ্ৰহ কৰি পুনৰ Chromium ডাউনল’ড কৰক।</translation>
 <translation id="8697124171261953979">এইটোৱে আপুনি Chromiumৰ ব্যৱহাৰ আৰম্ভ কৰিলে বা Omniboxৰ পৰা সন্ধান কৰিলে কি পৃষ্ঠা খোল খাব সেয়া নিয়ন্ত্ৰণ কৰে।</translation>
 <translation id="8704119203788522458">এইটো আপোনাৰ Chromium</translation>
-<translation id="8713679423359107094">আপুনি Chromiumৰ আটাইবোৰ ৱিণ্ড’ বন্ধ কৰিলে কুকি আৰু ছাইটৰ ডেটা স্বয়ংক্ৰিয়ভাৱে মচা হয়</translation>
-<translation id="8796443464227412154">আপুনি Chromium বন্ধ কৰিলে আপোনাক <ph name="BEGIN_BOLD" />বেছিভাগ ছাইটৰ পৰা ছাইন আউট কৰোৱা হ’ব<ph name="END_BOLD" />। যদি ছিংক অফ কৰা থাকে, আপোনাক লগতে <ph name="BEGIN_BOLD" />Googleৰ সেৱা আৰু Chromiumৰ পৰা ছাইন আউট কৰোৱা হ’ব<ph name="END_BOLD" />।</translation>
 <translation id="8796602469536043152">এই ছাইটটোত আপোনাৰ কেমেৰা আৰু মাইক্ৰ’ফ’ন এক্সেছ কৰিবলৈ Chromiumক অনুমতিৰ আৱশ্যক</translation>
 <translation id="8833697763442816810">ChromiumOS ছিষ্টেম</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />কি ডেটা ব্যৱহাৰ কৰা হয়:<ph name="END_BOLD" /> আপোনাৰ ব্ৰাউজিঙৰ ইতিহাস, আপুনি এই ডিভাইচটোত Chromium ব্যৱহাৰ কৰি চোৱা ছাইটৰ ৰেকৰ্ড।</translation>
diff --git a/chrome/app/resources/chromium_strings_az.xtb b/chrome/app/resources/chromium_strings_az.xtb
index 59c0f92..45cc698b 100644
--- a/chrome/app/resources/chromium_strings_az.xtb
+++ b/chrome/app/resources/chromium_strings_az.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium bu sayt üçün kamera icazəsi tələb edir</translation>
 <translation id="7196312274710523067">Chromium başlamadı. Yenidən sınayın.</translation>
 <translation id="7197677400338048821">Chromium parollarınızı yoxlaya bilmir. 24 saatdan sonra yenidən cəhd edin.</translation>
-<translation id="7218568399872925918">Ziyarət etdiyiniz saytlar Chromium'u bağlayana qədər məlumatlarınızı xatırlayır</translation>
 <translation id="7223968959479464213">Tapşırıq Meneceri - Chromium</translation>
 <translation id="7246575524853130370">Chromium tərəfindən təxmin edilən maraqlarınız</translation>
 <translation id="7309928523159922338">Reklamın ölçülməsi ziyarət etdiyiniz saytlara Chromium'dan sayta reklamlarının performansını ölçməyə kömək edən məlumat tələb etməyə imkan verir. Reklamın ölçülməsi saytlar arasında mümkün qədər az məlumat ötürməklə saytlararası izləməni məhdudlaşdırır.</translation>
@@ -352,8 +351,6 @@
 <translation id="8621669128220841554">Naməlum xəta üzündən quraşdırmaq alınmadı. Chromium'u yenidən endirin.</translation>
 <translation id="8697124171261953979">O, həmçinin Chromium'u başlatdığınız zaman və ya Omnibox'dan axtarış etdiyiniz zaman göstərilən səhifəyə nəzarət edir.</translation>
 <translation id="8704119203788522458">Bu, Sizin Chromium'dur</translation>
-<translation id="8713679423359107094">Bütün Chromium pəncərələrini bağladığınız zaman kukilər və sayt datası avtomatik olaraq silinir</translation>
-<translation id="8796443464227412154">Chromium'u bağladıqda <ph name="BEGIN_BOLD" />əksər saytlardan<ph name="END_BOLD" /> çıxacaqsınız. Sinxronizasiya deaktivdirsə <ph name="BEGIN_BOLD" />Google xidmətlərindən və Chromium'dan da çıxacaqsınız<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium bu sayt üçün kamera və mikrofona giriş icazəsi tələb edir</translation>
 <translation id="8833697763442816810">ChromiumOS sistemi</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Hansı data istifadə olunur:<ph name="END_BOLD" /> Baxış tarixçəniz, bu cihazda Chromium istifadə edərək ziyarət etdiyiniz saytların qeydi.</translation>
diff --git a/chrome/app/resources/chromium_strings_be.xtb b/chrome/app/resources/chromium_strings_be.xtb
index 09a0854d..a8d4636c 100644
--- a/chrome/app/resources/chromium_strings_be.xtb
+++ b/chrome/app/resources/chromium_strings_be.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium запытвае дазвол на доступ да камеры для гэтага сайта</translation>
 <translation id="7196312274710523067">Не атрымалася запусціць Chromium. Паўтарыце спробу.</translation>
 <translation id="7197677400338048821">Браўзеру Chromium не ўдаецца праверыць паролі. Паўтарыце спробу праз 24 гадзіны.</translation>
-<translation id="7218568399872925918">Сайты, якія вы наведваеце, захоўваюць вашы даныя, пакуль вы не закрыеце Chromium</translation>
 <translation id="7223968959479464213">Менеджар заданняў – Chromium</translation>
 <translation id="7246575524853130370">Вашы інтарэсы паводле ацэнкі браўзера Chromium</translation>
 <translation id="7309928523159922338">Тэхналогія вымярэння паказчыкаў, звязаных з рэкламай, дазваляе сайтам, якія вы наведваеце, запытваць інфармацыю ў Chromium, каб выкарыстоўваць яе для ацэнкі эфектыўнасці сваёй рэкламы. Яна таксама абмяжоўвае механізмы адсочвання паводзін на розных сайтах, перадаючы паміж імі мінімальны аб'ём інфармацыі.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Збой усталявання з-за нявызначанай памылкі. Спампуйце Chromium зноў.</translation>
 <translation id="8697124171261953979">Таксама вызначае, якая старонка паказваецца пры запуску Chromium або пошуку з амнібокса.</translation>
 <translation id="8704119203788522458">Гэта ваш Chromium</translation>
-<translation id="8713679423359107094">Калі вы закрыеце ўсе вокны Chromium, файлы cookie і даныя сайтаў будуць аўтаматычна выдалены</translation>
-<translation id="8796443464227412154">Калі вы закрыеце Chromium, вы <ph name="BEGIN_BOLD" />выйдзеце з большасці сайтаў<ph name="END_BOLD" />. Калі сінхранізацыя выключана, вы таксама <ph name="BEGIN_BOLD" />выйдзеце з сэрвісаў Google і браўзера Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium запытвае доступ да камеры і мікрафона для гэтага сайта</translation>
 <translation id="8833697763442816810">Сістэма Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Якія даныя выкарыстоўваюцца:<ph name="END_BOLD" /> гісторыя прагляду сайтаў – інфармацыя пра сайты, якія вы наведалі праз Chromium на гэтай прыладзе.</translation>
diff --git a/chrome/app/resources/chromium_strings_bg.xtb b/chrome/app/resources/chromium_strings_bg.xtb
index 05e8ec6d..1016e02 100644
--- a/chrome/app/resources/chromium_strings_bg.xtb
+++ b/chrome/app/resources/chromium_strings_bg.xtb
@@ -279,7 +279,6 @@
 <translation id="718435575166326686">За този сайт Chromium се нуждае от разрешение за достъп до камерата</translation>
 <translation id="7196312274710523067">Chromium не можа да се стартира. Опитайте отново.</translation>
 <translation id="7197677400338048821">Chromium не може да провери паролите ви. Опитайте отново след 24 часа.</translation>
-<translation id="7218568399872925918">Сайтовете, които посещавате, помнят информацията ви, докато затворите Chromium</translation>
 <translation id="7223968959479464213">Диспечер на задачите – Chromium</translation>
 <translation id="7246575524853130370">Вашите интереси според прогнозата на Chromium</translation>
 <translation id="7309928523159922338">Функцията за измерване на рекламите дава възможност на сайтовете да искат от Chromium информация, с чиято помощ да измерват ефективността на рекламите си. Тази функция ограничава проследяването в различни сайтове, като между тях се прехвърля възможно най-малко информация.</translation>
@@ -349,8 +348,6 @@
 <translation id="8621669128220841554">Инсталирането не бе успешно поради неизвестна грешка. Моля, изтеглете отново Chromium.</translation>
 <translation id="8697124171261953979">То също контролира коя страница се показва при стартиране на Chromium или при търсене от полето за всичко.</translation>
 <translation id="8704119203788522458">Това е вашият Chromium</translation>
-<translation id="8713679423359107094">Когато затворите прозорците на Chromium, „бисквитките“ и данните за сайтовете автоматично се изчистват</translation>
-<translation id="8796443464227412154">Когато затворите Chromium, <ph name="BEGIN_BOLD" />ще излезете от повечето сайтове<ph name="END_BOLD" />. Ако синхронизирането е изключено, <ph name="BEGIN_BOLD" />ще излезете и от услугите на Google и Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium се нуждае от разрешение за достъп до камерата и микрофона ви за този сайт</translation>
 <translation id="8833697763442816810">Система Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Какви данни се използват<ph name="END_BOLD" />: Вашата история на сърфиране – списък на сайтовете, които сте посетили чрез Chromium на това устройство.</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb
index c0c212c03..71c24c5a 100644
--- a/chrome/app/resources/chromium_strings_bn.xtb
+++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -281,7 +281,6 @@
 <translation id="718435575166326686">এই সাইটের জন্য Chromium-এর ক্যামেরা অ্যাক্সেসের অনুমতি প্রয়োজন</translation>
 <translation id="7196312274710523067">Chromium চালু করা যায়নি। আবার চেষ্টা করুন।</translation>
 <translation id="7197677400338048821">Chromium আপনার পাসওয়ার্ড চেক করতে পারছে না। ২৪ ঘণ্টা পরে আবার চেষ্টা করুন।</translation>
-<translation id="7218568399872925918">Chromium বন্ধ না করা পর্যন্ত আপনি যেসব সাইট ঘুরে দেখেন, সেগুলি আপনার তথ্য মনে রাখে</translation>
 <translation id="7223968959479464213">টাস্ক ম্যানেজার - Chromium</translation>
 <translation id="7246575524853130370">আপনার আগ্রহ Chromium দ্বারা অনুমান করা হয়েছে</translation>
 <translation id="7309928523159922338">বিজ্ঞাপন পরিমাপ আপনি যে সাইটগুলিতে যান সেগুলিকে Chrome থেকে তথ্যের অনুরোধ করার অনুমতি দেয় যা সাইটটিকে তাদের বিজ্ঞাপনের পারফর্ম্যান্স পরিমাপ করতে সহায়তা করে। বিজ্ঞাপন পরিমাপ, সাইটগুলির মধ্যে একটি থেকে অন্যটিতে যতটা সম্ভব কম তথ্য ট্রান্সফার করার মাধ্যমে ক্রস-সাইট ট্র্যাকিং সীমাবদ্ধ করে।</translation>
@@ -353,8 +352,6 @@
 <translation id="8621669128220841554">অনির্দিষ্ট ত্রুটির কারণে ইনস্টল করা যায়নি৷ অনুগ্রহ করে Chromium আবার ডাউনলোড করুন৷</translation>
 <translation id="8697124171261953979">আপনি Chromium শুরু করলে বা Omnibox থেকে সার্চ করলে কোন পৃষ্ঠাটি দেখানো হবে তাও এটি নিয়ন্ত্রণ করে।</translation>
 <translation id="8704119203788522458">এটি হল আপনার Chromium</translation>
-<translation id="8713679423359107094">আপনি সব Chromium উইন্ডো বন্ধ করে দিলে, কুকি এবং সাইট ডেটা অটোমেটিক বন্ধ হয়ে যাবে</translation>
-<translation id="8796443464227412154">Chromium বন্ধ করে দেওয়া হলে আপনাকে <ph name="BEGIN_BOLD" />বেশিরভাগ সাইট থেকে সাইন-আউট করে<ph name="END_BOLD" /> দেওয়া হবে। সিঙ্ক করার বিকল্প বন্ধ করা থাকলে আপনার অ্যাকাউন্ট <ph name="BEGIN_BOLD" />Google পরিষেবা এবং Chromium থেকে সাইন-আউট করে<ph name="END_BOLD" /> দেওয়া হবে।</translation>
 <translation id="8796602469536043152">এই সাইটটির জন্য Chromium কে আপনার ক্যামেরা এবং মাইক্রোফোনে অ্যাক্সেস দিতে হবে</translation>
 <translation id="8833697763442816810">ChromiumOS সিস্টেম</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />কোন ডেটা ব্যবহার করা হয়:<ph name="END_BOLD" /> আপনার ব্রাউজিং ইতিহাস, এই ডিভাইসে Chromium ব্যবহার করে আপনি যে সাইটগুলি ভিজিট করেছেন তার একটি রেকর্ড।</translation>
diff --git a/chrome/app/resources/chromium_strings_bs.xtb b/chrome/app/resources/chromium_strings_bs.xtb
index 741a986c..6002150 100644
--- a/chrome/app/resources/chromium_strings_bs.xtb
+++ b/chrome/app/resources/chromium_strings_bs.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromiumu je za ovu web lokaciju potrebno odobrenje za kameru</translation>
 <translation id="7196312274710523067">Pokretanje Chromiuma nije uspjelo. Pokušajte ponovo.</translation>
 <translation id="7197677400338048821">Chromium ne može provjeravati vaše lozinke. Pokušajte ponovo za 24 sata.</translation>
-<translation id="7218568399872925918">Web lokacije koje posjetite pamte vaše podatke dok ne zatvorite Chromium</translation>
 <translation id="7223968959479464213">Upravitelj zadataka za Chromium</translation>
 <translation id="7246575524853130370">Vaša interesovanja prema Chromiumovoj procjeni</translation>
 <translation id="7309928523159922338">Mjerenje oglasa omogućava web lokacijama koje posjećujete da zatraže informaciju iz Chromiuma koja će im pomoći da izmjere performanse svojih oglasa. Mjerenje oglasa ograničava unakrsno praćenje web lokacija prenoseći minimalnu količinu informacija između njih.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Instalacija nije uspjela zbog neodređene greške. Ponovo preuzmite Chromium.</translation>
 <translation id="8697124171261953979">Također kontrolira koja stranica će se prikazati kada pokrenete Chromium ili budete pretraživali iz višenamjenskog okvira.</translation>
 <translation id="8704119203788522458">Ovo je vaš Chromium</translation>
-<translation id="8713679423359107094">Kada zatvorite sve prozore Chromiuma, kolačići i podaci web lokacija se automatski brišu</translation>
-<translation id="8796443464227412154"><ph name="BEGIN_BOLD" />Odjavit ćete se s većine web lokacija<ph name="END_BOLD" /> kada zatvorite Chromium. Ako je sinhronizacija isključena, također ćete se <ph name="BEGIN_BOLD" />odjaviti s Googleovih usluga i Chromiuma<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium traži odobrenje za pristup vašoj kameri i mikrofonu na ovoj web lokaciji</translation>
 <translation id="8833697763442816810">Sistem ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Koji podaci se koriste:<ph name="END_BOLD" /> vaša historija pregledanja, zapisi o web lokacijama koje ste posjetili koristeći Chromium na ovom uređaju.</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb
index 40bd503..61dd7da 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium necessita permís d'accés a la càmera per a aquest lloc web</translation>
 <translation id="7196312274710523067">No s'ha pogut iniciar Chromium. Torna-ho a provar.</translation>
 <translation id="7197677400338048821">Chromium no pot comprovar les teves contrasenyes. Torna-ho a provar al cap de 24 hores.</translation>
-<translation id="7218568399872925918">Els llocs web que visites recorden la teva informació fins que tanques Chromium.</translation>
 <translation id="7223968959479464213">Gestor de tasques: Chromium</translation>
 <translation id="7246575524853130370">Els teus interessos segons les estimacions de Chromium</translation>
 <translation id="7309928523159922338">El mesurament d'anuncis permet als llocs web que visites sol·licitar informació de Chromium que els ajudi a mesurar el rendiment dels anuncis. El mesurament d'anuncis restringeix el seguiment entre llocs web transferint la quantitat mínima possible d'informació entre llocs web.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">La instal·lació ha fallat a causa d'un error no especificat. Torneu a baixar Chromium.</translation>
 <translation id="8697124171261953979">També controla la pàgina que es mostra quan inicieu Chromium o quan feu una cerca des de l'omnibox.</translation>
 <translation id="8704119203788522458">Aquest és el vostre Chromium</translation>
-<translation id="8713679423359107094">Quan tanques totes les finestres de Chromium, les galetes i les dades de llocs web s'esborren automàticament.</translation>
-<translation id="8796443464227412154">Quan tanquis Chromium, se't <ph name="BEGIN_BOLD" />tancarà la sessió de la majoria de llocs web<ph name="END_BOLD" />. Si la sincronització està desactivada, també se't <ph name="BEGIN_BOLD" />tancarà la sessió de Chromium i dels serveis de Google<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Per visitar aquest lloc web, Chromium necessita permís per accedir a la càmera i al micròfon</translation>
 <translation id="8833697763442816810">Sistema Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Quines dades s'utilitzen<ph name="END_BOLD" />: el teu historial de navegació, que és un registre dels llocs web que has visitat amb Chromium en aquest dispositiu.</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index b2944a8..d853ef4 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium pro tento web potřebuje přístup k fotoaparátu</translation>
 <translation id="7196312274710523067">Chromium nelze spustit. Zkuste to znovu.</translation>
 <translation id="7197677400338048821">Chromium nemůže zkontrolovat hesla. Zkuste to znovu za 24 hodin.</translation>
-<translation id="7218568399872925918">Navštívené weby si pamatují vaše údaje, dokud Chromium nezavřete</translation>
 <translation id="7223968959479464213">Správce úloh – Chromium</translation>
 <translation id="7246575524853130370">Vaše zájmy podle odhadu Chromium</translation>
 <translation id="7309928523159922338">Měření reklam umožňuje navštíveným webům žádat Chromium o informace, na základě kterých mohou měřit výkonnost svých reklam. Měření reklam zabraňuje sledování mezi weby, protože se při něm mezi weby přenáší co možná nejméně informací.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Instalace se z neznámého důvodu nezdařila. Stáhněte prosím Chromium znovu.</translation>
 <translation id="8697124171261953979">Také řídí, která stránka se zobrazí po spuštění prohlížeče Chromium nebo při vyhledávání v omniboxu.</translation>
 <translation id="8704119203788522458">Toto je váš prohlížeč Chromium</translation>
-<translation id="8713679423359107094">Když zavřete všechna okna prohlížeče Chromium, automaticky se vymažou soubory cookie a data webů</translation>
-<translation id="8796443464227412154">Po zavření prohlížeče Chromium budete <ph name="BEGIN_BOLD" />odhlášeni z většiny webů<ph name="END_BOLD" />. Pokud je vypnutá synchronizace, budete také <ph name="BEGIN_BOLD" />odhlášeni ze služeb Google a z prohlížeče Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium pro tento web potřebuje oprávnění k přístupu k fotoaparátu a mikrofonu</translation>
 <translation id="8833697763442816810">Systém ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Jaké údaje používáme:<ph name="END_BOLD" /> Vaši historii prohlížení, což je seznam webů, které jste navštívili v Chromiu na tomto zařízení.</translation>
diff --git a/chrome/app/resources/chromium_strings_cy.xtb b/chrome/app/resources/chromium_strings_cy.xtb
index b55bde1..61dc2fd 100644
--- a/chrome/app/resources/chromium_strings_cy.xtb
+++ b/chrome/app/resources/chromium_strings_cy.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Mae angen caniatâd camera ar Chromium ar gyfer y wefan hon</translation>
 <translation id="7196312274710523067">Methu â lansio Chromium. Rhowch gynnig arall arni.</translation>
 <translation id="7197677400338048821">Ni all Chromium wirio'ch cyfrineiriau. Rhowch gynnig arall arni ar ôl 24 awr.</translation>
-<translation id="7218568399872925918">Mae gwefannau rydych yn ymweld â nhw yn cofio'ch gwybodaeth nes i chi gau Chromium</translation>
 <translation id="7223968959479464213">Rheolydd Tasgau - Chromium</translation>
 <translation id="7246575524853130370">Eich diddordebau fel yr amcangyfrifir gan Chromium</translation>
 <translation id="7309928523159922338">Mae Mesur hysbysebion yn caniatáu i wefannau rydych yn ymweld â nhw ofyn am wybodaeth o Chromium sy'n helpu'r wefan i fesur perfformiad eu hysbysebion. Mae Mesur hysbysebion yn cyfyngu ar olrhain traws-wefan drwy drosglwyddo cyn lleied o wybodaeth â phosib rhwng gwefannau.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Methwyd y gosodiad oherwydd gwall amhenodol. Lawrlwythwch Chromium eto.</translation>
 <translation id="8697124171261953979">Mae hefyd yn rheoli pa dudalen sy'n cael ei dangos pan fyddwch yn cychwyn Chromium neu'n chwilio o'r Omniflwch.</translation>
 <translation id="8704119203788522458">Dyma eich Chromium</translation>
-<translation id="8713679423359107094">Pan fyddwch yn cau holl ffenestri Chromium, mae cwcis a data gwefan yn cael eu clirio'n awtomatig</translation>
-<translation id="8796443464227412154">Byddwch yn cael eich <ph name="BEGIN_BOLD" />allgofnodi o'r mwyafrif o wefannau<ph name="END_BOLD" /> pan fyddwch yn cau Chromium. Os yw cysoni wedi'i ddiffodd, byddwch hefyd yn cael eich <ph name="BEGIN_BOLD" />allgofnodi o wasanaethau Google a Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Mae angen caniatâd ar Chromium i gael mynediad at eich camera a'ch meicroffon ar gyfer y wefan hon</translation>
 <translation id="8833697763442816810">System ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Pa ddata a ddefnyddir:<ph name="END_BOLD" /> Eich hanes pori, cofnod o wefannau rydych wedi ymweld â nhw drwy ddefnyddio Chromium ar y ddyfais hon.</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb
index 35c43c5..b6c243b8 100644
--- a/chrome/app/resources/chromium_strings_da.xtb
+++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium skal have adgangstilladelse til kamera for at bruge dette website</translation>
 <translation id="7196312274710523067">Chromium kunne ikke startes. Prøv igen.</translation>
 <translation id="7197677400338048821">Chromium kan ikke tjekke dine adgangskoder. Prøv igen efter 24 timer.</translation>
-<translation id="7218568399872925918">Websites, du besøger, husker dine oplysninger, indtil du lukker Chromium</translation>
 <translation id="7223968959479464213">Jobliste – Chromium</translation>
 <translation id="7246575524853130370">Dine interesser, sådan som de er estimeret af Chromium</translation>
 <translation id="7309928523159922338">Ad measurement giver websites, du besøger, mulighed for at anmode om oplysninger fra Chromium, som hjælper websitet med at måle, hvor godt dets annoncer klarer sig. Ad measurement begrænser sporing på tværs af websites ved at overføre så få oplysninger som muligt mellem websites.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">Installationen mislykkedes på grund af en uspecificeret fejl. Download Chromium igen.</translation>
 <translation id="8697124171261953979">Den styrer også, hvilken side der vises, når du åbner Chromium eller søger via omnifeltet.</translation>
 <translation id="8704119203788522458">Dette er din Chromium-browser</translation>
-<translation id="8713679423359107094">Når du lukker alle Chromium-vinduer, ryddes cookies og websitedata automatisk</translation>
-<translation id="8796443464227412154">Du <ph name="BEGIN_BOLD" />logges ud af de fleste websites<ph name="END_BOLD" />, når du lukker Chromium. Hvis synkronisering er deaktiveret, <ph name="BEGIN_BOLD" />logges du desuden ud af Googles tjenester og Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium skal have tilladelse til at bruge dit kamera og din mikrofon på dette website</translation>
 <translation id="8833697763442816810">Chromium OS-system</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Disse data bruges:<ph name="END_BOLD" /> Din browserhistorik, dvs. en oversigt over, hvilke websites du har besøgt i Chromium på denne enhed.</translation>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb
index 947d294..e81cf18 100644
--- a/chrome/app/resources/chromium_strings_de.xtb
+++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium benötigt die Kameraberechtigung für diese Website</translation>
 <translation id="7196312274710523067">Chromium konnte nicht gestartet werden. Versuche es noch einmal.</translation>
 <translation id="7197677400338048821">Chromium kann deine Passwörter nicht prüfen. Bitte versuche es in 24 Stunden noch einmal.</translation>
-<translation id="7218568399872925918">Websites, die du besuchst, speichern deine Daten, bis du Chromium schließt</translation>
 <translation id="7223968959479464213">Task-Manager - Chromium</translation>
 <translation id="7246575524853130370">Deine von Chromium geschätzten Interessen</translation>
 <translation id="7309928523159922338">Mithilfe der Anzeigenanalyse können von dir besuchte Websites Informationen von Chromium anfordern, mit denen sie die Leistung ihrer Werbung analysieren können. Durch die Anzeigenanalyse wird das websiteübergreifende Tracking eingeschränkt, indem so wenig Informationen wie möglich zwischen Websites ausgetauscht werden.</translation>
@@ -354,8 +353,6 @@
 <translation id="8621669128220841554">Die Installation konnte aufgrund eines undefinierten Fehlers nicht abgeschlossen werden. Bitte lade Chromium erneut herunter.</translation>
 <translation id="8697124171261953979">Die Erweiterung legt auch fest, welche Seite beim Start von Chromium oder bei der Suche über die Omnibox angezeigt wird.</translation>
 <translation id="8704119203788522458">Dies ist dein persönlicher Chromium-Browser</translation>
-<translation id="8713679423359107094">Wenn du alle Chromium-Fenster schließt, werden alle Cookies und Websitedaten automatisch gelöscht</translation>
-<translation id="8796443464227412154">Du wirst <ph name="BEGIN_BOLD" />auf den meisten Websites abgemeldet<ph name="END_BOLD" />, wenn du Chromium schließt. Wenn die Synchronisierung deaktiviert ist, wirst du auch <ph name="BEGIN_BOLD" />bei Google-Diensten und Chromium abgemeldet<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium benötigt für diese Website die Berechtigung, auf deine Kamera und dein Mikrofon zuzugreifen</translation>
 <translation id="8833697763442816810">Chromium OS-System</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Welche Daten werden verwendet?<ph name="END_BOLD" /> Dein Browserverlauf, das heißt eine Liste der von dir auf diesem Gerät in Chromium besuchten Websites.</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb
index 1f95a59..3c3611f 100644
--- a/chrome/app/resources/chromium_strings_el.xtb
+++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Το Chromium χρειάζεται άδεια κάμερας για αυτόν τον ιστότοπο.</translation>
 <translation id="7196312274710523067">Δεν ήταν δυνατή η εκκίνηση του Chromium. Προσπάθησε ξανά.</translation>
 <translation id="7197677400338048821">Το Chromium δεν μπορεί να ελέγξει τους κωδικούς πρόσβασής σας. Δοκιμάστε ξανά σε 24 ώρες.</translation>
-<translation id="7218568399872925918">Οι ιστότοποι που επισκέπτεστε απομνημονεύουν τις πληροφορίες σας έως ότου κλείσετε το Chromium.</translation>
 <translation id="7223968959479464213">Διαχείριση Εργασιών - Chromium</translation>
 <translation id="7246575524853130370">Τα ενδιαφέροντά σας σύμφωνα με την εκτίμηση του Chromium</translation>
 <translation id="7309928523159922338">Η Μέτρηση διαφημίσεων επιτρέπει στους ιστοτόπους που επισκέπτεστε να ζητούν πληροφορίες από το Chromium που βοηθούν τον ιστότοπο να μετρήσει την απόδοση των διαφημίσεών του. Η Μέτρηση διαφημίσεων περιορίζει την παρακολούθηση μεταξύ ιστοτόπων μεταφέροντας όσο το δυνατόν λιγότερες πληροφορίες μεταξύ των ιστοτόπων.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">Η εγκατάσταση απέτυχε λόγω μη καθορισμένου σφάλματος. Κατεβάστε το Chromium ξανά.</translation>
 <translation id="8697124171261953979">Επίσης, ελέγχει τη σελίδα που εμφανίζεται κατά την εκκίνηση του Chromium ή όταν κάνετε αναζήτηση από το κύριο πλαίσιο.</translation>
 <translation id="8704119203788522458">Ορίστε το δικό σας Chromium</translation>
-<translation id="8713679423359107094">Όταν κλείνετε όλα τα παράθυρα του Chromium, τα cookie και τα δεδομένα ιστοτόπων διαγράφονται αυτόματα.</translation>
-<translation id="8796443464227412154">Θα <ph name="BEGIN_BOLD" />αποσυνδέεστε από τους περισσότερους ιστοτόπους<ph name="END_BOLD" /> όταν κλείνετε το Chromium. Εάν ο συγχρονισμός είναι ανενεργός, θα <ph name="BEGIN_BOLD" />αποσυνδέεστε επίσης από τις υπηρεσίες Google και το Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Το Chromium χρειάζεται άδεια, για να αποκτήσει πρόσβαση στην κάμερα και στο μικρόφωνο για αυτόν τον ιστότοπο</translation>
 <translation id="8833697763442816810">Σύστημα Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Ποια δεδομένα χρησιμοποιούνται:<ph name="END_BOLD" /> Το ιστορικό περιήγησής σας, ένα αρχείο των ιστοτόπων που έχετε επισκεφτεί χρησιμοποιώντας το Chromium σε αυτήν τη συσκευή.</translation>
diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb
index 66bb007..14a3b8b 100644
--- a/chrome/app/resources/chromium_strings_en-GB.xtb
+++ b/chrome/app/resources/chromium_strings_en-GB.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium needs camera permission for this site</translation>
 <translation id="7196312274710523067">Couldn't launch Chromium. Try again.</translation>
 <translation id="7197677400338048821">Chromium can't check your passwords. Try again after 24 hours.</translation>
-<translation id="7218568399872925918">Sites that you visit remember your information until you close Chromium</translation>
 <translation id="7223968959479464213">Task Manager - Chromium</translation>
 <translation id="7246575524853130370">Your interests as estimated by Chromium</translation>
 <translation id="7309928523159922338">Ad measurement allows sites that you visit to request information from Chromium that helps the site measure the performance of their ads. Ad measurement restricts cross-site tracking by transferring as little information as possible between sites.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Installation failed due to unspecified error. Please download Chromium again.</translation>
 <translation id="8697124171261953979">It also controls what page is shown when you start Chromium or search from the Omnibox.</translation>
 <translation id="8704119203788522458">This is your Chromium</translation>
-<translation id="8713679423359107094">When you close all Chromium windows, cookies and site data are automatically cleared</translation>
-<translation id="8796443464227412154">You will be <ph name="BEGIN_BOLD" />signed out of most sites<ph name="END_BOLD" /> when you close Chromium. If sync is off, you will also be <ph name="BEGIN_BOLD" />signed out of Google services and Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium needs permission to access your camera and microphone for this site</translation>
 <translation id="8833697763442816810">Chromium OS system</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />What data is used:<ph name="END_BOLD" /> Your browsing history, a record of sites that you’ve visited using Chromium on this device.</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb
index 935d81f..a5971ab 100644
--- a/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -279,7 +279,6 @@
 <translation id="718435575166326686">Chromium necesita permiso de acceso a la cámara para este sitio.</translation>
 <translation id="7196312274710523067">No se pudo iniciar Chromium. Vuelve a intentarlo.</translation>
 <translation id="7197677400338048821">Chromium no puede revisar las contraseñas. Vuelve a intentarlo después de 24 horas.</translation>
-<translation id="7218568399872925918">Los sitios que visitas recordarán tu información hasta que cierres Chromium</translation>
 <translation id="7223968959479464213">Administrador de tareas - Chromium</translation>
 <translation id="7246575524853130370">Tus intereses estimados por Chromium</translation>
 <translation id="7309928523159922338">La medición de anuncios les permite a los sitios que visitas solicitar información a Chromium a fin de medir el rendimiento de los anuncios. La medición de anuncios restringe el seguimiento entre sitios web, ya que se transfiere la menor cantidad de información posible entre sitios.</translation>
@@ -349,8 +348,6 @@
 <translation id="8621669128220841554">La instalación falló debido a un error no especificado. Descarga Chromium otra vez.</translation>
 <translation id="8697124171261953979">También controla qué página se muestra al iniciar Chromium o al realizar búsquedas desde el cuadro multifunción.</translation>
 <translation id="8704119203788522458">Este es tu Chromium</translation>
-<translation id="8713679423359107094">Cuando cierres todas las ventanas de Chromium, se borrarán automáticamente las cookies y los datos de sitios</translation>
-<translation id="8796443464227412154"><ph name="BEGIN_BOLD" />Saldrás de la mayoría de los sitios<ph name="END_BOLD" /> cuando cierres Chromium. Si la sincronización está desactivada, también <ph name="BEGIN_BOLD" />saldrás de los servicios de Google y Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium necesita permiso para acceder a tu cámara y micrófono para este sitio</translation>
 <translation id="8833697763442816810">Sistema de Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Qué información se usa:<ph name="END_BOLD" /> Tu historial de navegación, un registro de los sitios que visitaste con Chromium en este dispositivo.</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb
index 5e823ab..5abc196d4 100644
--- a/chrome/app/resources/chromium_strings_es.xtb
+++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium necesita el permiso de la cámara para este sitio</translation>
 <translation id="7196312274710523067">No se ha podido iniciar Chromium. Inténtalo de nuevo.</translation>
 <translation id="7197677400338048821">Chromium no puede comprobar tus contraseñas. Vuelve a intentarlo en 24 horas.</translation>
-<translation id="7218568399872925918">Los sitios que visitas recuerdan tu información hasta que cierras Chromium</translation>
 <translation id="7223968959479464213">Administrador de tareas - Chromium</translation>
 <translation id="7246575524853130370">Tus intereses estimados por Chromium</translation>
 <translation id="7309928523159922338">La medición de anuncios permite a los sitios que visitas pedir a Chromium información que les ayude a medir el rendimiento de sus anuncios. La medición de anuncios restringe el seguimiento entre sitios al transferir la menor cantidad de información posible entre ellos.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">La instalación ha fallado debido a un error no especificado. Vuelve a descargar Chromium.</translation>
 <translation id="8697124171261953979">También controla qué página se muestra al iniciar Chromium o al hacer búsquedas desde el omnibox.</translation>
 <translation id="8704119203788522458">Aquí tienes tu navegador Chromium</translation>
-<translation id="8713679423359107094">Cuando cierras todas las ventanas de Chromium, las cookies y los datos de sitios se borran automáticamente</translation>
-<translation id="8796443464227412154">Cuando cierres Chromium, <ph name="BEGIN_BOLD" />se cerrará tu sesión en la mayoría de los sitios<ph name="END_BOLD" />. Si la sincronización está desactivada, también <ph name="BEGIN_BOLD" />se cerrará tu sesión de los servicios de Google y de Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium necesita permiso para acceder a la cámara y al micrófono en este sitio web</translation>
 <translation id="8833697763442816810">Sistema ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Qué datos se usan:<ph name="END_BOLD" /> tu historial de navegación, un registro de los sitios que has visitado usando Chromium en este dispositivo.</translation>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb
index 3aa05466..5aab4e8 100644
--- a/chrome/app/resources/chromium_strings_et.xtb
+++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium vajab selle saidi puhul kaamera kasutamise luba</translation>
 <translation id="7196312274710523067">Chromiumi ei õnnestunud käivitada. Proovige uuesti.</translation>
 <translation id="7197677400338048821">Chromium ei saa teie paroole kontrollida. Proovige uuesti 24 tunni pärast.</translation>
-<translation id="7218568399872925918">Külastatud saidid jätavad teie teabe meelde, kuni Chromiumi sulgete</translation>
 <translation id="7223968959479464213">Tegumihaldur – Chromium</translation>
 <translation id="7246575524853130370">Teie huvid Chromiumi prognooside kohaselt</translation>
 <translation id="7309928523159922338">Reklaamide mõõtmine võimaldab külastatavatel saitidel paluda Chromiumilt teavet, mis aitab saidil oma reklaamide toimivust mõõta. Reklaamide mõõtmine piirab saitidevahelist jälgimist, edastades saitide vahel võimalikult vähe teavet.</translation>
@@ -354,8 +353,6 @@
 <translation id="8621669128220841554">Installimine ebaõnnestus tundmatu vea tõttu. Laadige Chromium uuesti alla.</translation>
 <translation id="8697124171261953979">Lisaks juhib see seda, mis leht kuvatakse Chromiumi käivitamisel või omnikastikeses otsingu tegemisel.</translation>
 <translation id="8704119203788522458">See on teie Chromium</translation>
-<translation id="8713679423359107094">Kui sulgete kõik Chromiumi aknad, kustutatakse küpsised ja saidi andmed automaatselt</translation>
-<translation id="8796443464227412154">Kui Chromiumi sulgete, <ph name="BEGIN_BOLD" />logitakse teid enamikult saitidelt välja<ph name="END_BOLD" />. Kui sünkroonimine on välja lülitatud, <ph name="BEGIN_BOLD" />logitakse teid välja ka Google'i teenustest ja Chromiumist<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium vajab selle saidi puhul luba, et teie kaamerale ja mikrofonile juurde pääseda</translation>
 <translation id="8833697763442816810">Chromium OS-i süsteem</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Milliseid andmeid kasutatakse?<ph name="END_BOLD" /> Teie sirvimisajalugu, selles seadmes Chromiumiga külastatud saitide andmed.</translation>
diff --git a/chrome/app/resources/chromium_strings_eu.xtb b/chrome/app/resources/chromium_strings_eu.xtb
index 3e35e77a..00f6384 100644
--- a/chrome/app/resources/chromium_strings_eu.xtb
+++ b/chrome/app/resources/chromium_strings_eu.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium-ek kamera atzitzeko baimena behar du webgune honetan</translation>
 <translation id="7196312274710523067">Ezin izan da abiarazi Chromium. Saiatu berriro.</translation>
 <translation id="7197677400338048821">Chromium-ek ezin ditu egiaztatu pasahitzak. Saiatu berriro 24 ordu barru.</translation>
-<translation id="7218568399872925918">Bisitatzen dituzun webguneek zure informazioa gogoratzen dute Chromium itxi arte</translation>
 <translation id="7223968959479464213">Ataza-kudeatzailea - Chromium</translation>
 <translation id="7246575524853130370">Chromium-ek estimatu dizkizun interesak</translation>
 <translation id="7309928523159922338">Iragarkien neurketari esker, bisitatzen dituzun webguneek Chromium-i informazioa eska diezaiokete. Informazio horren bidez, webguneek beren iragarkien errendimendua neur dezakete. Webguneen artean ahalik eta informazio gutxien transferituta mugatzen du iragarkien neurketak webguneen arteko jarraipena.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Instalazioak huts egin du zehaztu gabeko errore batengatik. Deskargatu Chromium berriro.</translation>
 <translation id="8697124171261953979">Chromium hasten duzunean edo Omnibox-etik bilaketak egiten dituzunean erakusten den orria ere kontrolatzen du.</translation>
 <translation id="8704119203788522458">Hau da zure Chromium arakatzailea</translation>
-<translation id="8713679423359107094">Chromium-eko leiho guztiak ixten dituzunean, automatikoki garbituko dira cookieak eta webguneetako datuak</translation>
-<translation id="8796443464227412154"><ph name="BEGIN_BOLD" />Webgune gehienen saioa amaitu egingo da<ph name="END_BOLD" /> Chromium ixtean. Sinkronizazioa desaktibatuta badago, <ph name="BEGIN_BOLD" />Google-ren zerbitzuen eta Chromium-en saioak ere amaituko<ph name="END_BOLD" /> dira.</translation>
 <translation id="8796602469536043152">Chromium-ek webgune honen izenean kamera eta mikrofonoa atzitzeko baimena behar du</translation>
 <translation id="8833697763442816810">Chromium OS sistema</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Zein datu erabiltzen dira?<ph name="END_BOLD" /> Zure arakatze-historia eta gailu hau erabili bitartean Chromium-en bidez bisitatutako webguneen erregistro bat.</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
index 064aada..0a8d6cc 100644
--- a/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">‏Chromium برای این سایت به اجازه دوربین نیاز دارد</translation>
 <translation id="7196312274710523067">‏Chromium راه‌اندازی نشد. دوباره امتحان کنید.</translation>
 <translation id="7197677400338048821">‏Chromium نمی‌تواند گذرواژه‌هایتان را بررسی کند. بعد از ۲۴ ساعت دوباره امتحان کنید.</translation>
-<translation id="7218568399872925918">‏تا زمانی‌که Chromium بسته نشود، سایت‌هایی که بازدید می‌کنید اطلاعاتتان را به‌خاطر می‌سپارند</translation>
 <translation id="7223968959479464213">‏مدیر وظایف - Chromium</translation>
 <translation id="7246575524853130370">‏علایق شما به‌طوری‌که Chromium برآورد کرده است</translation>
 <translation id="7309928523159922338">‏سنجش آگهی به سایت‌هایی که بازدید می‌کنید امکان می‌دهد اطلاعاتی را از Chromium درخواست کنند که به آن‌ها کمک می‌کند عملکرد آگهی‌هایشان را بسنجند. «سنجش آگهی» ردیابی بین‌سایتی را با انتقال حداقل اطلاعات ممکن بین سایت‌ها محدود می‌کند.</translation>
@@ -353,8 +352,6 @@
 <translation id="8621669128220841554">‏به دلیل خطای نامشخص، نصب ناموفق بود. لطفاً دوباره Chromium را بارگیری کنید.</translation>
 <translation id="8697124171261953979">‏این برنامه همچنین صفحه‌ای را که هنگام راه‌اندازی Chromium یا جستجو از Omnibox نشان داده می‌شود، کنترل می‌کند.</translation>
 <translation id="8704119203788522458">‏این Chromium شماست</translation>
-<translation id="8713679423359107094">‏با بستن همه پنجره‌های Chromium، کوکی‌ها و داده‌های سایت به‌طور خودکار پاک می‌شوند.</translation>
-<translation id="8796443464227412154">‏وقتی Chromium را می‌بندید، <ph name="BEGIN_BOLD" />از سیستم اکثر سایت‌ها خارج می‌شوید<ph name="END_BOLD" />. اگر همگام‌سازی خاموش باشد، از <ph name="BEGIN_BOLD" />از سیستم Chromium و سرویس‌های Google نیز خارج می‌شوید<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">‏Chromium به مجوز دسترسی به دوربین و میکروفون برای این سایت نیاز دارد</translation>
 <translation id="8833697763442816810">‏سیستم ChromiumOS</translation>
 <translation id="8846118132221683440">‏<ph name="BEGIN_BOLD" />انواع داده‌هایی که استفاده می‌شود:<ph name="END_BOLD" /> سابقه مرور شما، سابقه سایت‌هایی که بااستفاده از Chromium در این دستگاه از آن‌ها بازدید کرده‌اید.</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index dfff5cf0..6d644ea4 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium tarvitsee kameran luvan tällä sivustolla</translation>
 <translation id="7196312274710523067">Chromiumin käynnistäminen epäonnistui. Yritä uudelleen.</translation>
 <translation id="7197677400338048821">Chromium ei voi tarkistaa salasanojasi. Yritä uudelleen 24 tunnin päästä.</translation>
-<translation id="7218568399872925918">Avaamasi sivustot muistavat tietosi, kunnes suljet Chromiumin</translation>
 <translation id="7223968959479464213">Tehtävänhallinta - Chromium</translation>
 <translation id="7246575524853130370">Chromiumin arvio kiinnostuksen kohteistasi</translation>
 <translation id="7309928523159922338">Mainosten mittaamisen avulla käyttämäsi sivustot voivat pyytää Chromiumilta tietoja, jotka auttavat mittaamaan sivustoilla näkyvien mainosten suoriutumista. Mainosten mittaaminen rajoittaa sivustojen välistä seurantaa siirtämällä mahdollisimman vähän tietoja sivustojen välillä.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">Asennus epäonnistui määrittelemättömän virheen vuoksi. Lataa Chromium uudelleen.</translation>
 <translation id="8697124171261953979">Määrittää myös Chromiumin ja omnibox-hakujen aloitussivun.</translation>
 <translation id="8704119203788522458">Tämä on oma Chromiumisi</translation>
-<translation id="8713679423359107094">Kun suljet kaikki Chromium-ikkunat, evästeet ja sivustodata tyhjennetään automaattisesti</translation>
-<translation id="8796443464227412154">Kun suljet Chromiumin, sinut <ph name="BEGIN_BOLD" />kirjataan ulos useimmilta sivustoilta<ph name="END_BOLD" />. Jos synkronointi on pois päältä, sinut <ph name="BEGIN_BOLD" />kirjataan ulos myös Googlen palveluista ja Chromiumista<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium tarvitsee oikeuden käyttää kameraasi ja mikrofoniasi tällä sivustolla.</translation>
 <translation id="8833697763442816810">Chromium-käyttöjärjestelmä</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Mitä dataa käytetään:<ph name="END_BOLD" /> Selaushistoriaasi eli tietoa sivustoista, jotka olet avannut Chromiumissa tällä laitteella</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index 444e2a7..2176729 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Kailangan ng Chromium ng pahintulot sa camera para sa site na ito</translation>
 <translation id="7196312274710523067">Hindi mailunsad ang Chromium. Subukang muli.</translation>
 <translation id="7197677400338048821">Hindi masuri ng Chromium ang iyong mga password. Subukan ulit pagkalipas ng 24 na oras.</translation>
-<translation id="7218568399872925918">Naaalala ng mga site na binibisita mo ang iyong impormasyon hanggang sa isara mo ang Chromium</translation>
 <translation id="7223968959479464213">Task Manager - Chromium</translation>
 <translation id="7246575524853130370">Iyong mga interes tulad ng tinatantya ng Chromium</translation>
 <translation id="7309928523159922338">Nagbibigay-daan ang pagsukat ng ad sa mga site na binibisita mo na humiling ng impormasyon mula sa Chromium na tumutulong sa site na sukatin ang performance ng mga ad ng mga ito. Pinaghihigpitan ng pagsukat ng ad ang cross-site na pagsubaybay sa pamamagitan ng paglilipat ng kaunting impormasyon hangga't posible sa pagitan ng mga site.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Nabigo ang pag-install dahil sa hindi natukoy na error. Mangyaring i-download muli ang Chromium.</translation>
 <translation id="8697124171261953979">Kinokontrol din nito kung anong pahina ang ipinapakita kapag sinimulan mo ang Chromium o naghanap mula sa Omnibox.</translation>
 <translation id="8704119203788522458">Ito ang iyong Chromium</translation>
-<translation id="8713679423359107094">Kapag isinara mo ang lahat ng window ng Chromium, awtomatikong maki-clear ang cookies at data ng site</translation>
-<translation id="8796443464227412154"><ph name="BEGIN_BOLD" />Masa-sign out ka sa karamihan ng mga site<ph name="END_BOLD" /> kapag isinara mo ang Chromium. Kung naka-off ang pag-sync, <ph name="BEGIN_BOLD" />masa-sign out ka sa mga serbisyo ng Google at Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Kailangan ng Chromium ng pahintulot na i-access ang iyong camera at mikropono para sa site na ito</translation>
 <translation id="8833697763442816810">ChromiumOS System</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Anong data ang ginagamit:<ph name="END_BOLD" /> Iyong history ng pag-browse, record ng mga site na binisita mo gamit ang Chromium sa device na ito.</translation>
diff --git a/chrome/app/resources/chromium_strings_fr-CA.xtb b/chrome/app/resources/chromium_strings_fr-CA.xtb
index e3459bf..8aa6f0fc 100644
--- a/chrome/app/resources/chromium_strings_fr-CA.xtb
+++ b/chrome/app/resources/chromium_strings_fr-CA.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium requiert l'autorisation d'accéder à l'appareil photo pour ce site</translation>
 <translation id="7196312274710523067">Impossible de lancer Chromium. Réessayez.</translation>
 <translation id="7197677400338048821">Chromium ne peut pas vérifier vos mots de passe. Réessayez dans 24 heures.</translation>
-<translation id="7218568399872925918">Les sites que vous consultez gardent vos informations en mémoire tant que vous ne fermez pas Chromium</translation>
 <translation id="7223968959479464213">Gestionnaire de tâches – Chromium</translation>
 <translation id="7246575524853130370">Vos centres d'intérêt estimés par Chromium</translation>
 <translation id="7309928523159922338">La mesure des annonces permet aux sites que vous visitez de demander des informations à Chromium afin de leur permettre de mesurer la performance de leurs annonces. La mesure des annonces limite les suivis intersites en transférant le moins d'informations possible entre les sites.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Échec de l'installation en raison d'une erreur non spécifiée. Veuillez télécharger Chromium à nouveau.</translation>
 <translation id="8697124171261953979">Elle définit également quelle page s'affiche lorsque vous démarrez Chromium ou que vous effectuez une recherche dans l'omnibox.</translation>
 <translation id="8704119203788522458">Voici votre Chromium</translation>
-<translation id="8713679423359107094">Lorsque vous fermez toutes les fenêtres de Chromium, les témoins et les données relatives aux sites sont automatiquement effacés</translation>
-<translation id="8796443464227412154">Vous serez <ph name="BEGIN_BOLD" />déconnecté de la plupart des sites<ph name="END_BOLD" /> lorsque vous fermerez Chromium. Si la synchronisation est désactivée, vous serez également <ph name="BEGIN_BOLD" />déconnecté des services Google et de Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium a besoin de votre autorisation pour accéder à votre appareil photo et à votre micro pour ce site</translation>
 <translation id="8833697763442816810">Système Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Quelles données sont utilisées :<ph name="END_BOLD" /> votre historique de navigation, soit un enregistrement des sites que vous avez visités à l'aide de Chromium sur cet appareil.</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb
index d5d9e25..62cf41f 100644
--- a/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium a besoin de l'autorisation d'accéder à la caméra pour ce site</translation>
 <translation id="7196312274710523067">Impossible de lancer Chromium. Réessayez.</translation>
 <translation id="7197677400338048821">Chromium ne parvient pas à vérifier vos mots de passe. Réessayez dans 24 heures.</translation>
-<translation id="7218568399872925918">Les sites que vous consultez gardent vos informations en mémoire tant que vous ne fermez pas Chromium</translation>
 <translation id="7223968959479464213">Gestionnaire de tâches – Chromium</translation>
 <translation id="7246575524853130370">Vos centres d'intérêt estimés par Chromium</translation>
 <translation id="7309928523159922338">Ad Measurement autorise les sites que vous consultez à demander à Chromium des informations pour les aider à mesurer les performances de leurs annonces. Cette API limite le suivi intersites en transférant le minimum d'informations entre les sites.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Échec de l'installation en raison d'une erreur non spécifiée. Veuillez télécharger Chromium à nouveau.</translation>
 <translation id="8697124171261953979">Elle contrôle également la page qui s'affiche au démarrage de Chromium ou lorsque vous effectuez une recherche dans l'omnibox.</translation>
 <translation id="8704119203788522458">Voici votre Chromium</translation>
-<translation id="8713679423359107094">Lorsque vous fermez toutes les fenêtres Chromium, les cookies et les données des sites sont effacés automatiquement</translation>
-<translation id="8796443464227412154">Vous serez <ph name="BEGIN_BOLD" />déconnecté de la plupart des sites<ph name="END_BOLD" /> lorsque vous fermerez Chromium. Si la synchronisation est désactivée, vous serez aussi <ph name="BEGIN_BOLD" />déconnecté des services Google et de Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium a besoin de votre autorisation pour accéder à votre appareil photo et à votre micro pour ce site</translation>
 <translation id="8833697763442816810">Système Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Quelles sont les données utilisées<ph name="END_BOLD" /> : votre historique de navigation, qui liste tous les sites que vous avez consultés dans Chromium sur cet appareil.</translation>
diff --git a/chrome/app/resources/chromium_strings_gl.xtb b/chrome/app/resources/chromium_strings_gl.xtb
index f73e660..dc5ef7a 100644
--- a/chrome/app/resources/chromium_strings_gl.xtb
+++ b/chrome/app/resources/chromium_strings_gl.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium necesita permiso de acceso á cámara para este sitio</translation>
 <translation id="7196312274710523067">Non se puido iniciar Chromium. Téntao de novo.</translation>
 <translation id="7197677400338048821">Chromium non puido comprobar os teus contrasinais. Téntao de novo dentro de 24 horas.</translation>
-<translation id="7218568399872925918">Os sitios que visites lembran a túa información ata que pechas Chromium</translation>
 <translation id="7223968959479464213">Xestor de tarefas: Chromium</translation>
 <translation id="7246575524853130370">Os teus intereses estimados por Chromium</translation>
 <translation id="7309928523159922338">A medición dos anuncios permite que os sitios que visites lle soliciten a Chromium información que lles axude a medir o rendemento dos seus anuncios. Ademais, restrinxe o seguimento en varios sitios, dado que se transfire a menor cantidade posible de información entre eles.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Non se puido efectuar a instalación debido a un erro. Volve descargar Chromium.</translation>
 <translation id="8697124171261953979">Tamén controla a páxina que se mostra ao iniciar Chromium ou ao realizar unha busca desde Omnibox.</translation>
 <translation id="8704119203788522458">Este é o teu Chromium</translation>
-<translation id="8713679423359107094">Cando pechas todas as ventás de Chromium, as cookies e os datos dos sitios bórranse automaticamente</translation>
-<translation id="8796443464227412154"><ph name="BEGIN_BOLD" />Pecharase a túa sesión na maioría dos sitios<ph name="END_BOLD" /> cando cerres Chromium. Se a sincronización está desactivada, tamén se <ph name="BEGIN_BOLD" />pechará a túa sesión nos servizos de Google e en Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium necesita permiso para acceder á cámara e ao micrófono neste sitio</translation>
 <translation id="8833697763442816810">Sistema Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Que datos se usan?<ph name="END_BOLD" /> O teu historial de navegación e un rexistro dos sitios que visitases usando Chromium neste dispositivo.</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb
index 70cf8633..3f607bd 100644
--- a/chrome/app/resources/chromium_strings_gu.xtb
+++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">આ સાઇટ માટે Chromiumને કૅમેરાની પરવાનગીની જરૂર છે</translation>
 <translation id="7196312274710523067">Chromium લૉન્ચ કરી શકાયું નથી. ફરી પ્રયાસ કરો.</translation>
 <translation id="7197677400338048821">Chromium તમારા પાસવર્ડ ચેક કરી શકતું નથી. 24 કલાક પછી ફરી પ્રયાસ કરો.</translation>
-<translation id="7218568399872925918">તમે મુલાકાત લો છો એ બધી સાઇટ તમે Chromium બંધ કરો નહીં, ત્યાં સુધી તમારી માહિતી યાદ રાખે છે</translation>
 <translation id="7223968959479464213">કાર્ય વ્યવસ્થાપક - Chromium</translation>
 <translation id="7246575524853130370">Chromium દ્વારા અનુમાન લગાવ્યા મુજબની તમારી રુચિઓ</translation>
 <translation id="7309928523159922338">Ad measurement તમે જેની મુલાકાત લો છો તે સાઇટને Chromium પાસેથી માહિતીની વિનંતી કરવાની મંજૂરી આપે છે, જે સાઇટને તેની જાહેરાતોનું કાર્યપ્રદર્શન માપવામાં સહાય કરે છે. Ad measurement સાઇટ વચ્ચે શક્ય તેટલી ઓછી માહિતી ટ્રાન્સફર કરીને, સાઇટ દ્વારા પરસ્પરના ટ્રૅકિંગને પ્રતિબંધિત કરે છે.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">અનુલ્લેખિત ભૂલને કારણે ઇન્સ્ટોલેશન નિષ્ફળ રહ્યું. કૃપા કરીને Chromium ફરીથી ડાઉનલોડ કરો.</translation>
 <translation id="8697124171261953979">જ્યારે તમે Chromium શરૂ કરો અથવા ઑમ્નિબૉક્સ પરથી શોધ કરો ત્યારે કયું પેજ બતાવવામાં આવે તે તેનું પણ નિયંત્રણ કરે છે.</translation>
 <translation id="8704119203788522458">આ તમારું Chromium છે</translation>
-<translation id="8713679423359107094">જ્યારે તમે Chromiumની બધી વિન્ડો બંધ કરશો, ત્યારે કુકી અને સાઇટનો ડેટા ઑટોમૅટિક રીતે સાફ થઈ જશે</translation>
-<translation id="8796443464227412154">તમે Chromium બંધ કરશો, ત્યારે તમને <ph name="BEGIN_BOLD" />મોટાભાગની બધી સાઇટમાંથી સાઇન આઉટ<ph name="END_BOLD" /> કરવામાં આવશે. જો સિંક કરવાની સુવિધા બંધ હશે, તો તમને <ph name="BEGIN_BOLD" />Googleની સેવાઓ અને Chromiumમાંથી પણ સાઇન આઉટ<ph name="END_BOLD" /> કરવામાં આવશે.</translation>
 <translation id="8796602469536043152">Chromiumને આ સાઇટ માટે તમારા કૅમેરા અને માઇક્રોફોનના ઍક્સેસની પરવાનગીની જરૂર પડે છે</translation>
 <translation id="8833697763442816810">ChromiumOS સિસ્ટમ</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />કયા ડેટાનો ઉપયોગ કરવામાં આવે છે:<ph name="END_BOLD" /> તમારો બ્રાઉઝિંગ ઇતિહાસ કે જેમાં આ ડિવાઇસ પર તમે Chromium વડે મુલાકાત લીધેલી સાઇટનો રેકોર્ડ હોય છે.</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index c884458..e6afcc0 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium को इस साइट के लिए, कैमरा ऐक्सेस करने की अनुमति चाहिए</translation>
 <translation id="7196312274710523067">Chromium लॉन्च नहीं किया जा सका. फिर से कोशिश करें.</translation>
 <translation id="7197677400338048821">क्रोमियम आपके पासवर्ड की जांच नहीं कर सकता. 24 घंटे बाद कोशिश करें.</translation>
-<translation id="7218568399872925918">जिन साइटों पर जाया जाता है उनके पास आपकी जानकारी तब तक रहती है, जब तक आप Chromium को बंद न कर दें</translation>
 <translation id="7223968959479464213">काम का मैनेजर - क्रोमियम</translation>
 <translation id="7246575524853130370">आपकी पसंद के विषय जिनका अनुमान Chromium ने लगाया है</translation>
 <translation id="7309928523159922338">विज्ञापनों की परफ़ॉर्मेंस का पता लगाने वाला एपीआई, आपकी देखी गई साइटों को अनुमति देता है कि वे Chromium से आपकी जानकारी पाने का अनुरोध कर सकें. इस जानकारी से, साइट पर दिखाए जाने वाले विज्ञापनों की परफ़ॉर्मेंस का पता लगाने में मदद मिलती है. विज्ञापनों की परफ़ॉर्मेंस का पता लगाने वाला एपीआई, क्रॉस-साइट ट्रैकिंग को रोकता है. इसके लिए एपीआई, साइटों को आपस में कम से कम जानकारी शेयर करने देता है.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">अनिर्दिष्ट कारणों से इंस्‍टॉलेशन विफल हुआ. कृपया क्रोमियम फिर से डाउनलोड करें.</translation>
 <translation id="8697124171261953979">इससे यह भी नियंत्रित होता है कि जब आप क्रोमियम शुरू करते हैं या ऑम्निबॉक्स से खोजते हैं तब कौन सा पेज दिखाया जाए.</translation>
 <translation id="8704119203788522458">यह आपका क्रोमियम है</translation>
-<translation id="8713679423359107094">सभी Chromium विंडो बंद करने पर, कुकी और साइट डेटा अपने-आप मिट जाते हैं</translation>
-<translation id="8796443464227412154">Chromium को बंद करने पर, आपको <ph name="BEGIN_BOLD" />ज़्यादातर साइटों से साइन आउट<ph name="END_BOLD" /> कर दिया जाएगा. सिंक करने की सुविधा बंद होने पर, आपको <ph name="BEGIN_BOLD" />Google की सेवाओं और Chromium से भी साइन आउट<ph name="END_BOLD" /> कर दिया जाएगा.</translation>
 <translation id="8796602469536043152">क्रोमियम को इस साइट के लिए आपका कैमरा और माइक्रोफ़ोन एक्सेस करने की अनुमति चाहिए</translation>
 <translation id="8833697763442816810">ChromiumOS सिस्टम</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />किस डेटा का इस्तेमाल किया जाता है:<ph name="END_BOLD" /> आपका ब्राउज़िंग इतिहास, जिसमें इस डिवाइस पर Chromium का इस्तेमाल करके देखी गई साइटों का रिकॉर्ड होता है.</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb
index 8607e590..8371d18 100644
--- a/chrome/app/resources/chromium_strings_hr.xtb
+++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium treba dopuštenje za fotoaparat za ovu web-lokaciju</translation>
 <translation id="7196312274710523067">Pokretanje Chromiuma nije uspjelo. Pokušajte ponovo.</translation>
 <translation id="7197677400338048821">Chromium ne može provjeriti vaše zaporke. Pokušajte ponovno nakon 24 sata.</translation>
-<translation id="7218568399872925918">Web-lokacije koje posjećujete pamte vaše podatke dok ne zatvorite Chromium</translation>
 <translation id="7223968959479464213">Upravitelj zadataka – Chromium</translation>
 <translation id="7246575524853130370">Vaši interesi prema Chromiumovoj procjeni</translation>
 <translation id="7309928523159922338">Ad measurement API omogućuje web-lokacijama koje posjećujete da od Chromiuma traže podatke koji im pomažu mjeriti izvedbu svojih oglasa. Ad measurement API ograničava praćenje na različitim web-lokacijama tako što se između web-lokacija prenosi što je manje moguće podataka.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">Instalacija nije uspjela zbog nepoznate pogreške. Ponovo preuzmite Chromium.</translation>
 <translation id="8697124171261953979">Upravlja i time koja se stranica prikazuje prilikom pokretanja Chromiuma ili pretraživanja putem višenamjenskog okvira.</translation>
 <translation id="8704119203788522458">To je vaš Chromium</translation>
-<translation id="8713679423359107094">Kad zatvorite sve Chromiumove prozore, kolačići i podaci web-lokacija brišu se automatski</translation>
-<translation id="8796443464227412154"><ph name="BEGIN_BOLD" />Odjavit ćete se s većine web-lokacija<ph name="END_BOLD" /> kad zatvorite Chromium. Ako je sinkronizacija isključena, <ph name="BEGIN_BOLD" />odjavit ćete se i s Googleovih usluga i Chromiuma<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium treba dopuštenje za pristup kameri i mikrofonu za ovu web-lokaciju</translation>
 <translation id="8833697763442816810">Sustav Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Koji se podaci upotrebljavaju<ph name="END_BOLD" />: vaša povijest pregledavanja, zapisnik web-lokacija koje ste posjetili u Chromiumu na ovom uređaju.</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index 3edee14..3097525 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -281,7 +281,6 @@
 <translation id="718435575166326686">A Chromiumnak kamerahasználati engedélyre van szüksége ehhez a webhelyhez</translation>
 <translation id="7196312274710523067">Nem sikerült a Chromium elindítása. Próbálkozzon újra.</translation>
 <translation id="7197677400338048821">A Chromium nem tudja ellenőrizni a jelszavait. Próbálja újra 24 óra múlva.</translation>
-<translation id="7218568399872925918">A felkeresett webhelyek megjegyzik az Ön adatait a Chromium bezárásáig</translation>
 <translation id="7223968959479464213">Feladatkezelő -- Chromium</translation>
 <translation id="7246575524853130370">Az Ön Chromium által megbecsült érdeklődési körei</translation>
 <translation id="7309928523159922338">A hirdetésmérés segítségével az Ön által felkeresett webhelyek olyan adatokat kérhetnek a Chromiumtól, amelyek segítségével a webhely mérheti hirdetéseinek teljesítményét. A hirdetésmérés azáltal korlátozza a webhelyeken átnyúló nyomon követést, hogy a lehető legkevesebb adatot továbbítja a webhelyek között.</translation>
@@ -353,8 +352,6 @@
 <translation id="8621669128220841554">A telepítés egy meg nem határozott hiba miatt nem sikerült. Kérjük, töltse le újra a Chromiumot.</translation>
 <translation id="8697124171261953979">Továbbá azt is szabályozza, hogy melyik oldal jelenik meg a Chromium indításakor vagy a cím- és keresősávban indított kereséskor.</translation>
 <translation id="8704119203788522458">Ez az Ön Chromiumja</translation>
-<translation id="8713679423359107094">A Chromium ablakainak bezárásakor a cookie-kat és webhelyadatokat automatikusan törli a rendszer.</translation>
-<translation id="8796443464227412154">A <ph name="BEGIN_BOLD" />legtöbb webhelyről kijelentkezteti<ph name="END_BOLD" /> Önt a rendszer a Chromium bezárásakor. Ha pedig a szinkronizálás is ki van kapcsolva, akkor <ph name="BEGIN_BOLD" />a Google-szolgáltatásokból és a Chromiumból is megtörténik a kijelentkezés<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">A Chromiumnak engedélyre van szüksége ahhoz, hogy hozzáférjen a kamerához és a mikrofonhoz ennél a webhelynél</translation>
 <translation id="8833697763442816810">ChromiumOS rendszer</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />A felhasznált adatok:<ph name="END_BOLD" /> Böngészési előzményei, az Ön által az ezen az eszközön használt Chromiumban felkeresett webhelyek jegyzéke.</translation>
diff --git a/chrome/app/resources/chromium_strings_hy.xtb b/chrome/app/resources/chromium_strings_hy.xtb
index 9061a7b..72d10f81 100644
--- a/chrome/app/resources/chromium_strings_hy.xtb
+++ b/chrome/app/resources/chromium_strings_hy.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Այս կայքի համար Chromium-ին անհրաժեշտ է տեսախցիկն օգտագործելու թույլտվություն</translation>
 <translation id="7196312274710523067">Չհաջողվեց գործարկել Chromium-ը։ Նորից փորձեք։</translation>
 <translation id="7197677400338048821">Chromium-ը չի կարող ստուգել ձեր գաղտնաբառերը։ 24 ժամ հետո նորից փորձեք։</translation>
-<translation id="7218568399872925918">Ձեր տվյալները կպահվեն այցելած կայքերում այնքան ժամանակ, մինչև կփակեք Chromium-ը։</translation>
 <translation id="7223968959479464213">Խնդիրների կառավարիչ - Chromium</translation>
 <translation id="7246575524853130370">Ձեր հետաքրքրությունները (ըստ Chromium-ի)</translation>
 <translation id="7309928523159922338">Գովազդի արդյունավետության գնահատումը թույլ է տալիս ձեր այցելած կայքերին ստանալ Chromium-ից տեղեկություններ, որոնք օգնում են չափել այդ կայքերում ցուցադրվող գովազդի արդյունավետությունը։ Գովազդի արդյունավետության գնահատումը սահմանափակում է օգտատերերի գործողությունների միջկայքային հետագծումը՝ նվազագույնի հասցնելով կայքերի միջև տեղեկությունների փոխանցումը։</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Անհայտ սխալի պատճառով տեղադրումը չհաջողվեց: Նորից ներբեռնեք Chromium-ը:</translation>
 <translation id="8697124171261953979">Այն նաև վերահսկում է Chromium-ի մեկնարկի կամ Omnibox-ից որոնում կատարելու ժամանակ ցուցադրվող էջը:</translation>
 <translation id="8704119203788522458">Սա ձեր Chromium-ն է</translation>
-<translation id="8713679423359107094">Երբ փակեք Chromium-ի բոլոր պատուհանները, քուքիները և կայքերի տվյալներն ավտոմատ կմաքրվեն։</translation>
-<translation id="8796443464227412154">Երբ փակեք Chromium-ը, դուք <ph name="BEGIN_BOLD" />դուրս կգաք կայքերի մեծամասնությունից<ph name="END_BOLD" />։ Եթե համաժամացումն անջատված է, դուք նաև <ph name="BEGIN_BOLD" />դուրս կգաք Google-ի ծառայություններից և Chromium-ից<ph name="END_BOLD" />։</translation>
 <translation id="8796602469536043152">Chromium-ին այս կայքի համար անհրաժեշտ է ձեր տեսախցիկն ու խոսափողը օգտագործելու թույլտվություն</translation>
 <translation id="8833697763442816810">ChromiumOS համակարգ</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Ինչ տվյալներ են օգտագործվում.<ph name="END_BOLD" /> ձեր այցելությունների պատմությունը այն կայքերի ցանկն է, որոնք դուք այցելել եք Chromium-ի միջոցով այս սարքում։</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index 46f55b22f..5979ee0 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium memerlukan izin kamera untuk situs ini</translation>
 <translation id="7196312274710523067">Tidak dapat meluncurkan Chromium. Harap coba lagi.</translation>
 <translation id="7197677400338048821">Chromium tidak dapat memeriksa sandi Anda. Coba lagi setelah 24 jam.</translation>
-<translation id="7218568399872925918">Situs yang dibuka akan mengingat informasi Anda hingga Anda menutup Chromium</translation>
 <translation id="7223968959479464213">Pengelola Tugas - Chromium</translation>
 <translation id="7246575524853130370">Minat Anda sesuai perkiraan Chromium</translation>
 <translation id="7309928523159922338">Pengukuran iklan memungkinkan situs yang Anda buka untuk meminta informasi dari Chromium yang membantu situs mengukur performa iklannya. Pengukuran iklan membatasi pelacakan lintas situs dengan mentransfer sesedikit mungkin informasi antar-situs.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">Pemasangan gagal karena kesalahan yang tidak ditentukan. Download Chromium lagi.</translation>
 <translation id="8697124171261953979">Juga mengontrol halaman apa yang ditampilkan saat Anda memulai Chromium atau menelusuri dari Omnibox.</translation>
 <translation id="8704119203788522458">Ini Chromium Anda</translation>
-<translation id="8713679423359107094">Jika Anda menutup semua jendela Chromium, cookie dan data situs akan otomatis dihapus</translation>
-<translation id="8796443464227412154">Anda akan <ph name="BEGIN_BOLD" />logout dari sebagian besar situs<ph name="END_BOLD" /> saat Anda menutup Chromium. Jika sinkronisasi nonaktif, Anda juga akan <ph name="BEGIN_BOLD" />logout dari layanan Google dan Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium memerlukan izin akses ke kamera dan mikrofon untuk situs ini</translation>
 <translation id="8833697763442816810">Sistem ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Data yang digunakan:<ph name="END_BOLD" /> Histori penjelajahan Anda, catatan situs yang telah Anda buka menggunakan Chromium di perangkat ini.</translation>
diff --git a/chrome/app/resources/chromium_strings_is.xtb b/chrome/app/resources/chromium_strings_is.xtb
index e2e60de..0c4aab0 100644
--- a/chrome/app/resources/chromium_strings_is.xtb
+++ b/chrome/app/resources/chromium_strings_is.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium verður að fá leyfi fyrir myndavél fyrir þetta vefsvæði</translation>
 <translation id="7196312274710523067">Ekki var hægt að ræsa Chromium. Reyndu aftur.</translation>
 <translation id="7197677400338048821">Chromium getur ekki athugað aðgangsorðin þín. Reyndu aftur eftir sólarhring.</translation>
-<translation id="7218568399872925918">Vefsvæðin sem þú opnar muna upplýsingarnar þínar þar til þú lokar Chromium</translation>
 <translation id="7223968959479464213">Verkstjórn – Chromium</translation>
 <translation id="7246575524853130370">Áhugasvið þín samkvæmt mati Chromium</translation>
 <translation id="7309928523159922338">Auglýsingamælingar heimila vefsvæðum sem þú opnar að biðja Chromium um upplýsingar sem hjálpa vefsvæðinu að mæla afköst auglýsinga þess. Auglýsingamælingar takmarka rakningu á milli vefsvæða með því að flytja eins lítið magn upplýsinga á milli vefsvæða og mögulegt er.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Uppsetning mistókst vegna ótilgreindrar villu. Sæktu Chromium aftur.</translation>
 <translation id="8697124171261953979">Það stýrir því einnig hvaða síða opnast þegar þú ræsir Chromium eða leitar í veffangastikunni.</translation>
 <translation id="8704119203788522458">Chromium er þitt</translation>
-<translation id="8713679423359107094">Öll fótspor og vefsvæðagögn verða hreinsuð sjálfkrafa um leið og þú lokar öllum Chromium gluggum</translation>
-<translation id="8796443464227412154">Þú verður <ph name="BEGIN_BOLD" />skráð(ur) út af flestum vefsvæðum<ph name="END_BOLD" /> þegar þú lokar Chromium. Ef slökkt er á samstillingu verðurðu einnig <ph name="BEGIN_BOLD" />skráð(ur) út úr Google þjónustum og Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium þarf leyfi til að nota myndavélina og hljóðnemann á þessu vefsvæði</translation>
 <translation id="8833697763442816810">ChromiumOS kerfi</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Hvaða gögn eru notuð:<ph name="END_BOLD" /> Vafraferillinn þinn, skrá yfir vefsvæði sem þú hefur opnað með Chromium í þessu tæki.</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb
index 605d470..aa1f424 100644
--- a/chrome/app/resources/chromium_strings_it.xtb
+++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium deve avere l'autorizzazione di accesso alla fotocamera per questo sito</translation>
 <translation id="7196312274710523067">Impossibile avviare Chromium. Riprova.</translation>
 <translation id="7197677400338048821">Chromium non può controllare le tue password. Riprova tra 24 ore.</translation>
-<translation id="7218568399872925918">I siti visitati memorizzano le tue informazioni fino alla chiusura di Chromium</translation>
 <translation id="7223968959479464213">Task Manager - Chromium</translation>
 <translation id="7246575524853130370">I tuoi interessi stimati da Chromium</translation>
 <translation id="7309928523159922338">Ad measurement consente ai siti che visiti di chiedere a Chromium informazioni che li aiutino a valutare il rendimento dei loro annunci. Ad measurement limita il tracciamento tra siti trasferendo il minor numero possibile di informazioni tra i siti.</translation>
@@ -354,8 +353,6 @@
 <translation id="8621669128220841554">Installazione non riuscita a causa di un errore imprecisato. Scarica di nuovo Chromium.</translation>
 <translation id="8697124171261953979">Controlla anche la pagina visualizzata all'avvio di Chromium o quando esegui ricerche dalla Omnibox.</translation>
 <translation id="8704119203788522458">Questo è il tuo account Chromium</translation>
-<translation id="8713679423359107094">Quando chiudi tutte le finestre di Chromium, i cookie e i dati dei siti vengono cancellati automaticamente</translation>
-<translation id="8796443464227412154">Quando chiudi Chromium, verrà <ph name="BEGIN_BOLD" />eseguita la disconnessione dalla maggior parte dei siti<ph name="END_BOLD" />. Se la sincronizzazione è disattivata, verrà anche <ph name="BEGIN_BOLD" />eseguita la disconnessione dai servizi Google e da Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Per questo sito Chromium ha bisogno dell'autorizzazione ad accedere alla fotocamera e al microfono</translation>
 <translation id="8833697763442816810">Sistema Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Quali dati vengono utilizzati:<ph name="END_BOLD" /> la cronologia di navigazione, ossia un record dei siti visitati da Chromium sul dispositivo in uso.</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb
index 6cf9276a..c8f5d804 100644
--- a/chrome/app/resources/chromium_strings_iw.xtb
+++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -281,7 +281,6 @@
 <translation id="718435575166326686">‏נדרשת הרשאת גישה למצלמה ב-Chromium עבור האתר הזה</translation>
 <translation id="7196312274710523067">‏לא ניתן היה להפעיל את Chromium. יש לנסות שוב.</translation>
 <translation id="7197677400338048821">‏Chromium לא יכול לבדוק את הסיסמאות שלך. יש לנסות שוב בעוד 24 שעות.</translation>
-<translation id="7218568399872925918">‏אתרים שביקרת בהם יזכרו את הפרטים שלך עד לסגירת Chromium</translation>
 <translation id="7223968959479464213">‏מנהל המשימות - Chromium</translation>
 <translation id="7246575524853130370">‏תחומי העניין שלך בהתאם להערכה של Chromium</translation>
 <translation id="7309928523159922338">‏מדידת המודעות מאפשרת לאתרים שביקרת בהם לבקש מ-Chromium מידע שיעזור לבעלי האתרים למדוד את הביצועים של המודעות שלהם. מדידת המודעות מגבילה את המעקב באתרים שונים על ידי העברת כמות קטנה ככל האפשר של מידע בין אתרים.</translation>
@@ -353,8 +352,6 @@
 <translation id="8621669128220841554">‏ההתקנה נכשלה בשל שגיאה לא מזוהה. יש להוריד שוב את Chromium.</translation>
 <translation id="8697124171261953979">‏הגדרה זו גם קובעת איזה דף מוצג כשמפעילים את Chromium או מבצעים חיפוש מסרגל הכתובות.</translation>
 <translation id="8704119203788522458">‏זהו ה-Chromium שלך</translation>
-<translation id="8713679423359107094">‏אחרי שסוגרים את כל החלונות של Chromium, קובצי cookie ונתוני אתרים נמחקים אוטומטית</translation>
-<translation id="8796443464227412154">‏המערכת <ph name="BEGIN_BOLD" />תוציא אותך מהחשבון ברוב האתרים<ph name="END_BOLD" /> עם סגירת Chromium. אם הסנכרון כבוי, המערכת <ph name="BEGIN_BOLD" />תוציא אותך מהחשבון גם בשירותי Google וב-Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">‏Chromium זקוק להרשאת גישה אל המצלמה והמיקרופון בשביל האתר הזה</translation>
 <translation id="8833697763442816810">‏מערכת ChromiumOS</translation>
 <translation id="8846118132221683440">‏<ph name="BEGIN_BOLD" />באילו נתונים נעשה שימוש:<ph name="END_BOLD" /> היסטוריית הגלישה – תיעוד האתרים שביקרת בהם באמצעות Chromium במכשיר הזה.</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index 585ffdd0..b19c130 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">このサイトを利用するには、Chromium でカメラの使用を許可する必要があります</translation>
 <translation id="7196312274710523067">Chromium を起動できませんでした。もう一度お試しください。</translation>
 <translation id="7197677400338048821">Chromium でパスワードを確認できません。24 時間後にもう一度お試しください。</translation>
-<translation id="7218568399872925918">Chromium を閉じるまで、アクセスしたサイトにお客様の情報が保存されます</translation>
 <translation id="7223968959479464213">タスク マネージャ - Chromium</translation>
 <translation id="7246575524853130370">Chromium が推定したお客様の興味 / 関心</translation>
 <translation id="7309928523159922338">広告の測定により、アクセスしたサイトは、サイトが広告のパフォーマンスを測定する際に役立つ Chromium の情報をリクエストできます。広告の測定は、サイト間で転送する情報をできるだけ少なくすることで、クロスサイト トラッキングを制限します。</translation>
@@ -354,8 +353,6 @@
 <translation id="8621669128220841554">原因不明のエラーによりインストールに失敗しました。Chromium をもう一度ダウンロードしてください。</translation>
 <translation id="8697124171261953979">この拡張機能では、Chromium の起動時、またはアドレスバーからの検索時に表示されるページも制御されます。</translation>
 <translation id="8704119203788522458">自分好みに設定</translation>
-<translation id="8713679423359107094">Chromium のウィンドウをすべて閉じると、Cookie とサイトデータは自動的に削除されます</translation>
-<translation id="8796443464227412154">Chromium を閉じると、<ph name="BEGIN_BOLD" />ほとんどのサイトからログアウト<ph name="END_BOLD" />します。同期がオフの場合は、<ph name="BEGIN_BOLD" />Google サービスと Chromium からもログアウト<ph name="END_BOLD" />します。</translation>
 <translation id="8796602469536043152">このサイトを利用するには、Chromium でカメラとマイクの使用を許可する必要があります</translation>
 <translation id="8833697763442816810">Chromium OS システム</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />使用されるデータ:<ph name="END_BOLD" /> 閲覧履歴(このデバイスで Chromium を使用してアクセスしたサイトの記録)。</translation>
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index 3193032..7925772 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium საჭიროებს კამერზე წვდომის ნებართვას ამ საიტისთვის</translation>
 <translation id="7196312274710523067">Chromium-ის გაშვება ვერ მოხერხდა. ცადეთ ხელახლა.</translation>
 <translation id="7197677400338048821">Chromium ვერ ახერხებს პაროლების შემოწმებას. ცადეთ 24 საათში.</translation>
-<translation id="7218568399872925918">თქვენ მიერ მონახულებული საიტები დაიმახსოვრებს თქვენს ინფორმაციას, სანამ Chromium-ს არ დახურავთ</translation>
 <translation id="7223968959479464213">დავალებათა მენეჯერი - Chromium</translation>
 <translation id="7246575524853130370">Chromium-ის მიერ პროგნოზირებული თქვენი ინტერესები</translation>
 <translation id="7309928523159922338">რეკლამის ეფექტურობის გაზომვის მეშვეობით, თქვენ მიერ მონახულებულ საიტებს საშუალება ექნება, Chromium-ისგან მოითხოვონ გარკვეული ინფორმაცია, რომელიც ამა თუ იმ საიტს თავისი რეკლამის ეფექტურობის განსაზღვრაში დაეხმარება. რეკლამის ეფექტურობის გაზომვისას საიტებს შორის თვალის მიდევნების მექანიზმები შეზღუდულია, რაც ნიშნავს, რომ საიტებს შორის მინიმალური ინფორმაცია გადაიცემა.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">ინსტალაცია ვერ განხორციელდა გაურკვეველი შეცდომის გამო. ხელახლა ჩამოტვირთეთ Chromium.</translation>
 <translation id="8697124171261953979">იგი ასევე აკონტროლებს, თუ რომელი გვერდი გამოჩნდება Chromium-ის გაშვებისას ან Omnibox-ში ძიების დროს.</translation>
 <translation id="8704119203788522458">ეს არის თქვენი Chromium</translation>
-<translation id="8713679423359107094">როცა Chromium-ის ყველა ფანჯარას დახურავთ, ქუქი-ჩანაწერები და საიტების მონაცემები ავტომატურად გასუფთავდება</translation>
-<translation id="8796443464227412154">როცა Chromium-ს დახურავთ, <ph name="BEGIN_BOLD" />საიტების უმეტესობაზე სისტემიდან გახვალთ<ph name="END_BOLD" />. თუ სინქრონიზაცია გამორთულია, ასევე, <ph name="BEGIN_BOLD" />გახვალთ Google სერვისებისა და Chromium-ის სისტემიდან<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium საჭიროებს თქვენს კამერასა და მიკროფონზე წვდომის ნებართვას ამ საიტისთვის</translation>
 <translation id="8833697763442816810">ChromiumOS სისტემა</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />გამოყენებული მონაცემების ტიპები:<ph name="END_BOLD" /> თქვენ მიერ ვების დათვალიერების ისტორია, ამ მოწყობილობაზე თქვენ მიერ Chromium-ის მეშვეობით მონახულებული საიტების ჩანაწერი.</translation>
diff --git a/chrome/app/resources/chromium_strings_kk.xtb b/chrome/app/resources/chromium_strings_kk.xtb
index 90246ce..84164dd 100644
--- a/chrome/app/resources/chromium_strings_kk.xtb
+++ b/chrome/app/resources/chromium_strings_kk.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium бұл сайт үшін камераны пайдалануға рұқсат сұрайды.</translation>
 <translation id="7196312274710523067">Chromium браузері қосылмады. Қайталап көріңіз.</translation>
 <translation id="7197677400338048821">Chromium сіздің құпия сөздеріңізді тексере алмай жатыр. 24 сағаттан кейін қайталап көріңіз.</translation>
-<translation id="7218568399872925918">Chromium браузерін жапқанға дейін, сіз кірген сайттар сіз туралы ақпаратты есте сақтайды.</translation>
 <translation id="7223968959479464213">Тапсырмалар реттегіші – Chromium</translation>
 <translation id="7246575524853130370">Chromium болжамымен анықталған қызығушылықтарыңыз</translation>
 <translation id="7309928523159922338">Жарнама өлшеу функциясы сіз кіретін сайттарға өз жарнамаларының өнімділігін өлшеуге көмектесетін ақпаратты Chromium браузерінен сұратуға мүмкіндік береді. Сайттар бір-біріне барынша аз ақпарат жіберетіндіктен, сайтаралық бақылау шектеледі.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Орнату анықталмаған қате себебінен сәтсіз аяқталды. Chromium браузерін қайта жүктеңіз.</translation>
 <translation id="8697124171261953979">Сонымен қатар ол Chromium іске қосқаныңызда немесе Omnibox ішінен іздегеніңізде қайсы бет көрсетілетінін бақылайды.</translation>
 <translation id="8704119203788522458">Сізге арналған Chromium.</translation>
-<translation id="8713679423359107094">Chromium терезелерінің барлығын жапқанда, cookie файлдары мен сайт деректері автоматты түрде өшіріледі.</translation>
-<translation id="8796443464227412154">Chromium браузерін жапқанда, <ph name="BEGIN_BOLD" />көптеген сайттан шығып кетесіз.<ph name="END_BOLD" /> Егер синхрондау функциясы өшіп тұрса, <ph name="BEGIN_BOLD" />Google қызметтері мен Chromium браузерінен де шығып кетесіз.<ph name="END_BOLD" /></translation>
 <translation id="8796602469536043152">Chromium браузеріне бұл сайтта камераны және микрофонды пайдалану үшін рұқсат керек</translation>
 <translation id="8833697763442816810">ChromiumOS жүйесі</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Қандай дерек пайдаланылады:<ph name="END_BOLD" /> браузерді қолдану тарихы, осы құрылғыда Chromium көмегімен кірген сайттардың жазбасы.</translation>
diff --git a/chrome/app/resources/chromium_strings_km.xtb b/chrome/app/resources/chromium_strings_km.xtb
index 849a6d1..db05557 100644
--- a/chrome/app/resources/chromium_strings_km.xtb
+++ b/chrome/app/resources/chromium_strings_km.xtb
@@ -286,7 +286,6 @@
 <translation id="718435575166326686">Chromium ត្រូវការ​ការអនុញ្ញាត​កាមេរ៉ា​សម្រាប់​គេហទំព័រនេះ</translation>
 <translation id="7196312274710523067">មិន​អាច​ចាប់ផ្ដើម Chromium បានទេ។ សូមព្យាយាម​ម្ដង​ទៀត។</translation>
 <translation id="7197677400338048821">Chromium មិនអាចពិនិត្យ​ពាក្យសម្ងាត់របស់អ្នកបានទេ។ សូមព្យាយាមម្ដងទៀតក្រោយរយៈពេល 24 ម៉ោង។</translation>
-<translation id="7218568399872925918">គេហទំព័រដែលអ្នកចូលមើល ចងចាំព័ត៌មានរបស់អ្នក រហូតទាល់តែអ្នកបិទ Chromium</translation>
 <translation id="7223968959479464213">កម្មវិធីគ្រប់គ្រងភារកិច្ច - Chromium</translation>
 <translation id="7246575524853130370">ចំណាប់អារម្មណ៍​របស់អ្នក​ដូចដែលបាន​ប៉ាន់ស្មានដោយ Chromium</translation>
 <translation id="7309928523159922338">ការវាស់ស្ទង់​អំពី​ការផ្សាយពាណិជ្ជកម្ម​អនុញ្ញាតឱ្យ​គេហទំព័រដែល​អ្នកចូលមើល​ស្នើសុំព័ត៌មានពី Chromium ដែលជួយឱ្យ​គេហទំព័រ​វាស់ស្ទង់​ប្រតិបត្តិការនៃ​ការផ្សាយពាណិជ្ជកម្ម​របស់ខ្លួន។ ការវាស់ស្ទង់​អំពីការផ្សាយពាណិជ្ជកម្ម​រឹតបន្តឹង​ការតាមដាន​ឆ្លងគេហទំព័រ ដោយផ្ទេរ​ព័ត៌មាន​តិចតួចបំផុត​រវាងគេហទំព័រនានា។</translation>
@@ -358,8 +357,6 @@
 <translation id="8621669128220841554">ការតំឡើងបានបរាជ័យដោយសារកំហុសឆ្គងដែលមិនជាក់លាក់។ សូមទាញយក Chromium ម្តងទៀត។</translation>
 <translation id="8697124171261953979">វាក៏គ្រប់គ្រងអ្វីដែលទំព័របានបង្ហាញផងដែរ នៅពេលអ្នកចាប់ផ្តើម Chromium ស្វែងរកពីប្រអប់អូមនី។</translation>
 <translation id="8704119203788522458">នេះគឺជា Chromium របស់អ្នក</translation>
-<translation id="8713679423359107094">នៅពេលអ្នកបិទវិនដូ Chromium ទាំងអស់ នោះទិន្នន័យគេហទំព័រ និងខូគីត្រូវបានសម្អាតដោយស្វ័យប្រវត្តិ</translation>
-<translation id="8796443464227412154">អ្នកនឹងត្រូវបាន<ph name="BEGIN_BOLD" />នាំចេញពីគេហទំព័រភាគច្រើន<ph name="END_BOLD" /> នៅពេលអ្នកបិទ Chromium។ ប្រសិនបើ​សម​កាល​កម្មត្រូវបានបិទ អ្នកក៏នឹងត្រូវបាន<ph name="BEGIN_BOLD" />នាំចេញពីសេវាកម្ម Google និង Chromium<ph name="END_BOLD" /> ផងដែរ។</translation>
 <translation id="8796602469536043152">Chromium ត្រូវ​ការ​ការអនុញ្ញាត​ដើម្បី​ចូលប្រើ​កាមេរ៉ា និង​មីក្រូហ្វូន​របស់អ្នក​សម្រាប់ទំព័រនេះ</translation>
 <translation id="8833697763442816810">ប្រព័ន្ធ ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />ប្រភេទទិន្នន័យ​ដែលត្រូវបានប្រើប្រាស់៖<ph name="END_BOLD" /> ប្រវត្តិ​រុករក​តាមអ៊ីនធឺណិត​របស់អ្នក កំណត់ត្រាអំពី​គេហទំព័រ​ដែលអ្នកបានចូលមើល​ដោយប្រើ Chromium នៅលើ​ឧបករណ៍នេះ។</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 9a5f9d6..3d9bf72 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -278,7 +278,6 @@
 <translation id="718435575166326686">ಈ ಸೈಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ Chromium ಗೆ ಕ್ಯಾಮರಾ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="7196312274710523067">Chromium ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="7197677400338048821">Chromium ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. 24 ಗಂಟೆಗಳ ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
-<translation id="7218568399872925918">ನೀವು ನೀಡುವ ಎಲ್ಲಾ ಸೈಟ್‌ಗಳು ನೀವು Chromium ಅನ್ನು ಮುಚ್ಚುವವರೆಗೆ ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುತ್ತವೆ</translation>
 <translation id="7223968959479464213">ಕಾರ್ಯನಿರ್ವಾಹಕ - Chromium</translation>
 <translation id="7246575524853130370">Chromium ಅಂದಾಜು ಮಾಡಿರುವ ಪ್ರಕಾರ ನಿಮ್ಮ ಆಸಕ್ತಿಗಳು</translation>
 <translation id="7309928523159922338">ತಮ್ಮ ಜಾಹೀರಾತುಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮಾಪನ ಮಾಡಲು ನೆರವಾಗುವಂತಹ ಮಾಹಿತಿಯನ್ನು Chromium ನಿಂದ ವಿನಂತಿಸಿಕೊಳ್ಳಲು ಜಾಹೀರಾತು ಮಾಪನವು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಸೈಟ್‌ಗಳ ನಡುವೆ ಸಾಧ್ಯವಾದಷ್ಟು ಕಡಿಮೆ ಮಾಹಿತಿಯನ್ನು ವರ್ಗಾಯಿಸುವ ಮೂಲಕ ಕ್ರಾಸ್-ಸೈಟ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಅನ್ನು ಜಾಹೀರಾತು ಮಾಪನ ನಿರ್ಬಂಧಿಸುತ್ತದೆ.</translation>
@@ -348,8 +347,6 @@
 <translation id="8621669128220841554">ಅನಿರ್ದಿಷ್ಟ ದೋಷದಿಂದಾಗಿ ಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೊಮ್ಮೆ Chromium ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ.</translation>
 <translation id="8697124171261953979">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ಅಥವಾ ಓಮ್ನಿಬಾಕ್ಸ್‌ನಿಂದ ಹುಡುಕಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation>
 <translation id="8704119203788522458">ಇದು ನಿಮ್ಮ Chromium</translation>
-<translation id="8713679423359107094">ನೀವು ಎಲ್ಲಾ Chromium ವಿಂಡೋಗಳನ್ನು ಮುಚ್ಚಿದ ನಂತರ, ಕುಕೀಗಳು ಮತ್ತು ಸೈಟ್ ಡೇಟಾವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆರವುಗೊಳಿಸಲಾಗುತ್ತದೆ</translation>
-<translation id="8796443464227412154">ನೀವು Chromium ಅನ್ನು ಮುಚ್ಚಿದ ನಂತರ, ನಿಮ್ಮನ್ನು <ph name="BEGIN_BOLD" />ಎಲ್ಲಾ ಸೈಟ್‌ಗಳಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ<ph name="END_BOLD" />. ಸಿಂಕ್ ಆಫ್ ಆಗಿದ್ದರೆ, ನೀವು ಸಹ <ph name="BEGIN_BOLD" />Google ಸೇವೆಗಳು ಮತ್ತು Chromium ನಿಂದ ಸೈನ್ ಔಟ್ ಆಗುತ್ತೀರಿ<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">ಈ ಸೈಟ್‌ಗಾಗಿ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೊಫೋನ್‌ಗೆ ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="8833697763442816810">ChromiumOS ಸಿಸ್ಟಂ</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />ಯಾವ ಡೇಟಾವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ:<ph name="END_BOLD" /> ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸ, ಎಂದರೆ, ಈ ಸಾಧನದಲ್ಲಿ Chromium ಬಳಸುವಾಗ ನೀವು ಭೇಟಿ ನೀಡಿದ ಸೈಟ್‌ಗಳ ದಾಖಲೆ.</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index f37326b..249e530 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium에서 사이트에 대한 카메라 권한이 필요합니다.</translation>
 <translation id="7196312274710523067">Chromium을 실행할 수 없습니다. 다시 시도해 보세요.</translation>
 <translation id="7197677400338048821">Chromium에서 비밀번호를 확인할 수 없습니다. 24시간 후 다시 시도해 보세요.</translation>
-<translation id="7218568399872925918">내가 방문한 사이트에서는 Chromium을 종료할 때까지 내 정보를 기억합니다.</translation>
 <translation id="7223968959479464213">작업 관리자 - Chromium</translation>
 <translation id="7246575524853130370">Chromium에서 예측한 내 관심분야</translation>
 <translation id="7309928523159922338">방문하는 사이트에서는 Ad measurement를 활용해 광고의 실적을 측정하는 데 도움이 되는 정보를 Chromium에 요청할 수 있습니다. Ad measurement는 사이트 간에 최소한의 정보만 전송함으로써 크로스 사이트 추적을 제한합니다.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">알 수 없는 오류로 인해 설치에 실패했습니다. Chromium을 다시 다운로드하세요.</translation>
 <translation id="8697124171261953979">또한 Chromium을 시작하거나 검색주소창에서 검색할 때 표시되는 페이지를 설정합니다.</translation>
 <translation id="8704119203788522458">나만의 Chromium</translation>
-<translation id="8713679423359107094">모든 Chromium 창을 닫으면 쿠키와 사이트 데이터가 자동으로 삭제됩니다.</translation>
-<translation id="8796443464227412154">Chromium을 종료하면 <ph name="BEGIN_BOLD" />대부분의 사이트에서 로그아웃<ph name="END_BOLD" />됩니다. 동기화를 사용 중지하면 <ph name="BEGIN_BOLD" />Google 서비스 및 Chromium에서도 로그아웃<ph name="END_BOLD" />됩니다.</translation>
 <translation id="8796602469536043152">이 사이트에서 카메라와 마이크에 액세스하려면 Chromium에 권한이 필요합니다</translation>
 <translation id="8833697763442816810">ChromiumOS 시스템</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />사용되는 데이터:<ph name="END_BOLD" /> 이 기기에서 Chromium을 사용해 방문한 사이트의 기록인 방문 기록이 사용됩니다.</translation>
diff --git a/chrome/app/resources/chromium_strings_ky.xtb b/chrome/app/resources/chromium_strings_ky.xtb
index fa4f28c4..9ac4905 100644
--- a/chrome/app/resources/chromium_strings_ky.xtb
+++ b/chrome/app/resources/chromium_strings_ky.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium'га бул сайтта камераны колдонууга уруксат бериңиз</translation>
 <translation id="7196312274710523067">Chromium иштетилбей койду. Кайталап көрүңүз.</translation>
 <translation id="7197677400338048821">Chromium сырсөздөрүңүздү текшере албай жатат. 24 сааттан кийин кайра аракет кылыңыз.</translation>
-<translation id="7218568399872925918">Сиз баш баккан сайттарда маалыматыңыз Chromium жабылганга чейин сакталат</translation>
 <translation id="7223968959479464213">Тапшырмаларды башкаргыч – Chromium</translation>
 <translation id="7246575524853130370">Chromium'дун божомолу боюнча төмөнкү нерселерге кызыгасыз</translation>
 <translation id="7309928523159922338">Жарнамаларды талдоо аркылуу сиз баш баккан сайттар Chromium'дан маалымат алып, жарнамаларынын майнаптуулугун талдай алышат. Жарнамаларды талдоо сайттарга мүмкүн болушунча аз маалымат өткөрүү менен башка сайттарга көз салууну чектейт.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Белгиси катадан улам, орнотулбай калды. Chromium'ду кайра жүктөп алыңыз.</translation>
 <translation id="8697124171261953979">Chromium иштеп баштаганда же Omnibox'тон изделгенде, кайсы бет көрсөтүлө тургандыгын көзөмөлдөйт.</translation>
 <translation id="8704119203788522458">Бул сиздин Chromium</translation>
-<translation id="8713679423359107094">Chromium'дагы бардык терезелер жабылса, cookie файлдары менен сайттагы маалымат автоматтык түрдө тазаланат</translation>
-<translation id="8796443464227412154">Chromium жабылганда <ph name="BEGIN_BOLD" />көбүнчө сайттардан чыгып каласыз<ph name="END_BOLD" />. Эгер шайкештирүү өчүрүлсө, <ph name="BEGIN_BOLD" />Google кызматтары менен Chromium'дан чыгып каласыз<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Бул сайтта иштөө үчүн Chromium камераңызды жана микрофонуңузду колдонушу керек</translation>
 <translation id="8833697763442816810">ChromiumOS тутуму</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Кайсы маалымат колдонулат:<ph name="END_BOLD" /> Бул түзмөктө Chromium аркылуу баш баккан жана көргөн сайттарыңыз.</translation>
diff --git a/chrome/app/resources/chromium_strings_lo.xtb b/chrome/app/resources/chromium_strings_lo.xtb
index 1cb7a30f..cf5de28c 100644
--- a/chrome/app/resources/chromium_strings_lo.xtb
+++ b/chrome/app/resources/chromium_strings_lo.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium ຕ້ອງການການອະນຸຍາດກ້ອງຖ່າຍຮູບສຳລັບເວັບໄຊນີ້</translation>
 <translation id="7196312274710523067">ບໍ່ສາມາດເປີດໃຊ້ Chromium ໄດ້. ກະລຸນາລອງອີກຄັ້ງ.</translation>
 <translation id="7197677400338048821">Chromium ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ກະລຸນາລອງໃໝ່ຫຼັງຈາກ 24 ຊົ່ວໂມງ.</translation>
-<translation id="7218568399872925918">ເວັບໄຊທີ່ທ່ານເຂົ້າເບິ່ງຈະຈື່ຂໍ້ມູນຂອງທ່ານໄວ້ຈົນກວ່າທ່ານຈະປິດ Chromium</translation>
 <translation id="7223968959479464213">ຕົວຈັດການໜ້າວຽກ - Chromium</translation>
 <translation id="7246575524853130370">ຄວາມສົນໃຈຂອງທ່ານຕາມທີ່ Chromium ປະເມີນ</translation>
 <translation id="7309928523159922338">ການວັດແທກໂຄສະນາຈະເຮັດໃຫ້ເວັບໄຊທີ່ທ່ານເຂົ້າເບິ່ງສາມາດຮ້ອງຂໍຂໍ້ມູນຈາກ Chromium ທີ່ຊ່ວຍໃຫ້ເວັບໄຊວັດແທກປະສິດທິພາບຂອງໂຄສະນາຂອງເຂົາເຈົ້າໄດ້. ການວັດແທກໂຄສະນາຈະຈຳກັດການຕິດຕາມຂ້າມເວັບໄຊໂດຍການໂອນຍ້າຍຂໍ້ມູນໜ້ອຍທີ່ສຸດເທົ່າທີ່ຈະເປັນໄປໄດ້ລະຫວ່າງເວັບໄຊ.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">ການ​ຕິດ​ຕັ້ງ​ບໍ່​ສໍາ​ເລັດ ​ເນື່ອງ​ຈາກ​ຄວາມຜິດພາດທີ່ບໍ່ໄດ້ລະບຸ​. ກະ​ລຸ​ນາ​ດາວ​ໂຫລດ Chromium ອີກ​.</translation>
 <translation id="8697124171261953979">ມັນຍັງຄວບຄຸມວ່າຈະໃຫ້ສະແດງໜ້າໃດຂຶ້ນ ເມື່ອທ່ານເລີ່ມຕົ້ນເປີດ Chromium ຫຼືຄົ້ນຫາຈາກ Omnibox.</translation>
 <translation id="8704119203788522458">ນີ້​ແມ່ນ Chromium ຂອງ​ທ່ານ</translation>
-<translation id="8713679423359107094">ເມື່ອທ່ານປິດໜ້າຈໍ Chromium ທັງໝົດ, ຄຸກກີ້ ແລະ ຂໍ້ມູນເວັບໄຊຈະຖືກລຶບລ້າງໂດຍອັດຕະໂນມັດ</translation>
-<translation id="8796443464227412154">ທ່ານຈະຖືກ <ph name="BEGIN_BOLD" />ພາອອກຈາກລະບົບຂອງເວັບໄຊສ່ວນໃຫຍ່<ph name="END_BOLD" /> ເມື່ອທ່ານປິດ Chromium. ຫາກປິດການຊິ້ງຂໍ້ມູນໄວ້, ທ່ານຈະຖືກ <ph name="BEGIN_BOLD" />ພາອອກຈາກລະບົບຂອງບໍລິການ Google ແລະ Chromium<ph name="END_BOLD" /> ນຳ.</translation>
 <translation id="8796602469536043152">Chromium ຕ້ອງການການອະນຸຍາດເພື່ອເຂົ້າເຖິງກ້ອງຖ່າຍຮູບ ແລະ ໄມໂຄຣໂຟນຂອງທ່ານສຳລັບເວັບໄຊນີ້</translation>
 <translation id="8833697763442816810">ລະບົບ ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />ມີການໃຊ້ຂໍ້ມູນໃດ:<ph name="END_BOLD" /> ປະຫວັດການທ່ອງເວັບຂອງທ່ານ, ບັນທຶກຂອງເວັບໄຊທີ່ທ່ານເຂົ້າເບິ່ງໂດຍໃຊ້ Chromium ຢູ່ອຸປະກອນນີ້.</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index 391f660..109605b 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">„Chromium“ reikalingas fotoaparato leidimas šioje svetainėje</translation>
 <translation id="7196312274710523067">Nepavyko paleisti „Chromium“. Bandykite dar kartą.</translation>
 <translation id="7197677400338048821">„Chromium“ negali patikrinti jūsų slaptažodžių. Bandykite dar kartą po 24 val.</translation>
-<translation id="7218568399872925918">Svetainės, kuriose apsilankote, prisimena jūsų informaciją, kol uždarote „Chromium“</translation>
 <translation id="7223968959479464213">Užduočių tvarkytuvė – „Chromium“</translation>
 <translation id="7246575524853130370">„Chromium“ numatyti jūsų pomėgiai</translation>
 <translation id="7309928523159922338">Skelbimų vertinimas leidžia svetainėms, kuriose lankotės, prašyti „Chromium“ informacijos, padedančios įvertinti savo skelbimų našumą. Skelbimų vertinimas apriboja veiklos skirtingose svetainėse stebėjimą tarp svetainių perduodant kaip įmanoma mažiau informacijos.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Nepavyko įdiegti dėl nenurodytos klaidos. Atsisiųskite „Chromium“ dar kartą.</translation>
 <translation id="8697124171261953979">Ji taip pat kontroliuoja, koks puslapis rodomas, kai paleidžiate „Chromium“ arba ieškote „Omnibox“.</translation>
 <translation id="8704119203788522458">Tai jūsų „Chromium“</translation>
-<translation id="8713679423359107094">Kai uždarote visus „Chromium“ langus, slapukai ir svetainių duomenys automatiškai išvalomi</translation>
-<translation id="8796443464227412154">Būsite <ph name="BEGIN_BOLD" />atjungti nuo daugumos svetainių<ph name="END_BOLD" />, kai uždarysite „Chromium“. Jei sinchronizavimas išjungtas, taip pat būsite <ph name="BEGIN_BOLD" />atjungti nuo „Google“ paslaugų ir „Chromium“<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">„Chromium“ reikia leidimo, kad galėtų naudoti fotoaparatą ir mikrofoną šioje svetainėje</translation>
 <translation id="8833697763442816810">„Chromium“ OS sistema</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Kokie duomenys naudojami:<ph name="END_BOLD" /> jūsų naršymo istorija, svetainių, kuriose lankėtės naudodami „Chromium“ šiame įrenginyje, įrašas.</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index 943a4551..73dd901 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Pārlūkam Chromium ir nepieciešama atļauja izmantot kameru šajā vietnē.</translation>
 <translation id="7196312274710523067">Neizdevās palaist Chromium. Mēģiniet vēlreiz.</translation>
 <translation id="7197677400338048821">Pārlūkprogrammā Chromium nevar pārbaudīt jūsu paroles. Mēģiniet vēlreiz pēc 24 stundām.</translation>
-<translation id="7218568399872925918">Apmeklētajās vietnēs jūsu informācija tiks iegaumēta, līdz jūs aizvērsiet pārlūku Chromium.</translation>
 <translation id="7223968959479464213">Uzdevumu pārvaldnieks — Chromium</translation>
 <translation id="7246575524853130370">Jūsu intereses, kas aptuveni noteiktas pārlūkā Chromium</translation>
 <translation id="7309928523159922338">Reklāmu izvērtēšana ļauj jūsu apmeklētajām vietnēm pieprasīt informāciju no Chromium, lai efektīvāk novērtētu vietnēs rādīto reklāmu veiktspēju. Reklāmu izvērtēšana ierobežo starpvietņu izsekošanu, pārsūtot starp vietnēm pēc iespējas mazāk informācijas.</translation>
@@ -352,8 +351,6 @@
 <translation id="8621669128220841554">Instalēšana neizdevās nenoteiktas kļūdas dēļ. Lejupielādējiet pārlūku Chromium vēlreiz.</translation>
 <translation id="8697124171261953979">Tas nosaka arī to, kāda lapa tiks rādīta, kad atvērsiet pārlūku Chromium vai meklēsiet, izmantojot universālo lodziņu.</translation>
 <translation id="8704119203788522458">Šis ir jūsu Chromium</translation>
-<translation id="8713679423359107094">Aizverot visus Chromium logus, sīkfaili un vietņu dati tiek automātiski notīrīti.</translation>
-<translation id="8796443464227412154">Aizverot pārlūku Chromium, jūs tiksiet <ph name="BEGIN_BOLD" />izrakstīts no lielākās daļas vietņu<ph name="END_BOLD" />. Ja sinhronizācija ir izslēgta, jūs tiksiet arī <ph name="BEGIN_BOLD" />izrakstīts no Google pakalpojumiem un pārlūka Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Pārlūkam Chromium ir nepieciešama atļauja piekļūt jūsu kamerai un mikrofonam šajā vietnē.</translation>
 <translation id="8833697763442816810">Chromium OS sistēma</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Kādi dati tiek izmantoti:<ph name="END_BOLD" /> jūsu pārlūkošanas vēsture, kurā tiek reģistrētas vietnes, ko šajā ierīcē apmeklējat ar pārlūku Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_mk.xtb b/chrome/app/resources/chromium_strings_mk.xtb
index 9538ec6c..d72afae6 100644
--- a/chrome/app/resources/chromium_strings_mk.xtb
+++ b/chrome/app/resources/chromium_strings_mk.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">На Chromium му треба дозвола за камерата за сајтов</translation>
 <translation id="7196312274710523067">Не може да се стартува Chromium. Обидете се повторно.</translation>
 <translation id="7197677400338048821">Chromium не може да ги провери вашите лозинки. Обидете се пак по 24 часа.</translation>
-<translation id="7218568399872925918">Сајтовите што ги посетувате ги помнат вашите податоци сѐ додека не го затворите Chromium</translation>
 <translation id="7223968959479464213">Управник со задачи - Chromium</translation>
 <translation id="7246575524853130370">Вашите интереси како што се проценети од Chromium</translation>
 <translation id="7309928523159922338">Мерењето на рекламите им овозможува на сајтовите што ги посетувате да бараат податоци од Chromium што му помагаат на сајтот да ја мери изведбата на своите реклами. Мерењето на рекламите го ограничува следењето меѓу сајтовите со префрлање што е можно помалку податоци меѓу сајтовите.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Инсталирањето не успеа поради неназначена грешка. Преземете го Chromium повторно.</translation>
 <translation id="8697124171261953979">Контролира и која страница се прикажува кога го стартувате Chromium или ако пребарувате од лентата за адреси.</translation>
 <translation id="8704119203788522458">Ова е вашиот Chromium</translation>
-<translation id="8713679423359107094">Кога ќе ги затворите сите прозорци на Chromium, колачињата и податоците од сајтовите автоматски се бришат</translation>
-<translation id="8796443464227412154">Ќе ве <ph name="BEGIN_BOLD" />одјавиме од повеќето сајтови<ph name="END_BOLD" /> кога ќе го затворите Chromium. Ако е исклучена синхронизацијата, ќе ве <ph name="BEGIN_BOLD" />одјавиме и од услигите на Google и Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">На Chromium му треба дозвола за да пристапи до камерата и микрофонот за сајтов</translation>
 <translation id="8833697763442816810">Систем Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Кои податоци се користат:<ph name="END_BOLD" /> вашата историја на прелистувањето, евиденција на сајтовите што сте ги посетиле со Chromium на уредов.</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index d1f02a6..3f1beaa2 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium-ന് ഈ സൈറ്റിനായി ക്യാമറാ അനുമതി ആവശ്യമാണ്</translation>
 <translation id="7196312274710523067">Chromium ലോഞ്ച് ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="7197677400338048821">Chromium-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാവുന്നില്ല. 24 മണിക്കൂറിന് ശേഷം വീണ്ടും ശ്രമിക്കുക.</translation>
-<translation id="7218568399872925918">Chromium അടയ്‌ക്കുന്നതുവരെ നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകൾക്ക് നിങ്ങളുടെ വിവരങ്ങൾ ഓർമ്മിക്കാനാകും</translation>
 <translation id="7223968959479464213">ടാസ്‌ക് മാനേജർ - Chromium</translation>
 <translation id="7246575524853130370">Chromium-ന്റെ നിർണ്ണയം അനുസരിച്ചുള്ള നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ</translation>
 <translation id="7309928523159922338">നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകളെ അവയുടെ പരസ്യങ്ങളുടെ പ്രകടനം അളക്കാൻ സഹായിക്കുന്ന Chromium-ൽ നിന്നുള്ള വിവരങ്ങൾ അഭ്യർത്ഥിക്കാൻ ആഡ് മെഷർമെന്റ് അനുവദിക്കുന്നു. സൈറ്റുകൾക്കിടയിൽ കഴിയുന്നത്ര കുറച്ച് വിവരങ്ങൾ കൈമാറുന്നതിലൂടെ ആഡ് മെഷർമെന്റ് ക്രോസ്-സൈറ്റ് ട്രാക്കിംഗ് നിയന്ത്രിക്കുന്നു.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">അവ്യക്തമായ പിശകിനാൽ ഇൻസ്റ്റാൾ ചെയ്യൽ പരാജയപ്പെട്ടു. Chromium വീണ്ടും ഡൗൺലോഡ് ചെയ്യുക.</translation>
 <translation id="8697124171261953979">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോൾ അല്ലെങ്കിൽ ഓമ്‌നിബോക്‌സിൽ നിന്ന് തിരയുമ്പോൾ ദൃശ്യമാകുന്ന പേജും അത് നിയന്ത്രിയ്ക്കുന്നു.</translation>
 <translation id="8704119203788522458">ഇത് നിങ്ങളുടെ Chromium ആണ്</translation>
-<translation id="8713679423359107094">നിങ്ങൾ എല്ലാ Chromium വിൻഡോകളും അടയ്ക്കുമ്പോൾ, കുക്കികളും സൈറ്റ് ഡാറ്റയും സ്വയമേവ മായ്ക്കും</translation>
-<translation id="8796443464227412154">നിങ്ങൾ Chromium അടയ്ക്കുമ്പോൾ <ph name="BEGIN_BOLD" />മിക്ക സൈറ്റുകളിൽ നിന്നും സൈൻ ഔട്ട് ചെയ്യും<ph name="END_BOLD" />. സമന്വയിപ്പിക്കൽ ഓഫാണെങ്കിൽ, നിങ്ങളും<ph name="BEGIN_BOLD" />Google സേവനങ്ങളിൽ നിന്നും Chromium-ൽ നിന്നും സൈൻ ഔട്ട് ചെയ്യും<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">ഈ സൈറ്റിനായി, Chromium-ത്തിന് നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ആക്‌സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്</translation>
 <translation id="8833697763442816810">ChromiumOS സിസ്റ്റം</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />എന്തൊക്കെ ഡാറ്റ ഉപയോഗിക്കുന്നു:<ph name="END_BOLD" /> ഈ ഉപകരണത്തിൽ Chromium ഉപയോഗിച്ച് നിങ്ങൾ സന്ദർശിച്ച സൈറ്റുകളുടെ റെക്കോർഡ് ആയ നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം.</translation>
diff --git a/chrome/app/resources/chromium_strings_mn.xtb b/chrome/app/resources/chromium_strings_mn.xtb
index 907d4134..9f7b9f3 100644
--- a/chrome/app/resources/chromium_strings_mn.xtb
+++ b/chrome/app/resources/chromium_strings_mn.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium-д энэ сайтад зориулж камерын зөвшөөрөл шаардлагатай</translation>
 <translation id="7196312274710523067">Chromium-г эхлүүлж чадсангүй. Дахин оролдоно уу.</translation>
 <translation id="7197677400338048821">Chromium таны нууц үгсийг шалгах боломжгүй байна. 24 цагийн дараа дахин оролдоно уу.</translation>
-<translation id="7218568399872925918">Таны зочилсон сайтууд таныг Chromium-г хаах хүртэл мэдээллийг тань санадаг</translation>
 <translation id="7223968959479464213">Бодлогын менежер - Chromium</translation>
 <translation id="7246575524853130370">Chromium-с тооцоолсон таны сонирхол</translation>
 <translation id="7309928523159922338">Зарын хэмжилт нь таны зочилсон сайтуудад зарынхаа гүйцэтгэлийг хэмжихэд туслах мэдээллийг Chromium-с хүсэх боломжийг олгоно. Зарын хэмжилт нь сайт хооронд аль болох бага мэдээлэл шилжүүлснээр сайт хоорондын хяналтыг хязгаарлана.</translation>
@@ -353,8 +352,6 @@
 <translation id="8621669128220841554">Гэнэтийн алдаанаас болж суулгах ажиллагаа амжилтгүй боллоо. Chromium-ыг дахин татаж авна уу.</translation>
 <translation id="8697124171261953979">Энэ нь мөн таныг Chromium-ыг эхлүүлж байх үед эсвэл Omnibox-аас хайлт хийж буй үед гарч ирдэг хуудсыг хянаж байдаг.</translation>
 <translation id="8704119203788522458">Энэ бол таны Chromium.</translation>
-<translation id="8713679423359107094">Таныг Chromium-н бүх цонхыг хаах үед күүки болон сайтын өгөгдлийг автоматаар арилгана</translation>
-<translation id="8796443464227412154">Таныг Chromium-г хаах үед <ph name="BEGIN_BOLD" />ихэнх сайтаас гаргана<ph name="END_BOLD" />. Хэрэв синк хийх унтраалттай бол таныг мөн <ph name="BEGIN_BOLD" />Google-н үйлчилгээнүүд болон Chromium<ph name="END_BOLD" />-с гаргана.</translation>
 <translation id="8796602469536043152">Энэ сайтыг ашиглахын тулд Chromium-д таны камер болон микрофонд хандах зөвшөөрөл шаардлагатай</translation>
 <translation id="8833697763442816810">ChromiumOS систем</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Ямар өгөгдлийг ашигладаг вэ?:<ph name="END_BOLD" /> Таны хөтчийн түүх буюу энэ төхөөрөмж дээр Chromium-г ашиглан зочилсон сайтуудын бүртгэл.</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index ba3ee3c..1d3ab8f 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium ला या साइटसाठी कॅमेराची परवानगी आवश्यक आहे</translation>
 <translation id="7196312274710523067">Chromium लाँच करता आले नाही. पुन्हा प्रयत्न करा.</translation>
 <translation id="7197677400338048821">Chromium तुमचे पासवर्ड तपासू शकत नाही. २४ तासांनंतर पुन्हा प्रयत्न करा.</translation>
-<translation id="7218568399872925918">तुम्ही Chromium बंद करेपर्यंत तुम्ही भेट दिलेल्या साइट तुमची माहिती लक्षात ठेवतात</translation>
 <translation id="7223968959479464213">टास्क मॅनेजर- Chromium</translation>
 <translation id="7246575524853130370">Chromium च्या अंदाजानुसार तुमची स्वारस्ये</translation>
 <translation id="7309928523159922338">जाहिरात मापन हे तुम्ही भेट देत असलेल्या साइटना Chromium कडे माहितीची विनंती करण्यास अनुमती देते, जे साइटला तिच्या जाहिरातींचा परफॉर्मन्स मोजण्यात मदत करते. जाहिरात मापन हे साइटदरम्यान शक्य तितकी कमी माहिती ट्रान्सफर करून क्रॉस-साइट ट्रॅकिंग प्रतिबंधित करते.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">नमूद न केलेल्या एररमुळे स्थापना अयशस्वी झाली. कृपया Chromium पुन्‍हा डाउनलोड करा.</translation>
 <translation id="8697124171261953979">तुम्ही Chromium सुरू करता किंवा ओम्निबॉक्समधून शोध घेता तेव्हा कोणते पृष्ठ दर्शविले जाते हेदेखील हे नियंत्रित करते.</translation>
 <translation id="8704119203788522458">हे तुमचे Chromium आहे</translation>
-<translation id="8713679423359107094">तुम्ही Chromium च्या सर्व विंडो बंद करता तेव्हा, कुकी आणि साइट डेटा आपोआप साफ केला जातो</translation>
-<translation id="8796443464227412154">तुम्ही Chromium बंद कराल तेव्हा, तुम्हाला <ph name="BEGIN_BOLD" />बहुतांश साइटवरून साइन आउट केले<ph name="END_BOLD" /> जाईल. सिंक बंद असल्यास, तुम्हाला <ph name="BEGIN_BOLD" />Google सेवा आणि Chromium मधूनदेखील साइन आउट<ph name="END_BOLD" /> करता येईल.</translation>
 <translation id="8796602469536043152">या साइटसाठी Chromium ला तुमचा कॅमेरा आणि मायक्रोफोन ॲक्सेस करण्याची परवानगी हवी आहे</translation>
 <translation id="8833697763442816810">ChromiumOS सिस्टीम</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />कोणता डेटा वापरला जातो:<ph name="END_BOLD" /> तुमचा ब्राउझिंग इतिहास, ज्यामध्ये या डिव्हाइसवर तुम्ही Chromium वापरून भेट दिलेल्या साइटची नोंद असते.</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index 00af813..09de196 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium memerlukan kebenaran kamera untuk laman ini</translation>
 <translation id="7196312274710523067">Tidak dapat melancarkan Chromium. Cuba lagi.</translation>
 <translation id="7197677400338048821">Chromium tidak dapat menyemak kata laluan anda. Cuba lagi selepas 24 jam.</translation>
-<translation id="7218568399872925918">Laman yang anda lawati mengingati maklumat anda sehingga anda menutup Chromium</translation>
 <translation id="7223968959479464213">Pengurus Tugas - Chromium</translation>
 <translation id="7246575524853130370">Minat anda seperti yang dianggarkan oleh Chromium</translation>
 <translation id="7309928523159922338">Pengukuran iklan membolehkan laman yang anda lawati meminta maklumat daripada Chromium yang membantu laman tersebut mengukur prestasi iklan mereka. Pengukuran iklan mengehadkan penjejakan rentas laman dengan memindahkan maklumat antara laman sedikit yang mungkin.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">Pemasangan gagal disebabkan ralat yang tidak dinyatakan. Sila muat turun semula Chromium.</translation>
 <translation id="8697124171261953979">Sambungan turut mengawal halaman yang ditunjukkan apabila anda memulakan Chromium atau membuat carian dari Kotak Omni.</translation>
 <translation id="8704119203788522458">Ini Chromium anda</translation>
-<translation id="8713679423359107094">Apabila anda menutup semua tetingkap Chromium, kuki dan data laman akan dikosongkan secara automatik</translation>
-<translation id="8796443464227412154">Anda akan <ph name="BEGIN_BOLD" />dilog keluar daripada kebanyakan laman<ph name="END_BOLD" /> apabila anda menutup Chromium. Jika penyegerakan dimatikan, anda juga akan <ph name="BEGIN_BOLD" />dilog keluar daripada perkhidmatan Google dan Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium memerlukan kebenaran untuk mengakses kamera dan mikrofon anda bagi tapak ini</translation>
 <translation id="8833697763442816810">Sistem Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Jenis data yang digunakan:<ph name="END_BOLD" /> Sejarah penyemakan imbas anda, rekod laman yang anda lawati menggunakan Chromium pada peranti ini.</translation>
diff --git a/chrome/app/resources/chromium_strings_my.xtb b/chrome/app/resources/chromium_strings_my.xtb
index 27fb187..0d910c1 100644
--- a/chrome/app/resources/chromium_strings_my.xtb
+++ b/chrome/app/resources/chromium_strings_my.xtb
@@ -287,7 +287,6 @@
 <translation id="718435575166326686">Chromium သည် ဤဝဘ်ဆိုက်အတွက် ကင်မရာခွင့်ပြုချက် လိုအပ်သည်</translation>
 <translation id="7196312274710523067">Chromium ကို ဖွင့်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="7197677400338048821">Chromium က သင့်စကားဝှက်များကို စစ်ဆေး၍မရပါ။ ၂၄ နာရီအကြာတွင် ထပ်စမ်းကြည့်ပါ။</translation>
-<translation id="7218568399872925918">Chromium ကို သင်မပိတ်ခင်အထိ ဝဘ်ဆိုက်များသည် သင့်အချက်အလက်များကို မှတ်ထားပါသည်</translation>
 <translation id="7223968959479464213">လုပ်ငန်းမန်နေဂျာ - Chromium</translation>
 <translation id="7246575524853130370">Chromium က ခန့်မှန်းထားသည့် သင်၏ စိတ်ဝင်စားမှုများ</translation>
 <translation id="7309928523159922338">Ad measurement က သင်ဝင်ကြည့်သည့်ဝဘ်ဆိုက်များကို Chromium ထံမှ အချက်အလက်တောင်းဆိုခွင့်ပြုပြီး ၎င်းက ဝဘ်ဆိုက်များ၏ ကြော်ငြာစွမ်းဆောင်ရည် တိုင်းတာရာတွင် ကူညီပေးသည်။ Ad measurement သည် ဝဘ်ဆိုက်တစ်ခုနှင့်တစ်ခု အချက်အလက်အနည်းဆုံး လွှဲပြောင်းခြင်းဖြင့် ဝဘ်ဆိုက်များကြားစောင့်ကြည့်ခြင်းကို ကန့်သတ်သည်။</translation>
@@ -359,8 +358,6 @@
 <translation id="8621669128220841554">မသိရသည့် အမှားတစ်ခုကြောင့် တပ်ဆင်မှု မအေင်မြင်ခဲ့ပါ။ ကျေးဇူးပြုပြီး Chromium ကို ထပ်ပြီး ဒေါင်းလုဒ် လုပ်ယူပါ။</translation>
 <translation id="8697124171261953979">It also controls what page is shown when you start Chromium or search from the Omnibox.</translation>
 <translation id="8704119203788522458">ဒါဟာ သင်၏ Chromium ပါ</translation>
-<translation id="8713679423359107094">Chromium ဝင်းဒိုးများအားလုံးကို သင်ပိတ်လိုက်ချိန်တွင် ကွတ်ကီးနှင့် ဝဘ်ဆိုက် ဒေတာများသည် အလိုလို ရှင်းထုတ်ပြီးဖြစ်သည်</translation>
-<translation id="8796443464227412154">Chromium ကို ပိတ်လိုက်ချိန်တွင် <ph name="BEGIN_BOLD" />ဝဘ်ဆိုက်အများစုမှ သင်ထွက်သွားလိမ့်မည်<ph name="END_BOLD" />။ စင့်ခ်လုပ်ခြင်း ပိတ်ထားလျှင်လည်း <ph name="BEGIN_BOLD" />Google ဝန်ဆောင်မှုများနှင့် Chromium မှ သင်ထွက်သွားလိမ့်မည်<ph name="END_BOLD" />။</translation>
 <translation id="8796602469536043152">ဤဝဘ်ဆိုက်အတွက် Chromium သည် သင်၏ကင်မရာနှင့် မိုက်ခရိုဖုန်းကို အသုံးပြုခွင့်ရရန် လိုအပ်ပါသည်</translation>
 <translation id="8833697763442816810">ChromiumOS စနစ်</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />အသုံးပြုသည့် ဒေတာ-<ph name="END_BOLD" /> ဤစက်တွင် Chromium သုံးပြီး သင်ဝင်ကြည့်သည့်ဝဘ်ဆိုက်များ၏ မှတ်တမ်းဖြစ်သော သင့်ကြည့်ရှုခြင်းမှတ်တမ်း။</translation>
diff --git a/chrome/app/resources/chromium_strings_ne.xtb b/chrome/app/resources/chromium_strings_ne.xtb
index ec0dd72..3fdcb664 100644
--- a/chrome/app/resources/chromium_strings_ne.xtb
+++ b/chrome/app/resources/chromium_strings_ne.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">यो साइट चलाउन Chromium लाई क्यामेरा प्रयोग गर्ने अनुमति दिनु पर्ने हुन्छ</translation>
 <translation id="7196312274710523067">Chromium सुरु गर्न सकिएन। फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="7197677400338048821">Chromium तपाईंका पासवर्डहरू जाँच्न सक्दैन। २४ घन्टापछि फेरि प्रयास गर्नुहोस्।</translation>
-<translation id="7218568399872925918">तपाईंले खोल्ने साइटहरूले तपाईंले Chromium बन्द नगरुन्जेल तपाईंको जानकारी याद राख्छन्</translation>
 <translation id="7223968959479464213">कार्य व्यवस्थापक - Chromium</translation>
 <translation id="7246575524853130370">Chromium ले अनुमान गरेका तपाईंका रुचिहरू</translation>
 <translation id="7309928523159922338">तपाईंले खोल्ने साइटहरूले विज्ञापनको पर्फर्मेन्स मापन गर्ने सुविधाका सहायताले Chromium सँग साइटलाई त्यसका विज्ञापनहरूको पर्फर्मेन्स मापन गर्न सघाउने जानकारी माग्न सक्छन्। विज्ञापनको पर्फर्मेन्स मापन गर्ने सुविधाले विभिन्न साइटहरूका बिचमा सकेसम्म कम जानकारी ट्रान्स्फर गरेर ती साइटमा गरिने गतिविधि ट्र्याक गर्न दिँदैन।</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">अनिश्</translation>
 <translation id="8697124171261953979">तपाइँले Chromium सुरु गर्दा वा ओम्निबाकसबाट खोज्दा कुन पृष्ठ देखाउँछ भनेर पनि यसले नियन्त्रण गर्छ।</translation>
 <translation id="8704119203788522458">यो तपाइँको Chromium हो</translation>
-<translation id="8713679423359107094">तपाईंले Chromium मा खोल्नुभएका सबै विन्डो बन्द गर्दा कुकीहरू र साइट डेटा स्वतः मेटाइन्छन्</translation>
-<translation id="8796443464227412154">तपाईंले Chromium बन्द गरेपछि तपाईंलाई <ph name="BEGIN_BOLD" />अधिकांश साइटहरूबाट साइन आउट<ph name="END_BOLD" /> गरिने छ। तपाईंले सिंक गर्ने सुविधा अफ गर्नुभएको छ भने तपाईंलाई <ph name="BEGIN_BOLD" />Google का सेवाहरू र Chromium बाट पनि साइन आउट गरिने छ<ph name="END_BOLD" />।</translation>
 <translation id="8796602469536043152">Chromium लाई यो साइटका लागि तपाईंको क्यामेरा र माइक्रोफोनमाथि पहुँच राख्ने अनुमति चाहिन्छ</translation>
 <translation id="8833697763442816810">ChromiumOS सिस्टम</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />के कस्ता जानकारी प्रयोग गरिन्छ:<ph name="END_BOLD" /> तपाईंको ब्राउजिङ इतिहास अर्थात् तपाईंले यो डिभाइसमा Chromium प्रयोग गरी खोलेका साइटहरूको रेकर्ड।</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index 64fe6ee4..32bb459 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium heeft camerarechten nodig voor deze site</translation>
 <translation id="7196312274710523067">Kan Chromium niet starten. Probeer het opnieuw.</translation>
 <translation id="7197677400338048821">Chromium kan je wachtwoorden niet checken. Probeer het over 24 uur opnieuw.</translation>
-<translation id="7218568399872925918">Sites die je bezoekt, onthouden je informatie totdat je Chromium sluit</translation>
 <translation id="7223968959479464213">Taakbeheer - Chromium</translation>
 <translation id="7246575524853130370">Je interesses volgens schattingen van Chromium</translation>
 <translation id="7309928523159922338">Via Advertentiemeting kunnen sites die je bezoekt Chromium om informatie vragen zodat ze de prestaties van hun advertenties kunnen meten. Advertentiemeting beperkt tracking op meerdere sites door zo min mogelijk informatie over te dragen tussen sites.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">De installatie is mislukt wegens een onbekende fout. Download Chromium opnieuw.</translation>
 <translation id="8697124171261953979">Hiermee wordt ook gecontroleerd welke pagina wordt getoond wanneer je Chromium start of vanuit de omnibox zoekt.</translation>
 <translation id="8704119203788522458">Personaliseer jouw Chromium</translation>
-<translation id="8713679423359107094">Als je alle Chromium-vensters sluit, worden de cookies en sitegegevens automatisch gewist</translation>
-<translation id="8796443464227412154">Je wordt <ph name="BEGIN_BOLD" />uitgelogd van de meeste sites<ph name="END_BOLD" /> als je Chromium sluit. Als synchronisatie uitstaat, word je ook <ph name="BEGIN_BOLD" />uitgelogd van Google-services en Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium heeft toegangsrechten voor je camera en microfoon nodig voor deze site</translation>
 <translation id="8833697763442816810">Chromium OS-systeem</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Welke gegevens worden gebruikt:<ph name="END_BOLD" /> Je browsegeschiedenis, een lijst van de sites die je via Chromium op dit apparaat hebt bezocht.</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
index bea2806..05be405 100644
--- a/chrome/app/resources/chromium_strings_no.xtb
+++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium trenger kameratillatelse for dette nettstedet</translation>
 <translation id="7196312274710523067">Kunne ikke starte Chromium. Prøv på nytt.</translation>
 <translation id="7197677400338048821">Chromium kan ikke sjekke passordene dine. Prøv på nytt når det har gått 24 timer.</translation>
-<translation id="7218568399872925918">Nettsteder du besøker, husker informasjonen din til du lukker Chromium</translation>
 <translation id="7223968959479464213">Oppgavebehandling – Chromium</translation>
 <translation id="7246575524853130370">Interessene dine som Chromium har anslått</translation>
 <translation id="7309928523159922338">Med annonsemålinger kan nettsteder du besøker, spørre Chromium om informasjon som hjelper nettstedet å måle annonseresultatene sine. Annonsemålinger begrenser sporing på tvers av nettsteder ved å overføre så lite informasjon som mulig mellom nettsteder.</translation>
@@ -354,8 +353,6 @@
 <translation id="8621669128220841554">Installeringen mislyktes på grunn av en uspesifisert feil. Last ned Chromium på nytt.</translation>
 <translation id="8697124171261953979">Den styrer også hvilken side som vises når du starter Chromium eller søker fra multifunksjonsfeltet.</translation>
 <translation id="8704119203788522458">Dette er din Chromium</translation>
-<translation id="8713679423359107094">Når du lukker alle Chromium-vinduer, blir informasjonskapsler og nettstedsdata slettet automatisk</translation>
-<translation id="8796443464227412154">Du blir <ph name="BEGIN_BOLD" />logget av de fleste nettsteder<ph name="END_BOLD" /> når du lukker Chromium. Hvis synkronisering er av, blir du også <ph name="BEGIN_BOLD" />logget av Google-tjenester og Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium trenger tilgang til kameraet ditt og mikrofonen din for dette nettstedet</translation>
 <translation id="8833697763442816810">ChromiumOS-systemet</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Disse dataene brukes:<ph name="END_BOLD" /> nettleserloggen din, som er en logg over nettsteder du har besøkt med Chromium på denne enheten.</translation>
diff --git a/chrome/app/resources/chromium_strings_or.xtb b/chrome/app/resources/chromium_strings_or.xtb
index 7c55764d..67ae9f4 100644
--- a/chrome/app/resources/chromium_strings_or.xtb
+++ b/chrome/app/resources/chromium_strings_or.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">ଏହି ସାଇଟ୍ ପାଇଁ Chromium କ୍ୟାମେରା ଅନୁମତି ଆବଶ୍ୟକ କରେ</translation>
 <translation id="7196312274710523067">Chromium ଲଞ୍ଚ କରାଯାଇପାରିଲା ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="7197677400338048821">Chromium ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ ନାହିଁ। 24 ଘଣ୍ଟା ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
-<translation id="7218568399872925918">ଆପଣ Chromiumକୁ ବନ୍ଦ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଆପଣ ଭିଜିଟ କରିଥିବା ସାଇଟଗୁଡ଼ିକ ଆପଣଙ୍କ ସୂଚନାକୁ ମନେ ରଖିଥାଏ</translation>
 <translation id="7223968959479464213">ଟାସ୍କ ପରିଚାଳକ - Chromium</translation>
 <translation id="7246575524853130370">Chromiumର ଆକଳନ ଅନୁସାରେ ଆପଣଙ୍କ ରୁଚିଗୁଡ଼ିକ</translation>
 <translation id="7309928523159922338">ବିଜ୍ଞାପନର ପରିମାପ ଆପଣ ଭିଜିଟ କରୁଥିବା ସାଇଟଗୁଡ଼ିକୁ Chromiumରୁ ସୂଚନା ପାଇଁ ଅନୁରୋଧ କରିବାକୁ ଅନୁମତି ଦିଏ, ଯାହା ସାଇଟକୁ ତାହାର ବିଜ୍ଞାପନଗୁଡ଼ିକର ପରଫରମାନ୍ସ ମାପିବାରେ ସାହାଯ୍ୟ କରେ। ସାଇଟଗୁଡ଼ିକ ମଧ୍ୟରେ ଯଥା ସମ୍ଭବ କମ୍ ସୂଚନା ଟ୍ରାନ୍ସଫର କରି ବିଜ୍ଞାପନର ପରିମାପ କ୍ରସ-ସାଇଟ ଟ୍ରାକିଂକୁ ପ୍ରତିବନ୍ଧିତ କରେ।</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">ଅନିର୍ଦ୍ଦିଷ୍ଟ ତ୍ରୁଟି ଯୋଗୁଁ ଇନ୍‌ଷ୍ଟଲେସନ୍ ବିଫଳ ହୋଇଛି। ଦୟାକରି Chromium ପୁଣି ଡାଉନ୍‌ଲୋଡ୍ କରନ୍ତୁ।</translation>
 <translation id="8697124171261953979">ଯେତେବେଳେ ଆପଣ Chromium ଆରମ୍ଭ କରନ୍ତି କିମ୍ବା ବହୁଉପଯୋଗୀ କ୍ଷେତ୍ରରୁ ସନ୍ଧାନ କରନ୍ତି, ସେତେବେଳେ କେଉଁ ପୃଷ୍ଠା ଦେଖାଯିବ ତାହା ମଧ୍ୟ ଏହା ନିୟନ୍ତ୍ରଣ କରେ।</translation>
 <translation id="8704119203788522458">ଏହା ହେଉଛି ଆପଣଙ୍କର Chromium</translation>
-<translation id="8713679423359107094">ଯେତେବେଳେ ଆପଣ ସମସ୍ତ Chromium ୱିଣ୍ଡୋକୁ ବନ୍ଦ କରନ୍ତି, ସେତେବେଳେ କୁକୀ ଏବଂ ସାଇଟ ଡାଟା ସ୍ୱଚାଳିତ ଭାବେ ଖାଲି ହୋଇଯାଏ</translation>
-<translation id="8796443464227412154">ଆପଣ Chromiumକୁ ବନ୍ଦ କଲେ <ph name="BEGIN_BOLD" />ଅଧିକାଂଶ ସାଇଟରୁ ସାଇନ ଆଉଟ<ph name="END_BOLD" /> ହୋଇଯିବେ। ଯଦି ସିଙ୍କ ବନ୍ଦ ଅଛି, ତେବେ ଆପଣ <ph name="BEGIN_BOLD" />Google ସେବାଗୁଡ଼ିକ ଏବଂ Chromiumରୁ ସାଇନ ଆଉଟ<ph name="END_BOLD" /> ମଧ୍ୟ ହୋଇଯିବେ।</translation>
 <translation id="8796602469536043152">ଏହି ସାଇଟ୍ ପାଇଁ ଆପଣଙ୍କର କ୍ୟାମେରା ଓ ମାଇକ୍ରୋଫୋନ୍ ଆକ୍ସେସ୍ କରିବାକୁ Chromium ଅନୁମତି ଆବଶ୍ୟକ କରୁଛି</translation>
 <translation id="8833697763442816810">ChromiumOS ସିଷ୍ଟମ</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />କେଉଁ ଡାଟା ବ୍ୟବହାର କରାଯାଏ:<ph name="END_BOLD" /> ଆପଣଙ୍କ ବ୍ରାଉଜିଂ ଇତିହାସ, ଏହି ଡିଭାଇସରେ Chromium ବ୍ୟବହାର କରି ଆପଣ ଭିଜିଟ କରିଥିବା ସାଇଟଗୁଡ଼ିକର ଏକ ରେକର୍ଡ।</translation>
diff --git a/chrome/app/resources/chromium_strings_pa.xtb b/chrome/app/resources/chromium_strings_pa.xtb
index f31866fb..2b56028 100644
--- a/chrome/app/resources/chromium_strings_pa.xtb
+++ b/chrome/app/resources/chromium_strings_pa.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium ਨੂੰ ਇਸ ਸਾਈਟ ਲਈ ਕੈਮਰਾ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation>
 <translation id="7196312274710523067">Chromium ਨੂੰ ਲਾਂਚ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="7197677400338048821">Chromium ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦਾ। 24 ਘੰਟਿਆਂ ਬਾਅਦ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
-<translation id="7218568399872925918">ਜਿਨ੍ਹਾਂ ਸਾਈਟਾਂ 'ਤੇ ਤੁਸੀਂ ਜਾਂਦੇ ਹੋ, ਉਹ ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ ਨੂੰ ਉਦੋਂ ਤੱਕ ਯਾਦ ਰੱਖਦੀਆਂ ਹਨ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ Chromium ਨੂੰ ਬੰਦ ਨਹੀਂ ਕਰਦੇ</translation>
 <translation id="7223968959479464213">ਕੰਮ ਪ੍ਰਬੰਧਕ - Chromium</translation>
 <translation id="7246575524853130370">Chromium ਦੇ ਅੰਦਾਜ਼ੇ ਮੁਤਾਬਕ ਤੁਹਾਡੀਆਂ ਦਿਲਚਸਪੀਆਂ</translation>
 <translation id="7309928523159922338">ਵਿਗਿਆਪਨ ਮੁਲਾਂਕਣ ਉਨ੍ਹਾਂ ਸਾਈਟਾਂ ਨੂੰ Chromium ਤੋਂ ਜਾਣਕਾਰੀ ਦੀ ਬੇਨਤੀ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ ਜਾਂਦੇ ਹੋ, ਜਿਸ ਨਾਲ ਸਾਈਟ ਨੂੰ ਆਪਣੇ ਵਿਗਿਆਪਨਾਂ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਮਿਲਦੀ ਹੈ। ਵਿਗਿਆਪਨ ਮੁਲਾਂਕਣ ਸਾਈਟਾਂ ਵਿਚਕਾਰ ਜਿੰਨੀ ਸੰਭਵ ਹੋ ਸਕੇ ਓਨੀ ਘੱਟ ਜਾਣਕਾਰੀ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰ ਕੇ ਕ੍ਰਾਸ-ਸਾਈਟ ਟਰੈਕਿੰਗ ਨੂੰ ਪ੍ਰਤਿਬੰਧਿਤ ਕਰਦਾ ਹੈ।</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">ਅਨਿਸ਼ਚਿਤ ਗੜਬੜ ਕਾਰਨ ਸਥਾਪਨਾ ਅਸਫਲ ਹੋ ਗਈ। ਕਿਰਪਾ ਕਰਕੇ Chromium ਨੂੰ ਦੁਬਾਰਾ ਡਾਊਨਲੋਡ ਕਰੋ।</translation>
 <translation id="8697124171261953979">ਇਹ ਇਸ ਨੂੰ ਵੀ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ Chromium ਨੂੰ ਸ਼ੁਰੂ ਕਰਦੇ ਜਾਂ ਓਮਨੀਬਾਕਸ ਤੋਂ ਖੋਜ ਕਰਦੇ ਹੋ।</translation>
 <translation id="8704119203788522458">ਇਹ ਤੁਹਾਡਾ Chromium ਹੈ</translation>
-<translation id="8713679423359107094">ਜਦੋਂ ਤੁਸੀਂ ਸਾਰੀਆਂ Chromium ਵਿੰਡੋਆਂ ਨੂੰ ਬੰਦ ਕਰਦੇ ਹੋ, ਤਾਂ ਕੁਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਡਾਟਾ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਲੀਅਰ ਹੋ ਜਾਂਦਾ ਹੈ</translation>
-<translation id="8796443464227412154">Chromium ਨੂੰ ਬੰਦ ਕਰਨ 'ਤੇ <ph name="BEGIN_BOLD" />ਤੁਸੀਂ ਜ਼ਿਆਦਾਤਰ ਸਾਈਟਾਂ ਤੋਂ ਸਾਈਨ-ਆਊਟ ਹੋ ਜਾਓਗੇ।<ph name="END_BOLD" /> ਜੇ ਸਿੰਕ ਬੰਦ ਹੈ, ਤਾਂ ਤੁਸੀਂ <ph name="BEGIN_BOLD" />Google ਸੇਵਾਵਾਂ ਅਤੇ Chromium ਤੋਂ ਵੀ ਸਾਈਨ-ਆਊਟ<ph name="END_BOLD" /> ਹੋ ਜਾਓਗੇ।</translation>
 <translation id="8796602469536043152">Chromium ਨੂੰ ਇਸ ਸਾਈਟ ਵਾਸਤੇ ਤੁਹਾਡੇ ਕੈਮਰੇ ਅਤੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ 'ਤੇ ਪਹੁੰਚ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation>
 <translation id="8833697763442816810">ChromiumOS ਸਿਸਟਮ</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />ਕਿਹੜਾ ਡਾਟਾ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:<ph name="END_BOLD" /> ਤੁਹਾਡਾ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ, ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਉਨ੍ਹਾਂ ਸਾਈਟਾਂ ਦਾ ਰਿਕਾਰਡ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ Chromium ਦੀ ਵਰਤੋਂ ਨਾਲ ਗਏ ਹੋ।</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb
index e7c262e9..13b35621d 100644
--- a/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -280,7 +280,6 @@
 <translation id="718435575166326686">Ta strona musi mieć w Chromium dostęp do aparatu</translation>
 <translation id="7196312274710523067">Nie udało się uruchomić Chromium. Spróbuj ponownie.</translation>
 <translation id="7197677400338048821">Chromium nie może sprawdzić Twoich haseł. Spróbuj ponownie za 24 godziny.</translation>
-<translation id="7218568399872925918">Strony, na które wchodzisz, pamiętają Cię, dopóki nie zamkniesz Chromium</translation>
 <translation id="7223968959479464213">Menedżer zadań – Chromium</translation>
 <translation id="7246575524853130370">Twoje zainteresowania oszacowane przez Chromium</translation>
 <translation id="7309928523159922338">W ramach pomiaru skuteczności reklam odwiedzane przez Ciebie witryny mogą prosić Chromium o dostęp do potrzebnych w tym celu informacji. Pomiar skuteczności reklam ogranicza śledzenie w witrynach, ponieważ pomiędzy poszczególnymi stronami przenoszona jest możliwie najmniejsza ilość informacji.</translation>
@@ -352,8 +351,6 @@
 <translation id="8621669128220841554">Instalacja nie powiodła się z powodu nieokreślonego błędu. Pobierz Chromium ponownie.</translation>
 <translation id="8697124171261953979">Kontroluje także to, jaka strona wyświetla się po uruchomieniu Chromium lub wyszukiwaniu w omniboksie.</translation>
 <translation id="8704119203788522458">Oto Twoja przeglądarka Chromium</translation>
-<translation id="8713679423359107094">Gdy zamkniesz wszystkie okna Chromium, zostaną automatycznie wyczyszczone pliki cookie i dane witryn</translation>
-<translation id="8796443464227412154">Gdy zamkniesz Chromium, nastąpi <ph name="BEGIN_BOLD" />wylogowanie z większości stron<ph name="END_BOLD" />. Jeśli wyłączona jest synchronizacja, dojdzie też do <ph name="BEGIN_BOLD" />wylogowania z usług Google i Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium potrzebuje uprawnień dostępu do aparatu i mikrofonu na tej stronie</translation>
 <translation id="8833697763442816810">System operacyjny Chromium</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Jakich danych używamy:<ph name="END_BOLD" /> używamy Twojej historii przeglądania, czyli rejestru witryn, które odwiedzasz w Chromium na tym urządzeniu.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb
index 66aedd6a..d700198a 100644
--- a/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -279,7 +279,6 @@
 <translation id="718435575166326686">O Chromium precisa da permissão de acesso à câmera para este site</translation>
 <translation id="7196312274710523067">Não foi possível iniciar o Chromium. Tente novamente.</translation>
 <translation id="7197677400338048821">Não foi possível verificar suas senhas. Tente novamente em 24 horas.</translation>
-<translation id="7218568399872925918">Os sites que você acessar armazenarão suas informações até que o Chromium seja fechado</translation>
 <translation id="7223968959479464213">Gerenciador de tarefas - Chromium</translation>
 <translation id="7246575524853130370">Seus interesses estimados pelo Chromium</translation>
 <translation id="7309928523159922338">A medição de anúncios permite que os sites que você visita solicitem informações do Chromium, ajudando a medir o desempenho dos anúncios. Ela também restringe o rastreamento entre sites transferindo o mínimo de informações possível entre eles.</translation>
@@ -349,8 +348,6 @@
 <translation id="8621669128220841554">Falha na instalação devido a um erro não especificado. Faça o download do Chromium novamente.</translation>
 <translation id="8697124171261953979">Controla também qual página deve ser exibida quando você inicia o Chromium ou faz uma pesquisa na Omnibox.</translation>
 <translation id="8704119203788522458">Este é seu Chromium</translation>
-<translation id="8713679423359107094">Quando você fechar todas as janelas do Chromium, os cookies e os dados dos sites serão apagados automaticamente</translation>
-<translation id="8796443464227412154">Sua conta será <ph name="BEGIN_BOLD" />desconectada da maioria dos sites<ph name="END_BOLD" /> quando você fechar o Chromium. Se a sincronização estiver desativada, a conta também será <ph name="BEGIN_BOLD" />desconectada dos Serviços do Google e do navegador<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">O Chromium precisa de permissão para este site acessar sua câmera e seu microfone</translation>
 <translation id="8833697763442816810">Sistema ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Quais dados são usados<ph name="END_BOLD" />: seu histórico de navegação, um registro de sites visitados usando o Chromium neste dispositivo.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb
index 4aed5a4..42dd5bd 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">O Chromium necessita da autorização da câmara para este site</translation>
 <translation id="7196312274710523067">Não foi possível iniciar o Chromium. Tente novamente.</translation>
 <translation id="7197677400338048821">O Chromium não consegue verificar as suas palavras-passe. Tente novamente após 24 horas.</translation>
-<translation id="7218568399872925918">Os sites que visita memorizam as suas informações até fechar o Chromium</translation>
 <translation id="7223968959479464213">Gestor de Tarefas - Chromium</translation>
 <translation id="7246575524853130370">Os seus interesses conforme estimado pelo Chromium</translation>
 <translation id="7309928523159922338">A medição de anúncios permite que os sites que visita peçam informações ao Chromium que ajudam o site a medir o desempenho dos respetivos anúncios. A medição de anúncios restringe a monitorização entre sites ao transferir o mínimo de informações possível entre sites.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">A instalação falhou devido a um erro não especificado. Descarregue novamente o Chromium .</translation>
 <translation id="8697124171261953979">Também controla a página apresentada quando inicia o Chromium ou pesquisa a partir da Caixa geral.</translation>
 <translation id="8704119203788522458">Este é o seu Chromium</translation>
-<translation id="8713679423359107094">Quando fecha todas as janelas do Chromium, os cookies e os dados de sites são automaticamente limpos</translation>
-<translation id="8796443464227412154">A sua <ph name="BEGIN_BOLD" />sessão será terminada na maioria dos sites<ph name="END_BOLD" /> quando fecha o Chromium. Se a sincronização estiver desativada, a sua <ph name="BEGIN_BOLD" />sessão também será terminada nos serviços Google e no Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">O Chromium necessita de autorização de acesso à câmara e ao microfone para este site.</translation>
 <translation id="8833697763442816810">Sistema ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Que dados são usados:<ph name="END_BOLD" /> o seu histórico de navegação, um registo dos sites que visitou através do Chromium neste dispositivo.</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index a4fec970..d1ddae2 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium are nevoie de acces la cameră pentru acest site</translation>
 <translation id="7196312274710523067">Chromium nu a putut fi lansat. Încearcă din nou.</translation>
 <translation id="7197677400338048821">Chromium nu îți poate verifica parolele. Încearcă din nou după 24 de ore.</translation>
-<translation id="7218568399872925918">Site-urile pe care le accesezi rețin informațiile tale până când închizi Chromium</translation>
 <translation id="7223968959479464213">Manager de activități - Chromium</translation>
 <translation id="7246575524853130370">Interesele tale estimate de Chromium</translation>
 <translation id="7309928523159922338">Ad measurement le dă site-urilor pe care le accesezi posibilitatea de a solicita informații de la Chromium care le ajută să măsoare performanța anunțurilor asociate. Ad measurement restricționează urmărirea pe mai multe site-uri prin transferul câtor mai puține informații între site-uri.</translation>
@@ -354,8 +353,6 @@
 <translation id="8621669128220841554">Instalarea nu a reușit din cauza unei erori neprecizate. Descărcați Chromium din nou.</translation>
 <translation id="8697124171261953979">Stabilește și ce pagină se afișează când porniți Chromium sau când căutați din caseta polivalentă.</translation>
 <translation id="8704119203788522458">Acesta este browserul dvs. Chromium</translation>
-<translation id="8713679423359107094">Când închizi toate ferestrele Chromium, cookie-urile și datele privind site-urile sunt șterse automat</translation>
-<translation id="8796443464227412154">Vei fi <ph name="BEGIN_BOLD" />deconectat(ă) de pe majoritatea site-urilor<ph name="END_BOLD" /> când închizi Chromium. Dacă sincronizarea este dezactivată, vei fi <ph name="BEGIN_BOLD" />deconectat(ă) și de la serviciile Google și de la Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium are nevoie de permisiune ca să acceseze camera foto și microfonul pentru acest site</translation>
 <translation id="8833697763442816810">Sistemul de operare Chromium</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Ce date sunt folosite:<ph name="END_BOLD" /> istoricul tău de navigare, o evidență a site-urilor pe care le-ai accesat folosind Chromium pe acest dispozitiv.</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index 29fca68..94b178c 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -280,7 +280,6 @@
 <translation id="718435575166326686">Браузер Chromium запрашивает доступ к камере для этого сайта.</translation>
 <translation id="7196312274710523067">Не удалось запустить Chromium. Повторите попытку.</translation>
 <translation id="7197677400338048821">Не удается проверить пароли в Chromium. Повторите попытку через 24 часа.</translation>
-<translation id="7218568399872925918">Ваши данные сохраняются на посещенных сайтах, пока вы не закроете браузер Chromium.</translation>
 <translation id="7223968959479464213">Диспетчер задач – Chromium</translation>
 <translation id="7246575524853130370">Ваши интересы по данным Chromium</translation>
 <translation id="7309928523159922338">Сайты, которые вы посещаете, смогут проводить оценку эффективности рекламы, запрашивая информацию у Chromium. Оценка эффективности рекламы ограничивает межсайтовое отслеживание, сокращая объем информации, передаваемой между сайтами, до минимума.</translation>
@@ -350,8 +349,6 @@
 <translation id="8621669128220841554">В процессе установки произошла неизвестная ошибка. Скачайте Chromium ещё раз.</translation>
 <translation id="8697124171261953979">Кроме того, расширение изменило стартовую страницу Chromium и поисковую систему, используемую по умолчанию при вводе запроса в омнибокс.</translation>
 <translation id="8704119203788522458">Ваш персональный Chromium</translation>
-<translation id="8713679423359107094">Когда вы закроете все окна браузера Chromium, файлы cookie и данные сайтов будут автоматически удалены.</translation>
-<translation id="8796443464227412154">Когда вы закроете Chromium, вы <ph name="BEGIN_BOLD" />выйдете с большинства сайтов<ph name="END_BOLD" />. Если синхронизация отключена, вы также <ph name="BEGIN_BOLD" />выйдете из сервисов Google и браузера Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Для этого сайта Chromium запрашивает доступ к камере и микрофону.</translation>
 <translation id="8833697763442816810">Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Какие данные используются.<ph name="END_BOLD" /> История вашего браузера – это список сайтов, которые вы открывали в Chromium на этом устройстве.</translation>
diff --git a/chrome/app/resources/chromium_strings_si.xtb b/chrome/app/resources/chromium_strings_si.xtb
index e4e5556..7733ba5 100644
--- a/chrome/app/resources/chromium_strings_si.xtb
+++ b/chrome/app/resources/chromium_strings_si.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">මෙම අඩවිය සඳහා Chromium හට කැමරා අවසරය අවශ්‍යයි</translation>
 <translation id="7196312274710523067">Chromium දියත් කළ නොහැකි විය. නැවත උත්සාහ කරන්න.</translation>
 <translation id="7197677400338048821">Chromium හට ඔබේ මුරපද පරීක්‍ෂා කළ නොහැක. පැය 24-කට පසුව නැවත උත්සාහ කරන්න.</translation>
-<translation id="7218568399872925918">ඔබ පිවිසෙන අඩවි ඔබ Chromium වසන තෙක් ඔබගේ තොරතුරු මතක තබා ගනියි</translation>
 <translation id="7223968959479464213">කාර්ය කළමනාකරු - Chromium</translation>
 <translation id="7246575524853130370">Chromium මගින් තක්සේරු කර ඇති පරිදි ඔබගේ ලැදිකම්</translation>
 <translation id="7309928523159922338">වෙළඳ දැන්වීම් මිනුම ඔබ පිවිසෙන අඩවිවලට Chromium වෙතින් තොරතුරු ඉල්ලීමට ඉඩදෙන අතර එය අඩවියට ඔවුන්ගේ වෙළඳ දැන්වීම්වල කාර්ය සාධනය මැනීමට උපකාරී වේ. වෙළඳ දැන්වීම් මිනුම අඩවි අතර හැකි තරම් අඩුවෙන් තතු මාරු කිරීමෙන් හරස්-අඩවි ලුහුබැඳීම සීමා කරයි.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">නිශ්චිත නොමැති දෝෂයක් හේතුවෙන් ස්ථාපනය අසාර්ථක විය. නැවතත් Chromium බාගන්න.</translation>
 <translation id="8697124171261953979">තවද එය ඔබ Chromium විවෘත කරන විට හෝ Omnibox වෙතින් සොයන විට පෙන්වන වෙබ් පිටුව නිර්ණය කරයි.</translation>
 <translation id="8704119203788522458">මෙය ඔබේ Chromium වේ</translation>
-<translation id="8713679423359107094">ඔබ සියලු Chromium කවුළු වැසූ විට, කුකි සහ අඩවි දත්ත ස්වයංක්‍රියව ඉවත් කෙරේ</translation>
-<translation id="8796443464227412154">ඔබ Chromium වසන විට ඔබව <ph name="BEGIN_BOLD" />බොහොමයක් අඩවිවලින්<ph name="END_BOLD" /> වරනු ඇත. සමමුහුර්ත කිරීම ක්‍රියාවිරහිත නම්, ඔබව <ph name="BEGIN_BOLD" />Google සේවා සහ Chromium වෙතින්ද වරනු ඇත<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium හට මෙම අඩවිය සදහා ඔබේ කැමරාවට සහ මයික්‍රෆෝනයට ප්‍රවේශ වීමට අවසර අවශ්‍යයි</translation>
 <translation id="8833697763442816810">ChromiumOS පද්ධතිය</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />භාවිත කරන දත්ත මොනවාද:<ph name="END_BOLD" /> ඔබගේ බ්‍රවුස් කිරීමේ ඉතිහාසය, මෙම උපාංගයේ Chromium භාවිතයෙන් ඔබ පිවිසි අඩවිවල වාර්තාවක්.</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb
index caa64d3..8445f0a 100644
--- a/chrome/app/resources/chromium_strings_sk.xtb
+++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium vyžaduje pre tento web povolený prístup ku kamere</translation>
 <translation id="7196312274710523067">Chromium sa nepodarilo spustiť. Skúste to znova.</translation>
 <translation id="7197677400338048821">Chromium nemôže skontrolovať heslá. Skúste to znova o 24 hodín.</translation>
-<translation id="7218568399872925918">Navštevované weby si pamätajú vaše informácie, dokým nezavriete Chromium</translation>
 <translation id="7223968959479464213">Správca úloh – Chromium</translation>
 <translation id="7246575524853130370">Vaše záujmy podľa odhadu prehliadača Chromium</translation>
 <translation id="7309928523159922338">Meranie reklám umožňuje webom, ktoré navštívite, požadovať od prehliadača Chromium údaje, ktoré im pomáhajú merať výkonnosť reklám. Meranie reklám obmedzuje sledovanie na rôznych weboch presúvaním minimálneho množstva údajov medzi webmi.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Inštalácia zlyhala kvôli neznámej chybe. Skúste prehliadač Chromium stiahnuť znova.</translation>
 <translation id="8697124171261953979">Tiež určuje, ktorá stránka sa zobrazí pri spustení prehliadača Chromium alebo pri vyhľadávaní pomocou všeobecného poľa.</translation>
 <translation id="8704119203788522458">Toto je váš prehliadač Chromium</translation>
-<translation id="8713679423359107094">Keď zavriete všetky okná prehliadača Chromium, súbory cookie a dáta webov budú automaticky vymazané</translation>
-<translation id="8796443464227412154">Keď zavriete Chromium, systém vás <ph name="BEGIN_BOLD" />odhlási z väčšiny webov<ph name="END_BOLD" />. Ak je synchronizácia vypnutá, <ph name="BEGIN_BOLD" />odhlási vás aj zo služieb Googlu a prehliadača Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium potrebuje povolenie pre tento web na prístup k fotoaparátu a mikrofónu</translation>
 <translation id="8833697763442816810">Systém Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Aké údaje sa používajú:<ph name="END_BOLD" /> vaša história prehliadania, teda záznam webov, ktoré ste navštívili pomocou prehliadača Chromium v tomto zariadení.</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb
index bba84603..4349029 100644
--- a/chrome/app/resources/chromium_strings_sl.xtb
+++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium potrebuje dovoljenje za fotoaparat za to spletno mesto.</translation>
 <translation id="7196312274710523067">Chromiuma ni bilo mogoče zagnati. Poskusite znova.</translation>
 <translation id="7197677400338048821">Chromium ne more preveriti gesel. Poskusite znova čez 24 ur.</translation>
-<translation id="7218568399872925918">Spletna mesta, ki jih obiščete, si zapomnijo vaše podatke, dokler ne zaprete Chromiuma.</translation>
 <translation id="7223968959479464213">Upravitelj opravil – Chromium</translation>
 <translation id="7246575524853130370">Vaša zanimanja po Chromiumovi oceni</translation>
 <translation id="7309928523159922338">Merjenje oglasov spletnim mestom omogoča, da od Chromiuma zahtevajo podatke, ki jim pomagajo pri merjenju učinkovitosti oglasov. Merjenje oglasov omejuje sledenje na več spletnih mestih s prenašanjem čim manj podatkov med spletnimi mesti.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Namestitev ni uspela zaradi nenavedene napake. Znova prenesite Chromium.</translation>
 <translation id="8697124171261953979">Določa tudi, katera stran je prikazana, ko zaženete Chromium ali iščete v naslovni vrstici.</translation>
 <translation id="8704119203788522458">To je vaš Chromium</translation>
-<translation id="8713679423359107094">Ko zaprete vsa okna Chromiuma, so piškotki in podatki spletnih mest samodejno izbrisani.</translation>
-<translation id="8796443464227412154">Ko zaprete Chromium, boste <ph name="BEGIN_BOLD" />odjavljeni z večine spletnih mest<ph name="END_BOLD" />. Če je sinhronizacija izklopljena, boste prav tako <ph name="BEGIN_BOLD" />odjavljeni iz Googlovih storitev in Chromiuma<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium potrebuje dovoljenje za dostop do fotoaparata in mikrofona za to spletno mesto</translation>
 <translation id="8833697763442816810">Sistem Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Kateri podatki se uporabljajo:<ph name="END_BOLD" /> Zgodovina brskanja, evidenca spletnih mest, ki ste jih obiskali s Chromiumom v tej napravi.</translation>
diff --git a/chrome/app/resources/chromium_strings_sq.xtb b/chrome/app/resources/chromium_strings_sq.xtb
index 270b10a..deffacd6 100644
--- a/chrome/app/resources/chromium_strings_sq.xtb
+++ b/chrome/app/resources/chromium_strings_sq.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium ka nevojë për lejen e kamerës për këtë sajt</translation>
 <translation id="7196312274710523067">Chromium nuk mund të hapej. Provo përsëri.</translation>
 <translation id="7197677400338048821">Chromium nuk mund t'i kontrollojë fjalëkalimet e tua. Provo përsëri pas 24 orësh.</translation>
-<translation id="7218568399872925918">Sajtet që ti viziton i kujtojnë informacionet e tua derisa ti mbyll Chromium</translation>
 <translation id="7223968959479464213">Menaxheri i detyrave - Chromium</translation>
 <translation id="7246575524853130370">Interesat e tua sipas përllogaritjes nga Chromium</translation>
 <translation id="7309928523159922338">Ad measurement lejon që sajtet që ti viziton të kërkojnë informacione nga Chromium të cilat ndihmojnë sajtin të masë cilësinë e funksionimit të reklamave të tij. Ad measurement kufizon gjurmimin nëpër sajte duke transferuar sa më pak informacion të jetë e mundur ndërmjet sajteve.</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">Instalimi dështoi për shkak të një gabimi të papërcaktuar. Shkarko përsëri Chromium.</translation>
 <translation id="8697124171261953979">Kontrollon po ashtu se cila faqe shfaqet kur nis Chromium ose kur kërkon nga Omnibox.</translation>
 <translation id="8704119203788522458">Ky është Chromium për ty</translation>
-<translation id="8713679423359107094">Kur të mbyllësh të gjitha dritaret e Chromium, kukit dhe të dhënat e sajtit do të pastrohen automatikisht</translation>
-<translation id="8796443464227412154">Do të <ph name="BEGIN_BOLD" />dalësh nga shumica e sajteve<ph name="END_BOLD" /> kur të mbyllësh Chromium. Nëse sinkronizimi është joaktiv, do të <ph name="BEGIN_BOLD" />dalësh gjithashtu nga shërbimet e Google dhe nga Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium ka nevojë për leje për t'u qasur te kamera dhe mikrofoni yt për këtë sajt</translation>
 <translation id="8833697763442816810">Sistemi ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Çfarë të dhënash përdoren:<ph name="END_BOLD" /> Historiku yt i shfletimit, regjistri i sajteve që ke vizituar duke përdorur Chromium në këtë pajisje.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr-Latn.xtb b/chrome/app/resources/chromium_strings_sr-Latn.xtb
index 687ae90..55a42a5e 100644
--- a/chrome/app/resources/chromium_strings_sr-Latn.xtb
+++ b/chrome/app/resources/chromium_strings_sr-Latn.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium-u treba dozvola za kameru za ovaj sajt</translation>
 <translation id="7196312274710523067">Nije moguće pokrenuti Chromium. Pokušajte ponovo.</translation>
 <translation id="7197677400338048821">Chromium ne može da vam proverava lozinke. Probajte ponovo za 24 sata.</translation>
-<translation id="7218568399872925918">Sajtovi koje posećujete pamte vaše informacije dok ne zatvorite Chromium</translation>
 <translation id="7223968959479464213">Menadžer zadataka – Chromium</translation>
 <translation id="7246575524853130370">Vaša interesovanja prema proceni Chromium-a</translation>
 <translation id="7309928523159922338">Merenje oglasa omogućava sajtovima koje posećujete da od Chromium-a zatraže informacije koje sajtu pomažu da meri učinak oglasa. Merenje oglasa ograničava praćenje na više sajtova tako što prenosi što manje informacija između sajtova.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Instalacija nije uspela zbog neodređene greške. Preuzmite Chromium ponovo.</translation>
 <translation id="8697124171261953979">Kontroliše i stranicu koja se prikazuje kada pokrenete Chromium ili pretražujete iz omniboksa.</translation>
 <translation id="8704119203788522458">Ovo je vaš Chromium</translation>
-<translation id="8713679423359107094">Kada zatvorite sve Chromium prozore, podaci o kolačićima i sajtovima se automatski brišu</translation>
-<translation id="8796443464227412154">Bićete <ph name="BEGIN_BOLD" />odjavljeni sa većine sajtova<ph name="END_BOLD" /> kada zatvorite Chromium. Ako je sinhronizacija isključena, takođe ćete biti <ph name="BEGIN_BOLD" />odjavljeni iz Google usluga i Chromium-a<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium traži dozvolu da pristupi kameri i mikrofonu za ovaj sajt</translation>
 <translation id="8833697763442816810">Sistem Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Koji podaci se koriste:<ph name="END_BOLD" /> Istorija pregledanja, evidencija sajtova koje ste posetili pomoću Chromium-a na ovom uređaju.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index 3216a6c..2795c7f7 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium-у треба дозвола за камеру за овај сајт</translation>
 <translation id="7196312274710523067">Није могуће покренути Chromium. Покушајте поново.</translation>
 <translation id="7197677400338048821">Chromium не може да вам проверава лозинке. Пробајте поново за 24 сата.</translation>
-<translation id="7218568399872925918">Сајтови које посећујете памте ваше информације док не затворите Chromium</translation>
 <translation id="7223968959479464213">Менаџер задатака – Chromium</translation>
 <translation id="7246575524853130370">Ваша интересовања према процени Chromium-а</translation>
 <translation id="7309928523159922338">Мерење огласа омогућава сајтовима које посећујете да од Chromium-а затраже информације које сајту помажу да мери учинак огласа. Мерење огласа ограничава праћење на више сајтова тако што преноси што мање информација између сајтова.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Инсталација није успела због неодређене грешке. Преузмите Chromium поново.</translation>
 <translation id="8697124171261953979">Контролише и страницу која се приказује када покренете Chromium или претражујете из омнибокса.</translation>
 <translation id="8704119203788522458">Ово је ваш Chromium</translation>
-<translation id="8713679423359107094">Када затворите све Chromium прозоре, подаци о колачићима и сајтовима се аутоматски бришу</translation>
-<translation id="8796443464227412154">Бићете <ph name="BEGIN_BOLD" />одјављени са већине сајтова<ph name="END_BOLD" /> када затворите Chromium. Ако је синхронизација искључена, такође ћете бити <ph name="BEGIN_BOLD" />одјављени из Google услуга и Chromium-а<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium тражи дозволу да приступи камери и микрофону за овај сајт</translation>
 <translation id="8833697763442816810">Систем Chromium ОС</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Који подаци се користе:<ph name="END_BOLD" /> Историја прегледања, евиденција сајтова које сте посетили помоћу Chromium-а на овом уређају.</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index 767d5532..9c39b2ad 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Du behöver ge Chromium kamerabehörighet för den här webbplatsen</translation>
 <translation id="7196312274710523067">Det gick inte att starta Chromium. Försök igen.</translation>
 <translation id="7197677400338048821">Chromium kan inte kontrollera dina lösenord. Försök igen om ett dygn.</translation>
-<translation id="7218568399872925918">Webbplatser du besöker kommer ihåg dina uppgifter tills du stänger Chromium</translation>
 <translation id="7223968959479464213">Aktivitetshanteraren – Chromium</translation>
 <translation id="7246575524853130370">Chromiums uppskattning av dina intressen</translation>
 <translation id="7309928523159922338">Genom annonsmätning kan webbplatser du besöker begära information från Chromium som hjälper dem att mäta annonsernas resultat. Med annonsmätning begränsas spårningen från webbplats till webbplats genom att så lite information som möjligt överförs mellan webbplatserna.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Installationen misslyckades på grund av ett okänt fel. Ladda ned Chromium igen.</translation>
 <translation id="8697124171261953979">Det styr också vilken sida som visas när du startar Chromium eller söker i adressfältet.</translation>
 <translation id="8704119203788522458">Det här är Chromium</translation>
-<translation id="8713679423359107094">När du stänger alla öppna fönster i Chromium rensas cookies och webbplatsdata automatiskt</translation>
-<translation id="8796443464227412154">Du <ph name="BEGIN_BOLD" />loggas ut från de flesta webbplatser<ph name="END_BOLD" /> när du stänger Chromium. Om synkronisering har inaktiverats <ph name="BEGIN_BOLD" />loggas du även ut från Googles tjänster och Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Du behöver ge Chromium behörighet att använda kameran och mikrofonen på webbplatsen</translation>
 <translation id="8833697763442816810">Chromium OS-system</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Vilken data används:<ph name="END_BOLD" /> Webbhistoriken, där webbplatser som du besökt i Chromium på den här enheten registreras.</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index f1cbf690..0667999 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">Chromium inahitaji ruhusa ya kufikia kamera kwa ajili ya tovuti hii</translation>
 <translation id="7196312274710523067">Imeshindwa kuanzisha Chromium. Jaribu tena.</translation>
 <translation id="7197677400338048821">Chromium imeshindwa kukagua manenosiri yako. Jaribu tena baada ya saa 24.</translation>
-<translation id="7218568399872925918">Tovuti unazotembelea hukumbuka maelezo yako hadi utakapofunga Chromium</translation>
 <translation id="7223968959479464213">Kidhibiti cha Shughuli - Chromium</translation>
 <translation id="7246575524853130370">Mambo yanayokuvutia kama yanavyokadiriwa na Chromium</translation>
 <translation id="7309928523159922338">Upimaji wa tangazo huruhusu tovuti unazotembelea ziombe maelezo kutoka Chromium ambayo yanasaidia tovuti kupima ufanisi wa matangazo yao. Upimaji wa tangazo huzuia ufuatiliaji katika tovuti mbalimbali kwa kuhamisha maelezo machache kadiri iwezekanavyo miongoni mwa tovuti.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Usakinishaji ulishindwa kwa sababu ya hitilafu isiyobainika. Tafadhali pakua Chromium tena.</translation>
 <translation id="8697124171261953979">Pia inadhibiti ukurasa unaoonyeshwa unapoanzisha Chromium au unapotafuta kutoka Sanduku Kuu.</translation>
 <translation id="8704119203788522458">Hii ni Chromium yako</translation>
-<translation id="8713679423359107094">Unapofunga madirisha yote ya Chromium, vidakuzi na data ya tovuti hufutwa kiotomatiki</translation>
-<translation id="8796443464227412154"><ph name="BEGIN_BOLD" />Utaondolewa katika akaunti kwenye tovuti nyingi<ph name="END_BOLD" /> ukifunga Chromium. Ikiwa kipengele cha kusawazisha kimezimwa, pia <ph name="BEGIN_BOLD" />utaondolewa katika akaunti kwenye huduma za Google na Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium inahitaji ruhusa ya kufikia kamera na maikrofoni yako katika tovuti hii</translation>
 <translation id="8833697763442816810">Mfumo wa Uendeshaji wa Chromium</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Data gani inatumiwa:<ph name="END_BOLD" /> Historia yako ya kuvinjari, kumbukumbu ya tovuti ulizozitembelea ukitumia Chromium kwenye kifaa hiki.</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index 915c56c3..5941bd02 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">இந்தத் தளத்தை அணுக, Chromiumமிற்கு கேமரா அணுகல் தேவை</translation>
 <translation id="7196312274710523067">Chromiumஐத் தொடங்க முடியவில்லை. மீண்டும் முயலவும்.</translation>
 <translation id="7197677400338048821">Chromium உலாவியால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை. 24 மணிநேரத்திற்குப் பிறகு முயலவும்.</translation>
-<translation id="7218568399872925918">நீங்கள் Chromiumமை மூடும் வரை உங்கள் தகவல்கள் நீங்கள் பார்வையிட்ட தளங்களில் இருந்து அழிக்கப்படாது</translation>
 <translation id="7223968959479464213">செயல் நிர்வாகி - Chromium</translation>
 <translation id="7246575524853130370">Chromium உத்தேசமாகக் கணித்துள்ள உங்கள் ஆர்வங்கள்</translation>
 <translation id="7309928523159922338">நீங்கள் பார்க்கும் தளங்களில் உள்ள விளம்பரங்களின் செயல்திறனை அளவிட உதவக்கூடிய தகவல்களை Chromiumமிடம் அந்தத் தளங்கள் கோர விளம்பர அளவீடு அனுமதிக்கிறது. தளங்களுக்கிடையே முடிந்தவரை மிகவும் குறைவான தகவல்களை அனுப்பி, பலதளக் கண்காணிப்பை விளம்பர அளவீடு கட்டுப்படுத்துகிறது.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">குறிப்பிடப்படாத பிழை காரணமாக நிறுவல் தோல்வியடைந்தது. Chromiumமை மீண்டும் பதிவிறக்கம் செய்க.</translation>
 <translation id="8697124171261953979">Chromiumமைத் தொடங்கும்போது அல்லது ஆம்னிபாக்ஸிலிருந்து தேடலை மேற்கொள்ளும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation>
 <translation id="8704119203788522458">இது உங்கள் Chromium ஆகும்</translation>
-<translation id="8713679423359107094">அனைத்து Chromium சாளரங்களையும் மூடும்போது, குக்கீகளும் தளத் தரவுகளும் தானாகவே அழிக்கப்படும்</translation>
-<translation id="8796443464227412154">Chromiumமை மூடும்போது <ph name="BEGIN_BOLD" />பெரும்பாலான தளங்களில் இருந்து வெளியேற்றப்படுவீர்கள்<ph name="END_BOLD" />. ஒத்திசைவு முடக்கத்தில் இருந்தால் <ph name="BEGIN_BOLD" />Google சேவைகள், Chromium ஆகியவற்றில் இருந்தும் வெளியேற்றப்படுவீர்கள்<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">இந்தத் தளத்திற்காகக் கேமராவையும் மைக்ரோஃபோனையும் அணுக Chromiumமுக்கு அனுமதி தேவை</translation>
 <translation id="8833697763442816810">ChromiumOS சிஸ்டம்</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />எந்தெந்தத் தரவு பயன்படுத்தப்படுகிறது?<ph name="END_BOLD" /> நீங்கள் இதுவரை இணையத்தில் பார்த்தவை மற்றும் Chromium மூலம் நீங்கள் இந்தச் சாதனத்தில் பார்த்த தளங்களின் பதிவு.</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index 4e55410..2ed50f6 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -281,7 +281,6 @@
 <translation id="718435575166326686">ఈ సైట్ కోసం Chromiumకు కెమెరా అనుమతి అవసరం</translation>
 <translation id="7196312274710523067">Chromiumను ప్రారంభించడం సాధ్యపడలేదు. మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="7197677400338048821">Chromium మీ పాస్‌వర్డ్‌లను చెక్ చేయలేకపోయింది. 24 గంటల తర్వాత మళ్లీ ట్రై చేయండి.</translation>
-<translation id="7218568399872925918">మీరు సందర్శించే సైట్‌లు మీ సమాచారాన్ని మీరు Chromiumను మూసేవరకూ గుర్తు పెట్టుకుంటాయి</translation>
 <translation id="7223968959479464213">విధి నిర్వాహకుడు - Chromium</translation>
 <translation id="7246575524853130370">Chromium అంచనా ఆధారంగా మీ ఆసక్తులు</translation>
 <translation id="7309928523159922338">మీరు సందర్శించే సైట్‌లను Chromium నుండి సమాచారాన్ని రిక్వెస్ట్ చేసేలా 'యాడ్‌ల అంచనా' అనుమతిస్తుంది, ఇది యాడ్‌ల పనితీరును అంచనా వేయడంలో సైట్‌కు సహాయపడుతుంది. 'యాడ్‌ల అంచనా', సైట్‌ల మధ్య వీలయినంత తక్కువ సమాచారాన్ని బదిలీ చేసి, క్రాస్-సైట్ ట్రాకింగ్‌ను తగ్గిస్తుంది.</translation>
@@ -351,8 +350,6 @@
 <translation id="8621669128220841554">తెలియ‌ని ఎర్ర‌ర్‌ కారణంగా ఇన‌స్ట‌లేష‌న్‌ విఫలమైంది. దయచేసి Chromiumను మళ్లీ డౌన్‌లోడ్ చేయండి.</translation>
 <translation id="8697124171261953979">ఇది మీరు Chromiumను ప్రారంభించేటప్పుడు లేదా ఓమ్నిబాక్స్ నుండి వెతికేటప్పుడు చూపబడే పేజీని కూడా నియంత్రిస్తుంది.</translation>
 <translation id="8704119203788522458">ఇది మీ Chromium</translation>
-<translation id="8713679423359107094">మీరు Chromium విండోలన్నింటినీ మూసివేస్తే, కుక్కీలు, సైట్ డేటా ఆటోమేటిక్‌గా తొలగించబడతాయి</translation>
-<translation id="8796443464227412154">మీరు Chromiumను మూసివేసినప్పుడు మీరు <ph name="BEGIN_BOLD" />చాలా వరకు సైట్‌ల నుండి సైన్ అవుట్ అవుతారు.<ph name="END_BOLD" /> సింక్ ఆఫ్‌లో ఉంటే, మీరు <ph name="BEGIN_BOLD" />Google సర్వీస్‌లు, అలాగే Chromium నుండి కూడా సైన్ అవుట్ అవుతారు<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">ఈ సైట్ కోసం మీ కెమెరా మరియు మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి Chromiumకు అనుమతి అవసరం</translation>
 <translation id="8833697763442816810">ChromiumOS సిస్టమ్</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />ఏ డేటాను ఉపయోగిస్తారు:<ph name="END_BOLD" /> మీ బ్రౌజింగ్ హిస్టరీ, ఈ పరికరంలో Chromiumను ఉపయోగించి మీరు సందర్శించిన సైట్‌ల రికార్డ్.</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index b14ee8e..03fb747 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium ต้องการสิทธิ์เข้าถึงกล้องสำหรับเว็บไซต์นี้</translation>
 <translation id="7196312274710523067">เปิด Chromium ไม่ได้ โปรดลองอีกครั้ง</translation>
 <translation id="7197677400338048821">Chromium ตรวจสอบรหัสผ่านของคุณไม่ได้ โปรดรอ 24 ชั่วโมงแล้วลองอีกครั้ง</translation>
-<translation id="7218568399872925918">เว็บไซต์ที่คุณเข้าชมจะจดจำข้อมูลของคุณไปจนกว่าจะปิด Chromium</translation>
 <translation id="7223968959479464213">ตัวจัดการงาน - Chromium</translation>
 <translation id="7246575524853130370">ความสนใจของคุณตามที่คาดคะเนโดย Chromium</translation>
 <translation id="7309928523159922338">การวัดผลโฆษณาจะให้เว็บไซต์ที่คุณเข้าชมสามารถขอข้อมูลจาก Chromium เพื่อช่วยในการวัดประสิทธิภาพโฆษณาของเว็บไซต์ดังกล่าวได้ การวัดผลโฆษณาจะจำกัดการติดตามข้ามเว็บไซต์โดยโอนข้อมูลระหว่างเว็บไซต์ให้น้อยที่สุด</translation>
@@ -354,8 +353,6 @@
 <translation id="8621669128220841554">การติดตั้งล้มเหลวเนื่องจากเกิดข้อผิดพลาดที่ไม่ระบุ โปรดดาวน์โหลด Chromium อีกครั้ง</translation>
 <translation id="8697124171261953979">อีกทั้งยังควบคุมหน้าที่จะแสดงเมื่อคุณเปิด Chromium หรือทำการค้นหาจากแถบอเนกประสงค์ด้วย</translation>
 <translation id="8704119203788522458">นี่คือ Chromium ของคุณ</translation>
-<translation id="8713679423359107094">เมื่อคุณปิดหน้าต่าง Chromium ทั้งหมด ระบบจะล้างคุกกี้และข้อมูลเว็บไซต์โดยอัตโนมัติ</translation>
-<translation id="8796443464227412154">คุณจะ<ph name="BEGIN_BOLD" />ออกจากระบบเว็บไซต์ส่วนใหญ่<ph name="END_BOLD" />เมื่อปิด Chromium หากการซิงค์ปิดอยู่ คุณจะ<ph name="BEGIN_BOLD" />ออกจากระบบบริการของ Google และ Chromium<ph name="END_BOLD" /> ด้วย</translation>
 <translation id="8796602469536043152">Chromium ต้องการสิทธิ์เข้าถึงไมโครโฟนและกล้องถ่ายรูปของคุณสำหรับเว็บไซต์นี้</translation>
 <translation id="8833697763442816810">ระบบ Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />ข้อมูลที่ใช้:<ph name="END_BOLD" /> ประวัติการท่องเว็บ ซึ่งเป็นบันทึกรายการเว็บไซต์ที่คุณเข้าชมโดยใช้ Chromium ในอุปกรณ์นี้</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index b7b9d1ff..09f3dd5 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -280,7 +280,6 @@
 <translation id="718435575166326686">Bu site için Chromium'un kamera iznine ihtiyacı var</translation>
 <translation id="7196312274710523067">Chromium başlatılamadı. Tekrar deneyin.</translation>
 <translation id="7197677400338048821">Chromium, şifrelerinizi kontrol edemiyor. 24 saat sonra tekrar deneyin.</translation>
-<translation id="7218568399872925918">Ziyaret ettiğiniz siteler, Chromium'u kapatana kadar bilgilerinizi hatırlar</translation>
 <translation id="7223968959479464213">Görev Yöneticisi - Chromium</translation>
 <translation id="7246575524853130370">Chromium'un tahmin ettiği ilgi alanlarınız</translation>
 <translation id="7309928523159922338">Reklam ölçümü, ziyaret ettiğiniz sitelerin Chromium'dan bilgi istemesine olanak tanır. Bu bilgiler de sitenin, reklamlarının performansını ölçmesine yardımcı olur. Reklam ölçümü, siteler arasında mümkün olduğunca az bilgi aktararak siteler arası izlemeyi kısıtlar.</translation>
@@ -352,8 +351,6 @@
 <translation id="8621669128220841554">Yükleme belirtilmeyen bir hata nedeniyle başarısız oldu. Lütfen Chromium'u tekrar indirin.</translation>
 <translation id="8697124171261953979">Ayrıca Chromium'u başlattığınızda veya Çok Amaçlı Adres Çubuğu'ndan arama yaptığınızda gösterilecek sayfayı da denetler.</translation>
 <translation id="8704119203788522458">Bu sizin Chromium'unuz</translation>
-<translation id="8713679423359107094">Tüm Chromium pencerelerini kapattığınızda çerezler ve site verileri otomatik olarak silinir</translation>
-<translation id="8796443464227412154">Chromium'u kapattığınızda <ph name="BEGIN_BOLD" />çoğu sitede oturumunuz kapatılır<ph name="END_BOLD" />. Senkronizasyon kapalıysa <ph name="BEGIN_BOLD" />Google hizmetleri ve Chromium oturumunuz da kapatılır<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium'un bu sitede kameranıza ve mikrofonunuza erişmesi için izin gerekiyor</translation>
 <translation id="8833697763442816810">ChromiumOS Sistemi</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Kullanılan veriler:<ph name="END_BOLD" /> Tarama geçmişiniz, bu cihazda Chromium'u kullanarak ziyaret ettiğiniz sitelerin kaydı.</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb
index 5e26604..238766c 100644
--- a/chrome/app/resources/chromium_strings_uk.xtb
+++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Веб-переглядачу Chromium потрібен доступ до камери для цього сайту</translation>
 <translation id="7196312274710523067">Не вдалося запустити Chromium. Повторіть спробу.</translation>
 <translation id="7197677400338048821">Chromium не може перевірити паролі. Повторіть спробу через 24 години.</translation>
-<translation id="7218568399872925918">Ваші дані зберігатимуться на відвіданих сайтах, доки ви не закриєте Chromium</translation>
 <translation id="7223968959479464213">Диспетчер завдань – Chromium</translation>
 <translation id="7246575524853130370">Ваші інтереси (за оцінкою Chromium)</translation>
 <translation id="7309928523159922338">Завдяки цій функції відвідувані вами сайти можуть запитувати в Chromium інформацію, яка допомагає їм вимірювати ефективність реклами. Функція оцінки ефективності реклами обмежує міжсайтове відстеження, передаючи між сайтами мінімум даних.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">Не вдалося встановити через невизначену помилку. Завантажте Chromium ще раз.</translation>
 <translation id="8697124171261953979">Розширення також змінило сторінку, яка відкривається під час запуску Chromium або пошуку в універсальному вікні пошуку.</translation>
 <translation id="8704119203788522458">Це ваш Chromium</translation>
-<translation id="8713679423359107094">Коли ви закриєте всі вікна в Chromium, файли cookie й дані сайтів буде автоматично видалено</translation>
-<translation id="8796443464227412154">Ви <ph name="BEGIN_BOLD" />вийдете з облікового запису на більшості сайтів<ph name="END_BOLD" />, коли закриєте Chromium. Якщо синхронізацію вимкнено, вихід також буде виконано зі всіх <ph name="BEGIN_BOLD" />сервісів Google і з Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium потрібен дозвіл на використання камери й мікрофона, щоб надати цьому сайту доступ до них</translation>
 <translation id="8833697763442816810">Система Chromium OS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Які дані використовуються.<ph name="END_BOLD" /> Ваша історія веб-перегляду – перелік сайтів, які ви відвідали через Chromium на цьому пристрої.</translation>
diff --git a/chrome/app/resources/chromium_strings_ur.xtb b/chrome/app/resources/chromium_strings_ur.xtb
index 3dba4cc..d005686 100644
--- a/chrome/app/resources/chromium_strings_ur.xtb
+++ b/chrome/app/resources/chromium_strings_ur.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">‏Chromium کو اس سائٹ کے لیے کیمرے کی اجازت درکار ہے</translation>
 <translation id="7196312274710523067">‏Chromium شروع نہیں ہو سکا۔ دوبارہ کوشش کریں۔</translation>
 <translation id="7197677400338048821">‏Chromium آپ کے پاس ورڈز چیک نہیں کر سکتا ہے۔ 24 گھنٹے بعد دوبارہ کوشش کریں۔</translation>
-<translation id="7218568399872925918">‏آپ کی ملاحظہ کردہ سائٹس آپ کے Chromium کو بند کرنے تک آپ کی معلومات کو یاد رکھتی ہیں</translation>
 <translation id="7223968959479464213">‏ٹاسک مینیجر - Chromium</translation>
 <translation id="7246575524853130370">‏Chromium کے مطابق اندازہ لگائی گئی آپ کی دلچسپیاں</translation>
 <translation id="7309928523159922338">‏Ad measurement آپ کی ملاحظہ کی جانے والی سائٹس کو Chromium سے معلومات کی درخواست کرنے کی اجازت دیتا ہے جس سے سائٹ کو اپنے اشتہارات کی کارکردگی کی پیمائش کرنے میں مدد ملتی ہے۔ Ad measurement سائٹس کے درمیان ممکنہ حد تک کم معلومات کی منتقلی کے ذریعے کراس سائٹ ٹریکنگ کو محدود کرتا ہے۔</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">‏غیر متعین خرابی کی وجہ سے انسٹالیشن ناکام ہوگیا۔ براہ کرم Chromium دوبارہ ڈاؤن لوڈ کریں۔</translation>
 <translation id="8697124171261953979">‏یہ آپ کی جانب سے Chromium شروع کیے جانے یا اومنی باکس سے تلاش کیے جانے پر دکھائی دینے والے صفحہ کو کنٹرول بھی کرتا ہے۔</translation>
 <translation id="8704119203788522458">‏یہ آپ کا Chromium ہے</translation>
-<translation id="8713679423359107094">‏جب آپ سبھی Chromium ونڈوز بند کرتے ہیں تو کوکیز اور سائٹ کے ڈیٹا خودکار طور پر صاف ہو جاتے ہیں</translation>
-<translation id="8796443464227412154">‏آپ کے Chromium کو بند کرنے پر، آپ کو <ph name="BEGIN_BOLD" />بیشتر سائٹس سے سائن آؤٹ<ph name="END_BOLD" /> کر دیا جائے گا۔ 'سِنک کرنا' آف ہونے پر، آپ کو <ph name="BEGIN_BOLD" />Google سروسز اور Chromium سے بھی سائن آؤٹ<ph name="END_BOLD" /> کر دیا جائے گا۔</translation>
 <translation id="8796602469536043152">‏Chromium کو اس سائٹ کیلئے آپ کے کیمرے اور مائیکروفون تک رسائی کی اجازت درکار ہے</translation>
 <translation id="8833697763442816810">‏ChromiumOS سسٹم</translation>
 <translation id="8846118132221683440">‏<ph name="BEGIN_BOLD" />کون سا ڈیٹا استعمال کیا جاتا ہے:<ph name="END_BOLD" /> آپ کی براؤزنگ کی سرگزشت، ان سائٹس کا ریکارڈ جو آپ اس آلے پر Chromium کا استعمال کر کے ملاحظہ کر چکے ہیں۔</translation>
diff --git a/chrome/app/resources/chromium_strings_uz.xtb b/chrome/app/resources/chromium_strings_uz.xtb
index 799d76d..94dd1a9 100644
--- a/chrome/app/resources/chromium_strings_uz.xtb
+++ b/chrome/app/resources/chromium_strings_uz.xtb
@@ -281,7 +281,6 @@
 <translation id="718435575166326686">Chromium bu saytda kameradan foydalanishiga ruxsat kerak</translation>
 <translation id="7196312274710523067">Chromium ishga tushmadi. Qayta urining.</translation>
 <translation id="7197677400338048821">Chromium parollaringizni tekshira olmadi. 24 soatdan keyin qayta urining.</translation>
-<translation id="7218568399872925918">Siz ochgan saytlar maʼlumotlaringizni Chromium yopilmaguncha esda saqlaydi</translation>
 <translation id="7223968959479464213">Vazifalar menejeri – Chromium</translation>
 <translation id="7246575524853130370">Chromium taxmin qilgan qiziqishlaringiz</translation>
 <translation id="7309928523159922338">Reklamani oʻlchash orqali siz kiradigan saytlar oʻzidagi reklama unumdorligini hisoblashga yordam beradigan maʼlumotlarni Chromium ilovasidan soʻray oladi. Reklama statistikasi imkon qadar kam axborotni saytlararo ulashish orqali saytlardagi kuzatuv mexanizmlarini taqiqlaydi.</translation>
@@ -353,8 +352,6 @@
 <translation id="8621669128220841554">O‘rnatish vaqtida kutilmagan xatolik yuz berdi. Chromium‘ni qaytadan yuklab oling.</translation>
 <translation id="8697124171261953979">Bundan tashqari kengaytma Chromium boshlash sahifasini va omniboksdagi so‘rovlar uchun foydalaniladigan birlamchi qidiruv tizimini o‘zgartirdi.</translation>
 <translation id="8704119203788522458">Bu sizning shaxsiy Chromium brauzeringiz</translation>
-<translation id="8713679423359107094">Barcha Chromium oynalari yopilganda, cookie fayllar va sayt maʼlumotlari avtomatik ravishda tozalanadi</translation>
-<translation id="8796443464227412154">Chromium yopilganda <ph name="BEGIN_BOLD" />aksar saytlardan chiqib ketasiz<ph name="END_BOLD" />. Agar sinxronizatsiya oʻchiq boʻlsa, <ph name="BEGIN_BOLD" />Google xizmatlari va Chromium hisobingizdan ham chiqib ketasiz<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Bu sayt kamera va mikrofoningizdan foydalanishi uchun Chromium brauzeriga ruxsat berishingiz lozim</translation>
 <translation id="8833697763442816810">ChromiumOS tizimi</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Qanday maʼlumotlar ishlatilishi:<ph name="END_BOLD" /> Bu qurilmada Chromium orqali siz kirgan saytlar tarixidagi qaydlar.</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index 650b7dc3..33cd9d0 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -283,7 +283,6 @@
 <translation id="718435575166326686">Chromium cần có quyền truy cập máy ảnh đối với trang web này</translation>
 <translation id="7196312274710523067">Không thể mở Chromium. Hãy thử lại.</translation>
 <translation id="7197677400338048821">Chromium không thể kiểm tra mật khẩu của bạn. Hãy thử lại sau 24 giờ.</translation>
-<translation id="7218568399872925918">Các trang web bạn truy cập ghi nhớ thông tin của bạn cho đến khi bạn đóng Chromium</translation>
 <translation id="7223968959479464213">Trình quản lý tác vụ - Chromium</translation>
 <translation id="7246575524853130370">Mối quan tâm của bạn theo ước đoán của Chromium</translation>
 <translation id="7309928523159922338">Tính năng Đo lường quảng cáo cho phép các trang web bạn truy cập đề nghị Chromium cung cấp thông tin để đo lường hiệu quả quảng cáo. Tính năng Đo lường quảng cáo hạn chế hoạt động theo dõi qua nhiều trang web bằng cách chuyển ít thông tin nhất có thể giữa các trang web.</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">Không thể cài đặt do xảy ra lỗi không xác định. Hãy tải xuống Chromium lại lần nữa.</translation>
 <translation id="8697124171261953979">Tiện ích này cũng điều khiển trang nào được hiển thị khi bạn khởi động Chromium hoặc tìm kiếm từ Thanh địa chỉ.</translation>
 <translation id="8704119203788522458">Đây là Chromium của bạn</translation>
-<translation id="8713679423359107094">Khi bạn đóng tất cả cửa sổ Chromium, thì cookie và dữ liệu trang web sẽ tự động bị xóa</translation>
-<translation id="8796443464227412154">Bạn sẽ bị <ph name="BEGIN_BOLD" />đăng xuất khỏi hầu hết các trang web<ph name="END_BOLD" /> khi bạn đóng Chromium. Nếu tính năng đồng bộ hóa đang tắt, thì bạn cũng sẽ bị <ph name="BEGIN_BOLD" />đăng xuất khỏi các dịch vụ của Google và Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">Chromium cần có quyền truy cập vào máy ảnh và micrô của bạn cho trang web này</translation>
 <translation id="8833697763442816810">Hệ thống ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Loại dữ liệu được sử dụng:<ph name="END_BOLD" /> Nhật ký duyệt web của bạn, một bản ghi các trang web bạn từng truy cập bằng Chromium trên thiết bị này.</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb
index c5998688..f184b09 100644
--- a/chrome/app/resources/chromium_strings_zh-CN.xtb
+++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium 需要为此网站授予摄像头权限</translation>
 <translation id="7196312274710523067">无法启动 Chromium。请重试。</translation>
 <translation id="7197677400338048821">Chromium 无法检查您的密码。请过 24 小时再试。</translation>
-<translation id="7218568399872925918">您访问的网站会记住您的信息,直到您关闭 Chromium</translation>
 <translation id="7223968959479464213">任务管理器 - Chromium</translation>
 <translation id="7246575524853130370">Chromium 推测出的您的兴趣</translation>
 <translation id="7309928523159922338">借助 Ad measurement,您访问的网站可向 Chromium 请求信息,以便对网站上的广告进行效果衡量。Ad measurement 会在网站间传输尽可能少的信息,从而限制跨网站跟踪。</translation>
@@ -354,8 +353,6 @@
 <translation id="8621669128220841554">未指定的错误导致安装失败。请重新下载 Chromium。</translation>
 <translation id="8697124171261953979">它还能够控制您启动Chromium后或通过多功能框进行搜索时系统显示的页面。</translation>
 <translation id="8704119203788522458">这是您的专属Chromium</translation>
-<translation id="8713679423359107094">当您关闭所有 Chromium 窗口时,系统会自动清除 Cookie 和网站数据</translation>
-<translation id="8796443464227412154">关闭 Chromium 时,您会<ph name="BEGIN_BOLD" />自动退出大多数网站<ph name="END_BOLD" />。如果同步功能处于关闭状态,您还会<ph name="BEGIN_BOLD" />自动退出 Google 服务和 Chromium<ph name="END_BOLD" />。</translation>
 <translation id="8796602469536043152">Chromium 需要获得相应权限,才能允许此网站使用您的摄像头和麦克风</translation>
 <translation id="8833697763442816810">Chromium 操作系统</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />我们会使用哪些数据<ph name="END_BOLD" />:您的浏览记录,即您在此设备上使用 Chromium 访问过的网站的记录。</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-HK.xtb b/chrome/app/resources/chromium_strings_zh-HK.xtb
index ad970101..fb4e8f7 100644
--- a/chrome/app/resources/chromium_strings_zh-HK.xtb
+++ b/chrome/app/resources/chromium_strings_zh-HK.xtb
@@ -284,7 +284,6 @@
 <translation id="718435575166326686">Chromium 需要相機權限,才能執行此網站要求的功能</translation>
 <translation id="7196312274710523067">無法啟動 Chromium,請再試一次。</translation>
 <translation id="7197677400338048821">Chromium 無法檢查密碼,請於 24 小時後再試一次。</translation>
-<translation id="7218568399872925918">在 Chromium 關閉前,您瀏覽的網站可以記住您的資料</translation>
 <translation id="7223968959479464213">工作管理員 - Chromium</translation>
 <translation id="7246575524853130370">Chromium 推測您有以下興趣</translation>
 <translation id="7309928523159922338">「廣告評估」允許您瀏覽的網站向 Chromium 要求資料,以便評估廣告的效益。「廣告評估」會透過盡量減少在網站之間傳送的資料,從而限制跨網站追蹤功能。</translation>
@@ -356,8 +355,6 @@
 <translation id="8621669128220841554">不明錯誤導致安裝失敗,請重新下載 Chromium。</translation>
 <translation id="8697124171261953979">這個擴充功能也會控管 Chromium 啟動時或您使用網址列搜尋時所顯示的網頁。</translation>
 <translation id="8704119203788522458">這是您專屬的 Chromium</translation>
-<translation id="8713679423359107094">關閉所有 Chromium 視窗時,系統將自動清除 Cookie 和網站資料</translation>
-<translation id="8796443464227412154">Chromium 關閉時,您將會<ph name="BEGIN_BOLD" />從大部分網站登出<ph name="END_BOLD" />。如果同步功能已關閉,您亦會<ph name="BEGIN_BOLD" />從 Google 服務和 Chromium 登出<ph name="END_BOLD" />。</translation>
 <translation id="8796602469536043152">Chromium 需要取得權限,才能讓這個網站存取您的相機和麥克風</translation>
 <translation id="8833697763442816810">Chromium 作業系統</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />需要使用什麼資料:<ph name="END_BOLD" />您的瀏覽記錄,亦即您在此裝置上使用 Chromium 瀏覽過的網站記錄。</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index ea7b27c..93609d71 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -282,7 +282,6 @@
 <translation id="718435575166326686">Chromium 需要相機權限,才能執行這個網站要求的功能</translation>
 <translation id="7196312274710523067">無法啟動 Chromium,請再試一次。</translation>
 <translation id="7197677400338048821">Chromium 無法檢查你的密碼,請於 24 小時後再試。</translation>
-<translation id="7218568399872925918">在 Chromium 關閉前,你造訪的網站會記住你的資訊</translation>
 <translation id="7223968959479464213">工作管理員 - Chromium</translation>
 <translation id="7246575524853130370">Chromium 推測的興趣喜好</translation>
 <translation id="7309928523159922338">廣告評估功能會允許你造訪的網站向 Chromium 要求資訊,以便協助網站評估自家廣告的成效。廣告評估功能會盡可能減少網站之間分享資訊的情況,藉此限制跨網站追蹤行為。</translation>
@@ -355,8 +354,6 @@
 <translation id="8621669128220841554">不明錯誤導致安裝失敗,請重新下載 Chromium。</translation>
 <translation id="8697124171261953979">這個擴充功能也會控管 Chromium 啟動時或你使用網址列搜尋時所顯示的網頁。</translation>
 <translation id="8704119203788522458">這是你專屬的 Chromium</translation>
-<translation id="8713679423359107094">當你關閉所有 Chromium 視窗時,系統會自動清除 Cookie 和網站資料</translation>
-<translation id="8796443464227412154">關閉 Chromium 會導致你<ph name="BEGIN_BOLD" />從大部分的網站登出<ph name="END_BOLD" />。如果關閉同步處理功能,你也會<ph name="BEGIN_BOLD" />從 Google 服務和 Chromium 登出<ph name="END_BOLD" />。</translation>
 <translation id="8796602469536043152">Chromium 需要相關權限,才能讓這個網站使用你的攝影機和麥克風</translation>
 <translation id="8833697763442816810">Chromium OS 系統</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />我們會使用哪些資料:<ph name="END_BOLD" />你的瀏覽記錄,也就是在這部裝置上透過 Chromium 造訪網站的記錄。</translation>
diff --git a/chrome/app/resources/chromium_strings_zu.xtb b/chrome/app/resources/chromium_strings_zu.xtb
index 08173ed4..3df8f1c 100644
--- a/chrome/app/resources/chromium_strings_zu.xtb
+++ b/chrome/app/resources/chromium_strings_zu.xtb
@@ -285,7 +285,6 @@
 <translation id="718435575166326686">I-Chromium idinga imvume yekhamera kule sayithi</translation>
 <translation id="7196312274710523067">Ayikwazanga ukuqalisa i-Chromium. Zama futhi.</translation>
 <translation id="7197677400338048821">I-Chromium ayikwazi ukuhlola iphasiwedi yakho. Zama futhi emva kwamahora angu-24.</translation>
-<translation id="7218568399872925918">Amasayithi owavakashelayo akhumbula ulwazi lwakho uze uvale i-Chromium</translation>
 <translation id="7223968959479464213">Isiphathi somsebenzi - I-Chromium</translation>
 <translation id="7246575524853130370">Izintshisekelo zakho njengoba zilinganiselwe yi-Chromium</translation>
 <translation id="7309928523159922338">Isilinganiso sesikhangiso sivumela amasayithi owavakashelayo ukuba acele ulwazi ku-Chromium olusiza isayithi ukukala ukusebenza kwezikhangiso zawo. Isilinganiso sesikhangiso sikhawulela ukulandelela indawo yonke ngokudlulisa ulwazi oluncane ngangokunokwenzeka phakathi kwamasayithi.</translation>
@@ -357,8 +356,6 @@
 <translation id="8621669128220841554">Ukufakwa kuhlulekile ngenxa yephutha elingacacisiwe. Sicela ulande i-Chromium futhi.</translation>
 <translation id="8697124171261953979">Iphinda ilawule ukuthi yiliphi ikhasi eliboniswayo uma uqala i-Chromium noma usesho kusuka ku-Omnibox.</translation>
 <translation id="8704119203788522458">Lena yi-Chromium yakho</translation>
-<translation id="8713679423359107094">Uma uvala wonke amawindi e-Chromium, amakhukhi nedatha yesayithi iyasulwa ngokuzenzakalelayo</translation>
-<translation id="8796443464227412154"><ph name="BEGIN_BOLD" />Uzokhishwa ngemvume kumasayithi amaningi<ph name="END_BOLD" /> lapho uvala i-Chromium. Uma ukuvumelanisa kuvaliwe, nawe <ph name="BEGIN_BOLD" />uzokhishwa ngemvume kumasevisi e-Google naku-Chromium<ph name="END_BOLD" />.</translation>
 <translation id="8796602469536043152">I-Chromium idinga imvume ukuze ifinyelele kukhamera yakho nemakrofoni yaleli sayithi</translation>
 <translation id="8833697763442816810">Isistimu ye-ChromiumOS</translation>
 <translation id="8846118132221683440"><ph name="BEGIN_BOLD" />Iyiphi idatha esetshenziswayo:<ph name="END_BOLD" /> Umlando wakho wokubhrawuza, irekhodi lamasayithi owavakashele usebenzisa i-Chromium kule divayisi.</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 1cd0bd3..3ed4a33 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -1249,6 +1249,7 @@
 <translation id="2104166991923847969">Skakel warmkol outomaties af</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> is versteek</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Foonnommer}other{# foonnommers}}</translation>
+<translation id="2110941575868943054">Toegelaat om na Bluetooth-toestelle te soek</translation>
 <translation id="211144231511833662">Vee soorte uit</translation>
 <translation id="2111670510994270194">Nuwe oortjie aan die regterkant</translation>
 <translation id="2112554630428445878">Welkom, <ph name="USERNAME" /></translation>
@@ -3043,6 +3044,7 @@
 <translation id="3756485814916578707">Skerm word tans uitgesaai</translation>
 <translation id="3756578970075173856">Stel PIN</translation>
 <translation id="3756795331760037744">Laat Google Assistent toe om inligting op <ph name="SUPERVISED_USER_NAME" /> se skerm te gebruik om te help</translation>
+<translation id="3756806135608816820">Werwe kan vra om Bluetooth-toestelle te soek</translation>
 <translation id="3757733214359997190">Geen werwe gekry nie</translation>
 <translation id="375841316537350618">Laai tans instaanbedienerskrip af …</translation>
 <translation id="3758842566811519622">Webkoekies is gestel</translation>
@@ -4544,7 +4546,6 @@
 <translation id="5158206172605340248">Aksentmerkkieslys is toegemaak.</translation>
 <translation id="5159094275429367735">Stel Crostini op</translation>
 <translation id="5159419673777902220">Jou ouer het uitbreidingtoestemmings gedeaktiveer</translation>
-<translation id="5159643365935452998">Gaan outomatiese dataskoonmaak na</translation>
 <translation id="5160634252433617617">Fisieke sleutelbord</translation>
 <translation id="5160857336552977725">Meld by jou <ph name="DEVICE_TYPE" /> aan</translation>
 <translation id="5161251470972801814">USB-toestelle vanaf <ph name="VENDOR_NAME" /></translation>
@@ -5019,6 +5020,7 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB se mobiele data sal gebruik word om opdatering af te laai. Wil jy voortgaan?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Mag nie aan MIDI-toestelle koppel nie</translation>
+<translation id="5601833336918638013">Moenie werwe toelaat om Bluetooth-toestelle te soek nie</translation>
 <translation id="5602765853043467355">Vee boekmerke, geskiedenis, wagwoorde en meer van hierdie toestel af uit</translation>
 <translation id="5605758115928394442">'n Kennisgewing is na jou foon toe gestuur om te bevestig dat dit jy is.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Hierdie uitbreiding is geblokkeer}other{Hierdie uitbreidings is geblokkeer}}</translation>
@@ -6477,6 +6479,7 @@
 <translation id="6960507406838246615">Linux-opdatering word vereis</translation>
 <translation id="6960648667961844909">Kon nie <ph name="LANGUAGE" />-spraaklêers aflaai nie. Sal later probeer aflaai. Spraak word na Google toe gestuur vir verwerking totdat aflaai voltooi is.</translation>
 <translation id="696103774840402661">Alle lêers en plaaslike data vir alle gebruikers op hierdie <ph name="DEVICE_TYPE" /> is permanent uitgevee.</translation>
+<translation id="6961327401577924850">Werwe soek gewoonlik na Bluetooth-toestelle vir kenmerke soos om ’n lae-energiebaken, ’n gesondheid- of fiksheidnaspoorder, of ’n slimgloeilamp op te stel of te sinkroniseer</translation>
 <translation id="6963872466817251924">Teksskermpyltjiemerker</translation>
 <translation id="6964390816189577014">Held</translation>
 <translation id="6964760285928603117">Verwyder uit groep</translation>
@@ -8113,6 +8116,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> het jou toestemming nodig om te werk</translation>
 <translation id="8466417995783206254">Hierdie oortjie speel tans 'n video in prent-in-prent-modus.</translation>
 <translation id="8467326454809944210">Kies 'n ander taal</translation>
+<translation id="8468087214092422866">Nie toegelaat om na Bluetooth-toestelle te soek nie</translation>
 <translation id="8470513973197838199">Gestoorde wagwoorde vir <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Werwe koppel gewoonlik aan USB-toestelle vir kenmerke soos om 'n dokument te druk of om op 'n bergingtoestel te stoor</translation>
 <translation id="8471959340398751476">Afslag is af. Jy kan dit in die gepasmaakte kieslys aanskakel</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 81b4896..86238ad 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -4534,7 +4534,6 @@
 <translation id="5158206172605340248">የአጽንዖት ምልክቶች ምናሌ ተሰናብቷል።</translation>
 <translation id="5159094275429367735">Crostiniን ያዋቅሩ</translation>
 <translation id="5159419673777902220">የእርስዎ ወላጅ የቅጥያ ፈቃዶችን አሰናክለዋል</translation>
-<translation id="5159643365935452998">በራስ-ሰር ውሂብ ማጽዳትን ይገምግሙ</translation>
 <translation id="5160634252433617617">አካላዊ ቁልፍ ሰሌዳ</translation>
 <translation id="5160857336552977725">ወደ የእርስዎ <ph name="DEVICE_TYPE" /> ይግቡ</translation>
 <translation id="5161251470972801814">የዩኤስቢ መሣሪያዎች ከ<ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index b801b22..94dff0a 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -1241,6 +1241,7 @@
 <translation id="2104166991923847969">إيقاف نقطة الاتصال تلقائيًا</translation>
 <translation id="2105809836724866556">تم إخفاء <ph name="MODULE_TITLE" />.</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{رقم هاتف واحد}zero{# رقم هاتف}two{رقما هاتف}few{# أرقام هاتف}many{# رقم هاتف}other{# رقم هاتف}}</translation>
+<translation id="2110941575868943054">المواقع الإلكترونية التي يُسمح لها بالبحث عن أجهزة تتضمّن بلوتوث</translation>
 <translation id="211144231511833662">محو الأنواع</translation>
 <translation id="2111670510994270194">إضافة علامة تبويب جديدة على اليمين</translation>
 <translation id="2112554630428445878">مرحبًا، <ph name="USERNAME" /></translation>
@@ -3035,6 +3036,7 @@
 <translation id="3756485814916578707">جارٍ بثّ الشاشة</translation>
 <translation id="3756578970075173856">ضبط رقم التعريف الشخصي</translation>
 <translation id="3756795331760037744">‏السماح لخدمة "مساعد Google" باستخدام المعلومات على شاشة <ph name="SUPERVISED_USER_NAME" /> للمساعدة</translation>
+<translation id="3756806135608816820">السماح للمواقع الإلكترونية بطلب البحث عن أجهزة تتضمّن بلوتوث</translation>
 <translation id="3757733214359997190">لم يتم العثور على أي مواقع</translation>
 <translation id="375841316537350618">جارٍ تنزيل النص البرمجي للخادم الوكيل...</translation>
 <translation id="3758842566811519622">تمّ تعيين ملفات تعريف الارتباط</translation>
@@ -4532,7 +4534,6 @@
 <translation id="5158206172605340248">تم إغلاق قائمة علامات التشكيل.</translation>
 <translation id="5159094275429367735">‏إعداد نظام التشغيل Crostini</translation>
 <translation id="5159419673777902220">أوقَف أحد والدَيك أذونات الإضافة.</translation>
-<translation id="5159643365935452998">مراجعة إعدادات ميزة المحو التلقائي للبيانات</translation>
 <translation id="5160634252433617617">لوحة المفاتيح الخارجية</translation>
 <translation id="5160857336552977725">سجّل الدخول إلى <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">‏أجهزة USB من <ph name="VENDOR_NAME" /></translation>
@@ -5007,6 +5008,7 @@
 <translation id="5600706100022181951">سيستهلك تنزيل التحديث <ph name="UPDATE_SIZE_MB" /> ميغابايت من بيانات الجوّال. هل ترغب في المتابعة؟</translation>
 <translation id="5601503069213153581">رقم التعريف الشخصي</translation>
 <translation id="5601823921345337195">‏المواقع الإلكترونية التي لا يُسمح لها بالاتصال بأجهزة MIDI</translation>
+<translation id="5601833336918638013">عدم السماح للمواقع الإلكترونية بالبحث عن أجهزة تتضمّن بلوتوث</translation>
 <translation id="5602765853043467355">محو الإشارات المرجعية والسجلّ وكلمات المرور وغيرها من البيانات على هذا الجهاز</translation>
 <translation id="5605758115928394442">تم إرسال إشعار إلى هاتفك لتأكيد هويتك.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{تم حظر هذه الإضافة}zero{تم حظر هذه الإضافات}two{تم حظر هاتين الإضافتين}few{تم حظر هذه الإضافات}many{تم حظر هذه الإضافات}other{تم حظر هذه الإضافات}}</translation>
@@ -6472,6 +6474,7 @@
 <translation id="6960507406838246615">‏يجب تحديث نظام التشغيل Linux.</translation>
 <translation id="6960648667961844909">‏تعذّر تنزيل ملفات التعرّف على الكلام باللغة <ph name="LANGUAGE" />. ستتم إعادة محاولة التنزيل لاحقًا. ويتم إرسال ملفات التعرّف على الكلام إلى Google لمعالجتها إلى حين اكتمال عملية التنزيل.</translation>
 <translation id="696103774840402661">تم حذف جميع الملفات والبيانات المحلّية لكلّ المستخدمين على الجهاز <ph name="DEVICE_TYPE" /> نهائيًا.</translation>
+<translation id="6961327401577924850">تبحث المواقع الإلكترونية عادةً عن أجهزة تتضمّن بلوتوث لتتيح ميزات مثل إعداد أو مزامنة جهاز مرشد منخفض الطاقة أو جهاز تتبُّع للحالة الصحية أو مستوى اللياقة البدنية أو مصباح ذكي.</translation>
 <translation id="6963872466817251924">أداة تمييز مؤشر النص</translation>
 <translation id="6964390816189577014">بطل</translation>
 <translation id="6964760285928603117">الإزالة من مجموعة</translation>
@@ -8111,6 +8114,7 @@
 <translation id="8465444703385715657">يتطلب تشغيل <ph name="PLUGIN_NAME" /> إذنًا منك</translation>
 <translation id="8466417995783206254">تشغِّل علامة التبويب هذه فيديو في وضع "نافذة ضمن نافذة".</translation>
 <translation id="8467326454809944210">اختيار لغة أخرى</translation>
+<translation id="8468087214092422866">المواقع الإلكترونية التي لا يُسمح لها بالبحث عن أجهزة تتضمّن بلوتوث</translation>
 <translation id="8470513973197838199">كلمات المرور المحفوظة لـ <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">‏تتّصل المواقع الإلكترونية عادةً بأجهزة USB لتتيح ميزات مثل طباعة مستند أو حفظ مستند على جهاز تخزين.</translation>
 <translation id="8471959340398751476">ميزة الحصول على الخصومات غير مفعّلة. يمكنك تفعيلها من خلال القائمة المخصّصة.</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index da68cf1..4d42f5d 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -1247,6 +1247,7 @@
 <translation id="2104166991923847969">হটস্পট স্বয়ংক্ৰিয়ভাৱে অফ কৰক</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> লুকুওৱা হ’ল</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{ফ’ন নম্বৰ}one{# টা ফ’ন নম্বৰ}other{# টা ফ’ন নম্বৰ}}</translation>
+<translation id="2110941575868943054">ব্লুটুথ ডিভাইচ বিচাৰিবলৈ অনুমতি দিয়া হয়</translation>
 <translation id="211144231511833662">মচাৰ প্ৰকাৰসমূহ</translation>
 <translation id="2111670510994270194">সোঁফালৰ নতুন টেব</translation>
 <translation id="2112554630428445878">স্বাগতম <ph name="USERNAME" /></translation>
@@ -3041,6 +3042,7 @@
 <translation id="3756485814916578707">স্ক্ৰীন কাষ্ট কৰি থকা হৈছে</translation>
 <translation id="3756578970075173856">পিন ছেট কৰক</translation>
 <translation id="3756795331760037744">Google Assistantক সহায় কৰিবলৈ <ph name="SUPERVISED_USER_NAME" />ৰ স্ক্ৰীনত থকা তথ্যখিনি ব্যৱহাৰ কৰিবলৈ দিয়ক</translation>
+<translation id="3756806135608816820">ছাইটে ব্লুটুথ ডিভাইচ বিচৰাৰ অনুমতি দিবলৈ ক’ব পাৰে</translation>
 <translation id="3757733214359997190">কোনো ছাইট বিচাৰি পোৱা নগ’ল</translation>
 <translation id="375841316537350618">প্ৰ’ক্সি স্ক্ৰিপ্ট ডাউনল’ড কৰি থকা হৈছে...</translation>
 <translation id="3758842566811519622">কুকিৰ ছেট</translation>
@@ -3810,6 +3812,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" />এ <ph name="FOLDERNAME" />ত থকা ফাইলসমূহ সম্পাদনা কৰিব পাৰে</translation>
 <translation id="4470957202018033307">বাহ্যিক ষ্ট’ৰেজৰ অগ্ৰাধিকাৰসমূহ</translation>
 <translation id="4471354919263203780">কথন চিনাক্তকৰণ সম্পৰ্কীয় ফাইলসমূহ ডাউনল’ড কৰি থকা হৈছে... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">আপুনি অগ্ৰাধিকাৰ দিয়া আপোনাৰ Google একাউণ্টৰ ভাষা (<ph name="NEW_LOCALE_FROM_GAIA" />) ব্যৱহাৰ কৰিব পাৰে</translation>
 <translation id="447252321002412580">Chromeৰ সুবিধা আৰু প্ৰদৰ্শন উন্নত কৰাত সহায় কৰক</translation>
 <translation id="4472575034687746823">আৰম্ভ কৰক</translation>
 <translation id="4474155171896946103">সকলো টেব বুকমাৰ্ক কৰক...</translation>
@@ -4540,7 +4543,6 @@
 <translation id="5158206172605340248">উচ্চাৰণ চিহ্নৰ মেনু অগ্ৰাহ্য কৰা হৈছে।</translation>
 <translation id="5159094275429367735">Crostini ছেট আপ কৰক</translation>
 <translation id="5159419673777902220">আপোনাৰ অভিভাৱকে এক্সটেনশ্বনৰ অনুমতিসমূহ অক্ষম কৰিছে</translation>
-<translation id="5159643365935452998">স্বয়ংক্ৰিয়ভাৱে ডেটা মচাটো পর্যালোচনা কৰক</translation>
 <translation id="5160634252433617617">কায়িক কীব’ৰ্ড</translation>
 <translation id="5160857336552977725">আপোনাৰ <ph name="DEVICE_TYPE" />ত ছাইন ইন কৰক</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" />ৰ ইউএছবি ডিভাইচ</translation>
@@ -5015,6 +5017,7 @@
 <translation id="5600706100022181951">আপডে’টটো ম’বাইল ডেটাৰ <ph name="UPDATE_SIZE_MB" /> এম.বি. ব্যৱহাৰ কৰি ডাউনল’ড কৰা হ’ব। আপুনি অব্যাহত ৰাখিবলৈ বিচাৰেনে?</translation>
 <translation id="5601503069213153581">পিন</translation>
 <translation id="5601823921345337195">MIDI ডিভাইচৰ সৈতে সংযোগ কৰাৰ অনুমতি নাই</translation>
+<translation id="5601833336918638013">ছাইটক ব্লুটুথ ডিভাইচ বিচাৰিবলৈ নিদিব</translation>
 <translation id="5602765853043467355">এই ডিভাইচৰ পৰা বুকমার্ক, ইতিহাস, পাছৱর্ড আৰু অধিক তথ্য মচক</translation>
 <translation id="5605758115928394442">এইগৰাকী আপুনিয়েই হয় বুলি নিশ্চিত কৰিবলৈ আপোনাৰ ফ'নলৈ এটা জাননী পঠিওৱা হৈছে।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{এই এক্সটেনশ্বনটো অৱৰোধ কৰা হৈছে}one{এই এক্সটেনশ্বনসমূহ অৱৰোধ কৰা হৈছে}other{এই এক্সটেনশ্বনসমূহ অৱৰোধ কৰা হৈছে}}</translation>
@@ -6474,6 +6477,7 @@
 <translation id="6960507406838246615">Linux আপডে'ট কৰাৰ আৱশ্যক</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" />ৰ কথনৰ ফাইল ডাউনল’ড কৰিব পৰা নগ’ল। পাছত ডাউনল’ড কৰিবলৈ প্ৰয়াস কৰা হ’ব। ডাউনল’ড সম্পূৰ্ণ নোহোৱা পৰ্যন্ত প্ৰক্ৰিয়াকৰণৰ বাবে Googleলৈ কথন পঠিওৱা হয়।</translation>
 <translation id="696103774840402661">এই <ph name="DEVICE_TYPE" />ত থকা আটাইবোৰ ব্যৱহাৰকাৰীৰ আটাইবোৰ ফাইল আৰু স্থানীয় ডেটা স্থায়ীভাৱে মচা হ’ল।</translation>
+<translation id="6961327401577924850">ছাইটে সচৰাচৰ কম শক্তিৰ সংকেত, স্বাস্থ্য অথবা শৰীৰচৰ্চাৰ ট্ৰেকাৰ অথবা স্মাৰ্ট লাইট বাল্ব ছেট আপ কৰা অথবা ছিংক কৰাৰ দৰে সুবিধাসমূহৰ বাবে ব্লুটুথ ডিভাইচ বিচাৰে</translation>
 <translation id="6963872466817251924">পাঠৰ কাৰ্ছৰৰ হাইলাইটাৰ</translation>
 <translation id="6964390816189577014">হিৰ'</translation>
 <translation id="6964760285928603117">গোটৰ পৰা আঁতৰাওক</translation>
@@ -6750,6 +6754,7 @@
 <translation id="7227458944009118910">তলত সূচীবদ্ধ কৰা এপ্‌সমুহে প্ৰট’কলৰ লিংকো পৰিচালনা কৰিব পাৰে। অন্য এপে অনুমতি বিচাৰিব।</translation>
 <translation id="7228056665272655255">ফিংগাৰপ্ৰিণ্ট ছেট আপ কৰিবলৈ আপোনাৰ শিশুক কীব’ৰ্ডৰ একেবাৰে ওপৰৰ সোঁফালৰ কোণত থকা ফিংগাৰপ্ৰিণ্ট ছেন্সৰটো স্পৰ্শ কৰিবলৈ দিয়ক। আপোনাৰ শিশুৰ ফিংগাৰপ্ৰিণ্টৰ ডেটা সুৰক্ষিতভাৱে ষ্ট’ৰ কৰা হয় আৰু সেইখিনি সদায় এই <ph name="DEVICE_TYPE" />ত থাকে।</translation>
 <translation id="7228523857728654909">স্ক্ৰীন লক আৰু ছাইন-ইন</translation>
+<translation id="7228854227189381547">সলনি নকৰিব</translation>
 <translation id="7230222852462421043">ৱিণ্ড’ পুনঃস্থাপন কৰক</translation>
 <translation id="7231260028442989757">আপোনাৰ ফ’নৰ জাননী চাওক, অগ্ৰাহ্য কৰক আৰু প্ৰত্যুত্তৰ দিয়ক</translation>
 <translation id="7232750842195536390">নাম সলনি কৰিব পৰা নগ’ল</translation>
@@ -7083,6 +7088,7 @@
 <translation id="7545466883021407599">ছাৰ্ভাৰৰ সৈতে সংযোগ কৰিব পৰা নগ’ল। আপোনাৰ নেটৱৰ্ক সংযোগ পৰীক্ষা কৰক আৰু পুনৰ চেষ্টা কৰক। আপুনি যদি এতিয়াও সমস্যাৰ সন্মুখীন হৈ আছে, আপোনাৰ Chromebook ৰিষ্টাৰ্ট কৰি চাওক। আসোঁৱাহ ক’ড: <ph name="ERROR_CODE" />।</translation>
 <translation id="7547317915858803630">সর্তকবার্তা: আপোনাৰ <ph name="PRODUCT_NAME" /> ছেটিংসমূহ কোনো নেটৱর্কৰ ড্ৰাইভত ষ্ট’ৰ কৰা হৈছে। ইয়াৰ ফলত আপোনাৰ কার্য লেহেমীয়া হ’ব পাৰে, ক্ৰেশ্ব হ’ব পাৰে বা আপুনি ডেটা হেৰুৱাব পাৰে।</translation>
 <translation id="7548856833046333824">লেম’নেড</translation>
+<translation id="7549434883223124329">ডিভাইচৰ ভাষা সলনি কৰিবনে?</translation>
 <translation id="7550830279652415241">বুকমাৰ্ক_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> ডাউনল’ড কৰিব পৰা নগ’ল৷</translation>
 <translation id="7551643184018910560">শ্বেল্‌ফত পিন কৰক</translation>
@@ -8108,6 +8114,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" />ক চলিবলৈ আপোনাৰ অনুমতিৰ আৱশ্যক</translation>
 <translation id="8466417995783206254">এই টেবটোৱে চিত্ৰৰ ভিতৰত চিত্ৰ ম'ডত এটা ভিডিঅ' প্লে' কৰি আছে।</translation>
 <translation id="8467326454809944210">অন্য এটা ভাষা বাছনি কৰক</translation>
+<translation id="8468087214092422866">ব্লুটুথ ডিভাইচ বিচাৰিবলৈ অনুমতি দিয়া নহয়</translation>
 <translation id="8470513973197838199"><ph name="ORIGIN" />ৰ বাবে ছেভ কৰি থোৱা পাছৱৰ্ড</translation>
 <translation id="8471525937465764768">ছাইটসমূহে সচৰাচৰ নথি প্ৰিণ্ট কৰা অথবা এটা ষ্ট'ৰেজ ডিভাইচত ছেভ কৰাৰ দৰে সুবিধাসমূহৰ বাবে ইউএছবি ডিভাইচসমূহৰ সৈতে সংযোগ কৰে</translation>
 <translation id="8471959340398751476">ৰেহাইসমূহ অফ কৰা আছে। আপুনি সেইবোৰ কাষ্টমাইজ মেনুখনত অন কৰিব পাৰে</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index deb087ba..929e8e6 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -1233,6 +1233,7 @@
 <translation id="2104166991923847969">Hotspot avtomatik deaktiv edilsin</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> gizlədilib</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Telefon nömrəsi}other{# telefon nömrəsi}}</translation>
+<translation id="2110941575868943054">Bluetooth cihazlarını axtarmağa icazə verilir</translation>
 <translation id="211144231511833662">Növləri silin</translation>
 <translation id="2111670510994270194">Sağa yeni panel</translation>
 <translation id="2112554630428445878">Xoş gəlmisiniz, <ph name="USERNAME" /></translation>
@@ -3027,6 +3028,7 @@
 <translation id="3756485814916578707">Ekran yayımlanır</translation>
 <translation id="3756578970075173856">PIN ayarlayın</translation>
 <translation id="3756795331760037744">Google Assistentin kömək etməsi üçün <ph name="SUPERVISED_USER_NAME" /> adlı istifadəçinin ekranındakı məlumatdan istifadə etməsinə icazə verin</translation>
+<translation id="3756806135608816820">Saytlar Bluetooth cihazlarını axtarmağı istəyə bilər</translation>
 <translation id="3757733214359997190">Sayt tapılmadı</translation>
 <translation id="375841316537350618">Proksi skripti endirilir...</translation>
 <translation id="3758842566811519622">Kuki dəsti</translation>
@@ -4525,7 +4527,6 @@
 <translation id="5158206172605340248">Vurğu işarələri menyusu qapadılıb.</translation>
 <translation id="5159094275429367735">Crostini'ni ayarlayın</translation>
 <translation id="5159419673777902220">Valideyniniz artırma icazələrini deaktiv edib</translation>
-<translation id="5159643365935452998">Avtomatik data silinməsini nəzərdən keçirin</translation>
 <translation id="5160634252433617617">Fiziki klaviatura</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" /> cihazınıza daxil olun</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> adlı təminatçıdan USB cihazları</translation>
@@ -5000,6 +5001,7 @@
 <translation id="5600706100022181951">Güncəlləmə <ph name="UPDATE_SIZE_MB" /> MB mobil data istifadə edərək endiriləcək. Davam etmək istərdiniz?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI cihazlarına qoşulmağa icazə verilməyib</translation>
+<translation id="5601833336918638013">Saytlara Bluetooth cihazlarını axtarmağa icazə verməyin</translation>
 <translation id="5602765853043467355">Bu cihazda əlfəcin, tarixçə, parollar və daha çoxunu silin</translation>
 <translation id="5605758115928394442">Kimliyinizi doğrulamaq üçün telefona bildiriş göndərildi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Bu artırma bloklanıb}other{Bu artırmalar bloklanıb}}</translation>
@@ -6455,6 +6457,7 @@
 <translation id="6960507406838246615">Linux güncəlləməsi tələb edilir</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> dilində danışıq fayllarını endirmək mümkün olmadı. Endirməyə daha sonra cəhd ediləcək. Danışıq endirmə tamamlanana qədər emal üçün Google'a göndərilir.</translation>
 <translation id="696103774840402661">Bu <ph name="DEVICE_TYPE" /> cihazındakı bütün istifadəçilər üçün bütün fayllar və yerli data həmişəlik silinib.</translation>
+<translation id="6961327401577924850">Saytlar adətən aşağı enerji mayakını, sağlamlıq və ya fitnes izləyicisini, yaxud smart işıq lampasını qurmaq və ya sinxronlaşdırmaq kimi xüsusiyyətlər üçün Bluetooth cihazlarını axrarır</translation>
 <translation id="6963872466817251924">Mətn kursoru vurğulayıcısı</translation>
 <translation id="6964390816189577014">Qəhrəman</translation>
 <translation id="6964760285928603117">Qrupdan Çıxarın</translation>
@@ -8091,6 +8094,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> işləmək üçün icazənizi gözləyir</translation>
 <translation id="8466417995783206254">Bu tab şəkil içində şəkil funksiyasında video oxudur.</translation>
 <translation id="8467326454809944210">Başqa dil seçin</translation>
+<translation id="8468087214092422866">Bluetooth cihazlarını axtarmağa icazə verilmir</translation>
 <translation id="8470513973197838199"><ph name="ORIGIN" /> üçün parollar yadda saxlanıldı</translation>
 <translation id="8471525937465764768">Saytlar adətən sənəd çap etmək və ya yaddaş cihazında saxlamaq kimi xüsusiyyətlər üçün USB cihazlarına qoşulur</translation>
 <translation id="8471959340398751476">Endirimlər deaktivdir. Onları fərdiləşdirmə menyusunda aktiv edə bilərsiniz</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 57015aee..c68548e 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -4530,7 +4530,6 @@
 <translation id="5158206172605340248">Меню дыякрытычных знакаў закрыта.</translation>
 <translation id="5159094275429367735">Наладзіць Crostini</translation>
 <translation id="5159419673777902220">Бацькі выключылі дазволы для пашырэнняў</translation>
-<translation id="5159643365935452998">Агляд параметраў аўтаматычнага выдалення даных</translation>
 <translation id="5160634252433617617">Фізічная клавіятура</translation>
 <translation id="5160857336552977725">Уваход у <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Прылады USB ад пастаўшчыка "<ph name="VENDOR_NAME" />"</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 6e3c5a9c..e67ee417 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -3810,6 +3810,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> може да редактира файловете в(ъв) „<ph name="FOLDERNAME" />“</translation>
 <translation id="4470957202018033307">Предпочитания за външно хранилище</translation>
 <translation id="4471354919263203780">Файловете за разпознаване на говор се изтеглят... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Можете да използвате предпочитания от вас език за профила в Google (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Помощ за подобряването на функциите и ефективността на Chrome</translation>
 <translation id="4472575034687746823">Първи стъпки</translation>
 <translation id="4474155171896946103">Запазване на отметки към всички раздели…</translation>
@@ -4540,7 +4541,6 @@
 <translation id="5158206172605340248">Менюто за диакритични знаци е отхвърлено.</translation>
 <translation id="5159094275429367735">Настройване на Crostini</translation>
 <translation id="5159419673777902220">Родителят ви е деактивирал разрешенията за разширенията</translation>
-<translation id="5159643365935452998">Преглед на автоматичното изчистване на данните</translation>
 <translation id="5160634252433617617">Физическа клавиатура</translation>
 <translation id="5160857336552977725">Влезте в своя <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB устройства от <ph name="VENDOR_NAME" /></translation>
@@ -6749,6 +6749,7 @@
 <translation id="7227458944009118910">Приложенията по-долу също могат да обработват връзки с протокол. Другите приложения ще искат разрешение.</translation>
 <translation id="7228056665272655255">За да настрои отпечатък, детето ви трябва да докосне сензора за отпечатъци в горния десен ъгъл на клавиатурата. Данните за отпечатъка му се съхраняват надеждно и никога не напускат устройството <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Заключване на екрана и влизане в профила</translation>
+<translation id="7228854227189381547">Без превключване</translation>
 <translation id="7230222852462421043">Възстановяване на &amp;прозореца</translation>
 <translation id="7231260028442989757">Преглеждайте, отхвърляйте и отговаряйте на известията на телефона си</translation>
 <translation id="7232750842195536390">Преименуването не бе успешно</translation>
@@ -7082,6 +7083,7 @@
 <translation id="7545466883021407599">Не се установи връзка със сървъра. Проверете връзката си с мрежата и опитайте отново. Ако продължавате да имате проблеми, рестартирайте своя Chromebook. Код на грешката: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Предупреждение: Настройките ви за <ph name="PRODUCT_NAME" /> се съхраняват на мрежов диск. Това може да доведе до забавяния, сривове или дори до загуба на данни.</translation>
 <translation id="7548856833046333824">Лимонада</translation>
+<translation id="7549434883223124329">Да се превключи ли езикът на устройството?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">„<ph name="FILE_NAME" />“ се изтегли успешно</translation>
 <translation id="7551643184018910560">Фиксиране в лавицата</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index a3c9cab8..28feafa8 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -3814,6 +3814,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" />-এর কাছে <ph name="FOLDERNAME" /> ফোল্ডারের ফাইল এডিট করার অনুমতি আছে</translation>
 <translation id="4470957202018033307">এক্সটারনাল স্টোরেজের ব্যাপারে অভিরুচি</translation>
 <translation id="4471354919263203780">স্পিচ শনাক্তকরণ ফাইল ডাউনলোড করা হচ্ছে... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">আপনার পছন্দের Google অ্যাকাউন্টের ভাষা ব্যবহার করতে পারেন (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Chrome-এর বৈশিষ্ট্য এবং পারফরম্যান্স আরও ভালো করতে সাহায্য করুন</translation>
 <translation id="4472575034687746823">শুরু করা যাক</translation>
 <translation id="4474155171896946103">সব কটি ট্যাব বুকমার্ক করুন...</translation>
@@ -4545,7 +4546,6 @@
 <translation id="5158206172605340248">অ্যাকসেন্ট চিহ্ন মেনু বাতিল করা হয়েছে।</translation>
 <translation id="5159094275429367735">Crostini সেট আপ করুন</translation>
 <translation id="5159419673777902220">আপনার অভিভাবক এক্সটেনশন ব্যবহারের অনুমতি বন্ধ করে দিয়েছেন।</translation>
-<translation id="5159643365935452998">অটোমেটিক ডেটা মুছে ফেলার সুবিধা পর্যালোচনা করা</translation>
 <translation id="5160634252433617617">ফিজিক্যাল কীবোর্ড</translation>
 <translation id="5160857336552977725">আপনার <ph name="DEVICE_TYPE" />-এ সাইন-ইন করুন</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" />-এর ইউএসবি ডিভাইস</translation>
@@ -6757,6 +6757,7 @@
 <translation id="7227458944009118910">নিচের তালিকাভুক্ত অ্যাপগুলি প্রোটোকল লিঙ্কও ম্যানেজ করতে পারবে। অন্য অ্যাপগুলির ক্ষেত্রে অনুমতি প্রয়োজন হবে।</translation>
 <translation id="7228056665272655255">ফিঙ্গারপ্রিন্ট সেট-আপ করতে, আপনার সন্তানকে কীবোর্ডের উপরের ডানদিকের কোণে থাকা ফিঙ্গারপ্রিন্ট সেন্সর টাচ করতে বলুন। আপনার সন্তানের ফিঙ্গারপ্রিন্ট ডেটা নিরাপদে সেভ করা হয় এবং সবসময় <ph name="DEVICE_TYPE" />-এ থাকে।</translation>
 <translation id="7228523857728654909">স্ক্রিন লক এবং সাইন-ইন করুন</translation>
+<translation id="7228854227189381547">সুইচ করতে চাই না</translation>
 <translation id="7230222852462421043">&amp;উইন্ডো আবার আগের অবস্থায় ফিরিয়ে আনুন</translation>
 <translation id="7231260028442989757">আপনার ফোনের বিজ্ঞপ্তি দেখুন, বাতিল করুন এবং উত্তর দিন</translation>
 <translation id="7232750842195536390">নাম পরিবর্তন করা যায়নি</translation>
@@ -7090,6 +7091,7 @@
 <translation id="7545466883021407599">সার্ভারের সাথে কানেক্ট করা যাচ্ছে না। আপনার নেটওয়ার্ক কানেকশন চেক করে আবার চেষ্টা করুন। এর পরেও সমস্যা হলে, Chromebook রিস্টার্ট করে দেখুন। সমস্যার কোড: <ph name="ERROR_CODE" /></translation>
 <translation id="7547317915858803630">সতর্কবাণী: আপনার <ph name="PRODUCT_NAME" />সেটিংস নেটওয়ার্ক ড্রাইভে সংরক্ষণ করা হয়৷ এর ফলে মন্থরতা, ক্র্যাশ, অথবা এমনকি ডেটা হারিয়ে যেতে পারে৷</translation>
 <translation id="7548856833046333824">লেমনেড</translation>
+<translation id="7549434883223124329">ডিভাইসের ভাষা সুইচ করবেন?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> ডাউনলোড করা যায়নি</translation>
 <translation id="7551643184018910560">শেল্ফে পিন করুন</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index b86f307..2f9a4680 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -1248,6 +1248,7 @@
 <translation id="2104166991923847969">Automatski isključi pristupnu tačku</translation>
 <translation id="2105809836724866556">Skriveno: <ph name="MODULE_TITLE" /></translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Broj telefona}one{# broj telefona}few{# broja telefona}other{# brojeva telefona}}</translation>
+<translation id="2110941575868943054">Web lokacije kojima je dozvoljeno pretraživanje Bluetooth uređaja</translation>
 <translation id="211144231511833662">Obrši vrste</translation>
 <translation id="2111670510994270194">Nova kartica s desne strane</translation>
 <translation id="2112554630428445878">Dobro došli, <ph name="USERNAME" /></translation>
@@ -3042,6 +3043,7 @@
 <translation id="3756485814916578707">Emitiranje ekrana</translation>
 <translation id="3756578970075173856">Postavljanje PIN-a</translation>
 <translation id="3756795331760037744">Dozvolite Google Asistentu da koristi informacije koje <ph name="SUPERVISED_USER_NAME" /> ima na ekranu da pruži pomoć</translation>
+<translation id="3756806135608816820">Web lokacije mogu tražiti da pretraže Bluetooth uređaje</translation>
 <translation id="3757733214359997190">Nisu pronađene web lokacije</translation>
 <translation id="375841316537350618">Preuzimanje proksi skripte…</translation>
 <translation id="3758842566811519622">Kolačići su postavljeni</translation>
@@ -3812,6 +3814,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> može uređivati fajlove u folderu <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Postavke vanjske pohrane</translation>
 <translation id="4471354919263203780">Preuzimanje fajlova za prepoznavanje govora... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Možete koristiti željeni jezik Google računa (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Pomozite nam da poboljšamo funkcije i performanse Chromea</translation>
 <translation id="4472575034687746823">Započnite</translation>
 <translation id="4474155171896946103">Označi sve kartice...</translation>
@@ -4542,7 +4545,6 @@
 <translation id="5158206172605340248">Meni s oznakama akcenata je odbačen.</translation>
 <translation id="5159094275429367735">Postavite Crostini</translation>
 <translation id="5159419673777902220">Tvoj roditelj je onemogućio odobrenja za ekstenzije</translation>
-<translation id="5159643365935452998">Pregledajte automatsko brisanje podataka</translation>
 <translation id="5160634252433617617">Fizička tastatura</translation>
 <translation id="5160857336552977725">Prijavite se na uređaj <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB uređaji dobavljača <ph name="VENDOR_NAME" /></translation>
@@ -5017,6 +5019,7 @@
 <translation id="5600706100022181951">Za preuzimanje ažuriranja iskoristit će se <ph name="UPDATE_SIZE_MB" /> MB mobilnih podataka. Želite li nastaviti?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nije dozvoljeno povezivanje na MIDI uređaje</translation>
+<translation id="5601833336918638013">Nemoj dozvoliti web lokacijama da pretraže Bluetooth uređaje</translation>
 <translation id="5602765853043467355">Obriši oznake, historiju, lozinke i drugo s ovog uređaja</translation>
 <translation id="5605758115928394442">Na vaš telefon je poslano obavještenje da potvrdimo vaš identitet.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ova ekstenzija je blokirana}one{Ove ekstenzije su blokirane}few{Ove ekstenzije su blokirane}other{Ove ekstenzije su blokirane}}</translation>
@@ -6478,6 +6481,7 @@
 <translation id="6960507406838246615">Potrebno je ažurirati Linux</translation>
 <translation id="6960648667961844909">Preuzimanje fajlova govora na jeziku <ph name="LANGUAGE" /> nije uspjelo. Pokušaj preuzimanja će se izvršiti kasnije. Govor će se poslati Googleu na obradu kad se završi preuzimanje.</translation>
 <translation id="696103774840402661">Trajno su izbrisani svi fajlovi i lokalni podaci za sve korisnike na ovom uređaju <ph name="DEVICE_TYPE" />.</translation>
+<translation id="6961327401577924850">Web lokacije obično pretražuju Bluetooth uređaje radi funkcija kao što je postavljanje ili sinhroniziranje pratilice male potrošnje energije, uređaja za praćenje zdravlja ili fitnesa ili pametnog svjetla</translation>
 <translation id="6963872466817251924">Istakni kursor za tekst</translation>
 <translation id="6964390816189577014">Junak</translation>
 <translation id="6964760285928603117">Ukloni iz grupe</translation>
@@ -6754,6 +6758,7 @@
 <translation id="7227458944009118910">Aplikacije navedene u nastavku mogu također obrađivati linkove protokola. Ostale aplikacije će tražiti odobrenje.</translation>
 <translation id="7228056665272655255">Da postavite otisak prsta, dijete treba dodirnuti senzor za otisak prsta u gornjem desnom uglu tastature. Podaci otiska prsta vašeg djeteta se sigurno pohranjuju i nikada ne napuštaju uređaj <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Zaključavanje ekrana i prijava</translation>
+<translation id="7228854227189381547">Nemoj prebaciti</translation>
 <translation id="7230222852462421043">&amp;Vrati prozor</translation>
 <translation id="7231260028442989757">Pregledajte, odbacite i odgovorite na obavještenja telefona</translation>
 <translation id="7232750842195536390">Promjena naziva nije uspjela</translation>
@@ -7087,6 +7092,7 @@
 <translation id="7545466883021407599">Povezivanje sa serverom nije uspjelo. Provjerite mrežnu vezu i pokušajte ponovo. Ako se problemi nastave, pokušajte ponovo pokrenuti Chromebook. Kȏd greške: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Opasnost: vaše postavke za <ph name="PRODUCT_NAME" /> su pohranjene na mrežnom disku. To može uzrokovati usporavanje rada, padove proizvoda pa čak i gubitak podataka.</translation>
 <translation id="7548856833046333824">Limunada</translation>
+<translation id="7549434883223124329">Promijeniti jezik uređaja?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Preuzimanje fajla <ph name="FILE_NAME" /> nije uspjelo</translation>
 <translation id="7551643184018910560">Zakači za policu</translation>
@@ -8113,6 +8119,7 @@
 <translation id="8465444703385715657">Za pokretanje dodatka <ph name="PLUGIN_NAME" /> je potrebno vaše odobrenje</translation>
 <translation id="8466417995783206254">Ova kartica reproducira videozapis u načinu rada slike u slici.</translation>
 <translation id="8467326454809944210">Odaberi drugi jezik</translation>
+<translation id="8468087214092422866">Web lokacije kojima nije dozvoljeno pretraživanje Bluetooth uređaja</translation>
 <translation id="8470513973197838199">Sačuvane lozinke za <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Web lokacije se obično povezuju s USB uređajima radi funkcija kao što je štampanje dokumenta ili pohranjivanje na uređaj za pohranu</translation>
 <translation id="8471959340398751476">Popusti su isključeni. Možete ih uključiti u meniju za prilagođavanje</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 22e2eac..3ae68b10 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -1237,6 +1237,7 @@
 <translation id="2104166991923847969">Desactiva el punt d'accés Wi-Fi automàticament</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> s'ha amagat</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Número de telèfon}other{# números de telèfon}}</translation>
+<translation id="2110941575868943054">Amb permís per cercar dispositius Bluetooth</translation>
 <translation id="211144231511833662">Desmarca tots els tipus de dispositius</translation>
 <translation id="2111670510994270194">Pestanya nova a la dreta</translation>
 <translation id="2112554630428445878">Et donem la benvinguda, <ph name="USERNAME" /></translation>
@@ -3028,6 +3029,7 @@
 <translation id="3756485814916578707">S'està emetent la pantalla</translation>
 <translation id="3756578970075173856">Defineix el PIN</translation>
 <translation id="3756795331760037744">Permet que l'Assistent de Google utilitzi informació de la pantalla del teu fill o filla (<ph name="SUPERVISED_USER_NAME" />) per ajudar-los</translation>
+<translation id="3756806135608816820">Els llocs web poden demanar permís per cercar dispositius Bluetooth</translation>
 <translation id="3757733214359997190">No s'ha trobat cap lloc web</translation>
 <translation id="375841316537350618">S'està baixant l'script de servidor intermediari...</translation>
 <translation id="3758842566811519622">S'han establert les galetes</translation>
@@ -3797,6 +3799,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> pot editar els fitxers que conté la carpeta <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Preferències de l'emmagatzematge extern</translation>
 <translation id="4471354919263203780">S'estan baixant els fitxers de reconeixement de parla... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Pots utilitzar l'idioma que prefereixes per al teu Compte de Google (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Ajuda a millorar les funcions i el rendiment de Chrome</translation>
 <translation id="4472575034687746823">Comença</translation>
 <translation id="4474155171896946103">Afegeix totes les pestanyes a les adreces d'interès...</translation>
@@ -4526,7 +4529,6 @@
 <translation id="5158206172605340248">S'ha ignorat el menú de marques d'èmfasi.</translation>
 <translation id="5159094275429367735">Configura Crostini</translation>
 <translation id="5159419673777902220">El teu pare o mare han desactivat els permisos d'extensions</translation>
-<translation id="5159643365935452998">Revisa l'eliminació automàtica de dades</translation>
 <translation id="5160634252433617617">Teclat físic</translation>
 <translation id="5160857336552977725">Inicieu la sessió al vostre dispositiu (<ph name="DEVICE_TYPE" />)</translation>
 <translation id="5161251470972801814">Dispositius USB fabricats per <ph name="VENDOR_NAME" /></translation>
@@ -5002,6 +5004,7 @@
 <translation id="5600706100022181951">Per baixar l'actualització s'utilitzaran <ph name="UPDATE_SIZE_MB" /> MB de dades mòbils. Vols continuar?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Sense permís per connectar-se a dispositius MIDI</translation>
+<translation id="5601833336918638013">No permetis que els llocs web cerquin dispositius Bluetooth</translation>
 <translation id="5602765853043467355">Esborra les adreces d'interès, l'historial, les contrasenyes i altres dades d'aquest dispositiu</translation>
 <translation id="5605758115928394442">S'ha enviat una notificació al teu telèfon per confirmar la teva identitat.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Aquesta extensió està bloquejada}other{Aquestes extensions estan bloquejades}}</translation>
@@ -6457,6 +6460,7 @@
 <translation id="6960507406838246615">Cal actualitzar Linux</translation>
 <translation id="6960648667961844909">No s'han pogut baixar els fitxers de parla en <ph name="LANGUAGE" />. La baixada s'intentarà més tard. Fins que es completi, s'envia la parla a Google perquè la processi.</translation>
 <translation id="696103774840402661">Tots els fitxers i totes les dades locals de tots els usuaris d'aquest dispositiu <ph name="DEVICE_TYPE" /> s'han suprimit permanentment.</translation>
+<translation id="6961327401577924850">Els llocs web solen cercar dispositius Bluetooth per a funcions com ara configurar o sincronitzar una balisa de baix consum, una aplicació de seguiment de fitnes o salut, o una bombeta intel·ligent</translation>
 <translation id="6963872466817251924">Marcador del cursor de text</translation>
 <translation id="6964390816189577014">Heroi</translation>
 <translation id="6964760285928603117">Suprimeix del grup</translation>
@@ -6733,6 +6737,7 @@
 <translation id="7227458944009118910">Les aplicacions que s'enumeren a continuació també poden gestionar enllaços de protocol. Les altres aplicacions et demanaran permís.</translation>
 <translation id="7228056665272655255">Per configurar una empremta digital, fes que el teu fill o filla toqui el sensor d'empremtes digitals que hi ha a l'extrem superior dret del teclat. Les dades de la seva empremta digital s'emmagatzemen de manera segura i no surten mai del <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Bloqueig de pantalla i inici de sessió</translation>
+<translation id="7228854227189381547">No canviïs</translation>
 <translation id="7230222852462421043">&amp;Restaura la finestra</translation>
 <translation id="7231260028442989757">Consulta les notificacions del telèfon, ignora-les o respon-hi</translation>
 <translation id="7232750842195536390">S'ha produït un error en canviar el nom</translation>
@@ -7066,6 +7071,7 @@
 <translation id="7545466883021407599">No s'ha pogut connectar amb el servidor. Comprova la connexió a la xarxa i torna-ho a provar. Si encara tens problemes, prova de reiniciar el Chromebook. Codi d'error: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Advertiment: la vostra configuració de <ph name="PRODUCT_NAME" /> s'emmagatzema en una unitat de xarxa. Això pot provocar alentiments, bloquejos o fins i tot la pèrdua de dades.</translation>
 <translation id="7548856833046333824">Còctel</translation>
+<translation id="7549434883223124329">Vols canviar l'idioma del dispositiu?</translation>
 <translation id="7550830279652415241">marcadors_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">No s'ha pogut baixar <ph name="FILE_NAME" /></translation>
 <translation id="7551643184018910560">Fixa al prestatge</translation>
@@ -8093,6 +8099,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> necessita el teu permís per executar-se</translation>
 <translation id="8466417995783206254">En aquesta pestanya s'està reproduint un vídeo en mode de pantalla en pantalla.</translation>
 <translation id="8467326454809944210">Tria un altre idioma</translation>
+<translation id="8468087214092422866">Sense permís per cercar dispositius Bluetooth</translation>
 <translation id="8470513973197838199">Contrasenyes desades per a <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Els llocs web solen connectar-se a dispositius USB per a funcions com ara desar dades en un dispositiu d'emmagatzematge o imprimir un document</translation>
 <translation id="8471959340398751476">Els descomptes estan desactivats. Pots activar-los al menú de personalització.</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 3a2105b..0ccf725 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -4528,7 +4528,6 @@
 <translation id="5158206172605340248">Nabídka diakritiky byla zavřena.</translation>
 <translation id="5159094275429367735">Nastavit Crostini</translation>
 <translation id="5159419673777902220">Oprávnění pro rozšíření zakázal rodič</translation>
-<translation id="5159643365935452998">Zkontrolujte automatické mazání dat</translation>
 <translation id="5160634252433617617">Fyzická klávesnice</translation>
 <translation id="5160857336552977725">Přihlaste se do zařízení <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Zařízení USB od dodavatele <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index 0b39dac..ccff856f 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -3816,6 +3816,7 @@
 <translation id="4469762931504673593">Mae <ph name="ORIGIN" /> yn gallu golygu ffeiliau yn <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Dewisiadau storfa allanol</translation>
 <translation id="4471354919263203780">Wrthi'n lawrlwytho ffeiliau adnabod llais… <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Gallwch ddefnyddio'r dewis iaith o'ch Cyfrif Google (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Helpu i Wella nodweddion a pherfformiad Chrome</translation>
 <translation id="4472575034687746823">Cychwyn arni</translation>
 <translation id="4474155171896946103">Creu nod tudalen ar gyfer pob tab...</translation>
@@ -4546,7 +4547,6 @@
 <translation id="5158206172605340248">Gwrthodwyd y ddewislen nodau acen.</translation>
 <translation id="5159094275429367735">Gosod Crostini</translation>
 <translation id="5159419673777902220">Mae eich rhiant wedi analluogi caniatadau estyniad</translation>
-<translation id="5159643365935452998">Adolygu clirio data yn awtomatig</translation>
 <translation id="5160634252433617617">Bysellfwrdd ffisegol</translation>
 <translation id="5160857336552977725">Mewngofnodi i'ch <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Dyfeisiau USB gan <ph name="VENDOR_NAME" /></translation>
@@ -6762,6 +6762,7 @@
 <translation id="7227458944009118910">Gall yr apiau sydd wedi'u rhestru isod ymdrin â dolenni protocol hefyd. Bydd apiau eraill yn gofyn am ganiatâd.</translation>
 <translation id="7228056665272655255">I osod olion bysedd, gofynnwch i'ch plentyn gyffwrdd â'r synhwyrydd olion bysedd ar gornel dde uchaf y bysellfwrdd. Mae data olion bysedd eich plentyn yn cael eu storio'n ddiogel a byth yn gadael y <ph name="DEVICE_TYPE" /> hwn.</translation>
 <translation id="7228523857728654909">Clo sgrîn a mewngofnodi</translation>
+<translation id="7228854227189381547">Peidio â newid</translation>
 <translation id="7230222852462421043">&amp;Adfer y Ffenestr</translation>
 <translation id="7231260028442989757">Gweld, gwrthod, ac ymateb i hysbysebion eich ffôn</translation>
 <translation id="7232750842195536390">Wedi methu ag ailenwi</translation>
@@ -7095,6 +7096,7 @@
 <translation id="7545466883021407599">Wedi methu â chysylltu â'r gweinydd. Gwiriwch eich cysylltiad rhwydwaith a rhowch gynnig arall arni. Os ydych yn dal i gael trafferth, rhowch gynnig ar ailgychwyn eich Chromebook. Cod gwall: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Rhybudd: Mae eich gosodiadau <ph name="PRODUCT_NAME" /> yn cael eu storio ar yriant rhwydwaith. Mae'n bosib y bydd hyn yn arwain at arafu, torri, neu hyd yn oed golli data.</translation>
 <translation id="7548856833046333824">Lemonêd</translation>
+<translation id="7549434883223124329">Newid iaith y ddyfais?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Wedi methu â lawrlwytho <ph name="FILE_NAME" /></translation>
 <translation id="7551643184018910560">Pinio i'r silff</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 7ff639b3..5684c3f 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -3814,6 +3814,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> kan redigere filer i <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Præferencer for ekstern lagerplads</translation>
 <translation id="4471354919263203780">Downloader talegenkendelsesfiler... <ph name="PERCENT" /> %</translation>
+<translation id="4472298120638043495">Du kan bruge dit foretrukne sprog fra din Google-konto (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Vær med til at forbedre Chromes funktioner og ydeevne</translation>
 <translation id="4472575034687746823">Kom godt i gang</translation>
 <translation id="4474155171896946103">Tilføj alle faner som bogmærker...</translation>
@@ -4544,7 +4545,6 @@
 <translation id="5158206172605340248">Menuen for accenttegn blev lukket.</translation>
 <translation id="5159094275429367735">Konfigurer Crostini</translation>
 <translation id="5159419673777902220">Din forælder har deaktiveret tilladelserne for udvidelser</translation>
-<translation id="5159643365935452998">Gennemgå automatisk rydning af data</translation>
 <translation id="5160634252433617617">Fysisk tastatur</translation>
 <translation id="5160857336552977725">Log ind på din <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB-enheder fra <ph name="VENDOR_NAME" /></translation>
@@ -6754,6 +6754,7 @@
 <translation id="7227458944009118910">De apps, der er angivet nedenfor, kan også håndtere protokollinks. Andre apps beder om tilladelse.</translation>
 <translation id="7228056665272655255">Du kan konfigurere et fingeraftryk ved at få dit barn til at sætte fingeren på fingeraftrykssensoren øverst til højre på tastaturet. Dit barns fingeraftryksdata gemmes sikkert og forlader aldrig denne <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Skærmlås og login</translation>
+<translation id="7228854227189381547">Skift ikke</translation>
 <translation id="7230222852462421043">&amp;Gendan vindue</translation>
 <translation id="7231260028442989757">Se, afvis og reager på notifikationer fra din telefon</translation>
 <translation id="7232750842195536390">Omdøbningen mislykkedes</translation>
@@ -7087,6 +7088,7 @@
 <translation id="7545466883021407599">Der kunne ikke oprettes forbindelse til serveren. Tjek din netværksforbindelse, og prøv igen. Hvis du stadig har problemer, kan du prøve at genstarte din Chromebook. Fejlkode: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Advarsel: Dine indstillinger for <ph name="PRODUCT_NAME" /> er gemt på et netværksdrev. Dette resulterer muligvis i forsinkelser, nedbrud eller sågar datatab.</translation>
 <translation id="7548856833046333824">James Bond</translation>
+<translation id="7549434883223124329">Vil du skifte sprog på enheden?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> blev ikke downloadet</translation>
 <translation id="7551643184018910560">Fastgør til hylde</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 24ea2b1..37adfa2 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -4524,7 +4524,6 @@
 <translation id="5158206172605340248">Akzent-Menü geschlossen.</translation>
 <translation id="5159094275429367735">Crostini einrichten</translation>
 <translation id="5159419673777902220">Deine Eltern haben die Berechtigungen für Erweiterungen deaktiviert</translation>
-<translation id="5159643365935452998">Automatische Datenlöschung prüfen</translation>
 <translation id="5160634252433617617">Physische Tastatur</translation>
 <translation id="5160857336552977725">Auf deinem <ph name="DEVICE_TYPE" /> anmelden</translation>
 <translation id="5161251470972801814">USB-Geräte von <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index d5688b02..e5e0258 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -1249,6 +1249,7 @@
 <translation id="2104166991923847969">Αυτόματη απενεργοποίηση σημείου πρόσβασης Wi-Fi</translation>
 <translation id="2105809836724866556">Απόκρυψη <ph name="MODULE_TITLE" /></translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Αριθμός τηλεφώνου}other{# αριθμοί τηλεφώνου}}</translation>
+<translation id="2110941575868943054">Επιτρέπεται η αναζήτηση συσκευών Bluetooth</translation>
 <translation id="211144231511833662">Διαγραφή τύπων</translation>
 <translation id="2111670510994270194">Νέα καρτέλα στα δεξιά</translation>
 <translation id="2112554630428445878">Καλώς ορίσατε, <ph name="USERNAME" /></translation>
@@ -3043,6 +3044,7 @@
 <translation id="3756485814916578707">Μετάδοση οθόνης</translation>
 <translation id="3756578970075173856">Ορισμός PIN</translation>
 <translation id="3756795331760037744">Να επιτρέπεται στον Βοηθό Google να χρησιμοποιεί πληροφορίες στην οθόνη του παιδιού <ph name="SUPERVISED_USER_NAME" /> για βοήθεια</translation>
+<translation id="3756806135608816820">Οι ιστότοποι μπορούν να ζητούν να κάνουν αναζήτηση για συσκευές Bluetooth</translation>
 <translation id="3757733214359997190">Δεν βρέθηκαν ιστότοποι</translation>
 <translation id="375841316537350618">Λήψη σεναρίου διακομιστή μεσολάβησης…</translation>
 <translation id="3758842566811519622">Τα cookie ορίστηκαν</translation>
@@ -3813,6 +3815,7 @@
 <translation id="4469762931504673593">Ο ιστότοπος <ph name="ORIGIN" /> μπορεί να επεξεργαστεί τα αρχεία στον φάκελο <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Προτιμήσεις εξωτερικού αποθηκευτικού χώρου</translation>
 <translation id="4471354919263203780">Πραγματοποιείται λήψη των αρχείων αναγνώρισης ομιλίας… <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Μπορείτε να χρησιμοποιήσετε τη γλώσσα του Λογαριασμού Google που προτιμάτε (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Συμβάλλετε στη βελτίωση των λειτουργιών και της απόδοσης του Chrome</translation>
 <translation id="4472575034687746823">Έναρξη</translation>
 <translation id="4474155171896946103">Δημιουργία σελιδοδείκτη για όλες τις καρτέλες...</translation>
@@ -4543,7 +4546,6 @@
 <translation id="5158206172605340248">Το μενού σημαδιών τονισμού παραβλέφθηκε.</translation>
 <translation id="5159094275429367735">Ρύθμιση του Crostini</translation>
 <translation id="5159419673777902220">Ο γονέας σου έχει απενεργοποιήσει τις άδειες επέκτασης</translation>
-<translation id="5159643365935452998">Έλεγχος αυτόματης διαγραφής δεδομένων</translation>
 <translation id="5160634252433617617">Κανονικό πληκτρολόγιο</translation>
 <translation id="5160857336552977725">Συνδεθείτε στη συσκευή σας <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Συσκευές USB από τον πάροχο <ph name="VENDOR_NAME" /></translation>
@@ -5018,6 +5020,7 @@
 <translation id="5600706100022181951">Η λήψη της ενημέρωσης απαιτεί <ph name="UPDATE_SIZE_MB" /> MB δεδομένων κινητής τηλεφωνίας. Θέλετε να συνεχίσετε;</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Δεν επιτρέπεται να συνδέονται σε συσκευές MIDI</translation>
+<translation id="5601833336918638013">Να μην επιτρέπεται στους ιστοτόπους να κάνουν αναζήτηση για συσκευές Bluetooth</translation>
 <translation id="5602765853043467355">Διαγραφή σελιδοδεικτών, ιστορικού, κωδικών πρόσβασης κ.ά. από αυτή τη συσκευή</translation>
 <translation id="5605758115928394442">Στάλθηκε μια ειδοποίηση στο τηλέφωνό σας για την επιβεβαίωση της ταυτότητάς σας.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Αυτή η επέκταση έχει αποκλειστεί}other{Αυτές οι επεκτάσεις έχουν αποκλειστεί}}</translation>
@@ -6476,6 +6479,7 @@
 <translation id="6960507406838246615">Απαιτείται ενημέρωση Linux</translation>
 <translation id="6960648667961844909">Δεν ήταν δυνατή η λήψη αρχείων ομιλίας στα <ph name="LANGUAGE" />. Θα γίνει προσπάθεια για λήψη αργότερα. Η ομιλία αποστέλλεται στην Google για επεξεργασία, μέχρι να ολοκληρωθεί η λήψη.</translation>
 <translation id="696103774840402661">Όλα τα αρχεία και τοπικά δεδομένα για όλους τους χρήστες σε αυτήν τη συσκευή <ph name="DEVICE_TYPE" /> διαγράφηκαν οριστικά.</translation>
+<translation id="6961327401577924850">Οι ιστότοποι συνήθως αναζητούν συσκευές Bluetooth για λειτουργίες όπως η ρύθμιση ή ο συγχρονισμός ενός beacon χαμηλής ενέργειας, ενός συστήματος παρακολούθησης υγείας ή φυσικής κατάστασης ή ενός λαμπτήρα έξυπνου φωτισμού.</translation>
 <translation id="6963872466817251924">Επισήμανση δείκτη κειμένου</translation>
 <translation id="6964390816189577014">Ήρωας</translation>
 <translation id="6964760285928603117">Κατάργηση από την ομάδα</translation>
@@ -6752,6 +6756,7 @@
 <translation id="7227458944009118910">Οι εφαρμογές που παρατίθενται παρακάτω μπορούν επίσης να χειρίζονται συνδέσμους πρωτοκόλλου. Οι άλλες εφαρμογές θα ζητούν άδεια.</translation>
 <translation id="7228056665272655255">Για τη ρύθμιση του δακτυλικού αποτυπώματος, ζητήστε από το παιδί σας να αγγίξει τον αισθητήρα δακτυλικών αποτυπωμάτων στην επάνω δεξιά γωνία του πληκτρολογίου. Τα δεδομένα δακτυλικού αποτυπώματος του παιδιού σας αποθηκεύονται με ασφάλεια και δεν αποστέλλονται ποτέ εκτός της συσκευής <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Κλείδωμα οθόνης και σύνδεση</translation>
+<translation id="7228854227189381547">Να μην γίνει εναλλαγή</translation>
 <translation id="7230222852462421043">&amp;Επαναφορά παραθύρου</translation>
 <translation id="7231260028442989757">Δείτε, παραβλέψτε και απαντήστε στις ειδοποιήσεις του τηλεφώνου σας.</translation>
 <translation id="7232750842195536390">Η μετονομασία απέτυχε</translation>
@@ -7085,6 +7090,7 @@
 <translation id="7545466883021407599">Δεν ήταν δυνατή η σύνδεση με τον διακομιστή. Ελέγξτε τη σύνδεση δικτύου και δοκιμάστε ξανά. Εάν εξακολουθείτε να έχετε προβλήματα, δοκιμάστε να επανεκκινήσετε το Chromebook. Κωδικός σφάλματος: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Προειδοποίηση: οι ρυθμίσεις σας στο <ph name="PRODUCT_NAME" /> αποθηκεύονται σε ένα δίσκο δικτύου. Αυτό μπορεί να προκαλέσει επιβραδύνσεις, σφάλματα ή ακόμα και απώλεια δεδομένων.</translation>
 <translation id="7548856833046333824">Λεμονάδα</translation>
+<translation id="7549434883223124329">Εναλλαγή γλώσσας συσκευής;</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Επιτυχής λήψη του αρχείου <ph name="FILE_NAME" /></translation>
 <translation id="7551643184018910560">Καρφίτσωμα στο ράφι</translation>
@@ -8111,6 +8117,7 @@
 <translation id="8465444703385715657">Η προσθήκη <ph name="PLUGIN_NAME" /> απαιτεί την άδειά σας για να εκτελεστεί</translation>
 <translation id="8466417995783206254">Αυτή η καρτέλα αναπαράγει κάποιο βίντεο στη λειτουργία picture-in-picture.</translation>
 <translation id="8467326454809944210">Επιλογή άλλης γλώσσας</translation>
+<translation id="8468087214092422866">Δεν επιτρέπεται η αναζήτηση συσκευών Bluetooth</translation>
 <translation id="8470513973197838199">Αποθηκευμένοι κωδικοί πρόσβασης για το <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Οι ιστότοποι συνδέονται συνήθως σε συσκευές USB για διάφορες λειτουργίες, όπως η εκτύπωση εγγράφων ή η αποθήκευση σε μια συσκευή αποθήκευσης.</translation>
 <translation id="8471959340398751476">Οι εκπτώσεις είναι απενεργοποιημένες. Μπορείτε να τις ενεργοποιήσετε στο μενού προσαρμογής</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index f35e0e2..12f58f9 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -4546,7 +4546,6 @@
 <translation id="5158206172605340248">Accent marks menu dismissed.</translation>
 <translation id="5159094275429367735">Set up Crostini</translation>
 <translation id="5159419673777902220">Your parent has disabled extension permissions</translation>
-<translation id="5159643365935452998">Review automatic data clearing</translation>
 <translation id="5160634252433617617">Physical keyboard</translation>
 <translation id="5160857336552977725">Sign in to your <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB devices from <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 0a20dfa..2831d73 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -4524,7 +4524,6 @@
 <translation id="5158206172605340248">Se descartó el menú de tildes.</translation>
 <translation id="5159094275429367735">Configurar Crostini</translation>
 <translation id="5159419673777902220">Tu padre o madre inhabilitaron los permisos de extensiones</translation>
-<translation id="5159643365935452998">Revisar el borrado automático de datos</translation>
 <translation id="5160634252433617617">Teclado físico</translation>
 <translation id="5160857336552977725">Accede a tu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="5161251470972801814">Dispositivos USB de <ph name="VENDOR_NAME" /></translation>
@@ -5056,7 +5055,7 @@
 <translation id="5653154844073528838">Tienes <ph name="PRINTER_COUNT" /> impresoras guardadas.</translation>
 <translation id="5655296450510165335">Inscripción del dispositivo</translation>
 <translation id="5656845498778518563">Enviar comentarios a Google</translation>
-<translation id="5657156137487675418">Mostrar todas las cookies</translation>
+<translation id="5657156137487675418">Permitir todas las cookies</translation>
 <translation id="5657667036353380798">La extensión externa requiere que esté instalada la versión <ph name="MINIMUM_CHROME_VERSION" /> o una versión posterior de Chrome.</translation>
 <translation id="5658415415603568799">Para mejorar la seguridad, Smart Lock te pedirá que ingreses tu contraseña después de 20 horas.</translation>
 <translation id="5659593005791499971">Correo</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index d434df62..f765410 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -4527,7 +4527,6 @@
 <translation id="5158206172605340248">Menú de acentos cerrado.</translation>
 <translation id="5159094275429367735">Configurar Crostini</translation>
 <translation id="5159419673777902220">Tus padres han inhabilitado los permisos de extensiones</translation>
-<translation id="5159643365935452998">Revisa el borrado de datos automático</translation>
 <translation id="5160634252433617617">Teclado físico</translation>
 <translation id="5160857336552977725">Inicia sesión en tu <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Dispositivos USB de <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 2c820fbe..fa42ad2 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -4533,7 +4533,6 @@
 <translation id="5158206172605340248">Rõhumärkide menüü suleti.</translation>
 <translation id="5159094275429367735">Crostini seadistamine</translation>
 <translation id="5159419673777902220">Sinu vanem on laienduste load keelanud</translation>
-<translation id="5159643365935452998">Vaadake üle andmete automaatse kustutamise seaded</translation>
 <translation id="5160634252433617617">Füüsiline klaviatuur</translation>
 <translation id="5160857336552977725">Logige sisse seadmesse <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Ettevõtte <ph name="VENDOR_NAME" /> USB-seadmed</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index a816bdd2..3e9af43 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -4527,7 +4527,6 @@
 <translation id="5158206172605340248">Azentu-marken menua baztertu da.</translation>
 <translation id="5159094275429367735">Konfiguratu Crostini</translation>
 <translation id="5159419673777902220">Guraso batek desgaitu egin ditu luzapenaren baimenak</translation>
-<translation id="5159643365935452998">Berrikusi datuak automatikoki garbitzeko aukera</translation>
 <translation id="5160634252433617617">Teklatu fisikoa</translation>
 <translation id="5160857336552977725">Hasi saioa <ph name="DEVICE_TYPE" /> gailuan</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> etxeko USB bidezko gailuak</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 3a88b08..13f023df 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -4540,7 +4540,6 @@
 <translation id="5158206172605340248">منوی نشانه‌های تکیه رد شد.</translation>
 <translation id="5159094275429367735">‏راه‌اندازی Crostini</translation>
 <translation id="5159419673777902220">ولی شما اجازه‌های افزونه را غیرفعال کرده است</translation>
-<translation id="5159643365935452998">مرور پاک کردن خودکار داده</translation>
 <translation id="5160634252433617617">صفحه‌کلید فیزیکی</translation>
 <translation id="5160857336552977725">وارد سیستم <ph name="DEVICE_TYPE" /> خودتان شوید</translation>
 <translation id="5161251470972801814">‏دستگاه‌های USB از <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 273ba533..2077d19 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -4540,7 +4540,6 @@
 <translation id="5158206172605340248">Aksenttimerkkien valikko hylätty.</translation>
 <translation id="5159094275429367735">Ota Crostini käyttöön</translation>
 <translation id="5159419673777902220">Vanhempasi on estänyt laajennukset</translation>
-<translation id="5159643365935452998">Tarkista automaattinen datan poisto</translation>
 <translation id="5160634252433617617">Fyysinen näppäimistö</translation>
 <translation id="5160857336552977725">Kirjaudu sisään <ph name="DEVICE_TYPE" />-laitteeseesi.</translation>
 <translation id="5161251470972801814">USB-laitteet: <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index b9ad929..d023b0f 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -1144,7 +1144,7 @@
 <translation id="2019718679933488176">&amp;Buksan ang Audio sa Bagong Tab</translation>
 <translation id="2020183425253392403">Ipakita ang mga setting ng address ng network</translation>
 <translation id="2020225359413970060">I-scan ang file</translation>
-<translation id="2023167225947895179">Maaaring mahulaan agad ang PIN na ito</translation>
+<translation id="2023167225947895179">Posibleng mahulaan agad ang PIN na ito</translation>
 <translation id="202352106777823113">Masyadong matagal ang pag-download at pinahinto ito ng network.</translation>
 <translation id="2024195579772565064">I-delete ang search engine</translation>
 <translation id="2025632980034333559">Nag-crash ang <ph name="APP_NAME" />. Mag-click sa lobong ito upang i-reload ang extension.</translation>
@@ -4544,7 +4544,6 @@
 <translation id="5158206172605340248">Na-dismiss ang menu ng mga accent mark.</translation>
 <translation id="5159094275429367735">I-set up ang Crostini</translation>
 <translation id="5159419673777902220">Na-disable ng iyong magulang ang mga pahintulot sa extension</translation>
-<translation id="5159643365935452998">Suriin ang awtomatikong pag-clear ng data</translation>
 <translation id="5160634252433617617">Aktwal na keyboard</translation>
 <translation id="5160857336552977725">Mag-sign in sa iyong <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Mga USB device mula sa <ph name="VENDOR_NAME" /></translation>
@@ -6823,7 +6822,7 @@
 <translation id="729583233778673644">Payagan ang AES at RC4 encryption. Magiging mas mapanganib para sa iyo kapag ginamit ang opsyong ito, dahil hindi secure ang mga RC4 cipher.</translation>
 <translation id="7297726121602187087">Dark green</translation>
 <translation id="7298195798382681320">Inirerekomenda</translation>
-<translation id="7299337219131431707">I-enable ang Pagba-browse ng bisita</translation>
+<translation id="7299337219131431707">I-enable ang Pag-browse ng bisita</translation>
 <translation id="7299515639584427954">Baguhin ang default na app para sa mga sinusuportahang link?</translation>
 <translation id="7301470816294041580">Puwede mong itanong ang “Hey Google, anong kanta ito?” o “Hey Google, ano ang nasa screen ko?”</translation>
 <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Maaaring hindi gumana nang maayos ang Chrome dahil sa application na ito.}one{Maaaring hindi gumana nang maayos ang Chrome dahil sa mga application na ito.}other{Maaaring hindi gumana nang maayos ang Chrome dahil sa mga application na ito.}}</translation>
@@ -7739,7 +7738,7 @@
 <translation id="8118515372935001629">Rate ng pag-refresh ng display</translation>
 <translation id="8118860139461251237">Pamahalaan ang iyong mga download</translation>
 <translation id="8119438628456698432">Binubuo ang mga log file...</translation>
-<translation id="811994229154425014">Dobleng puwang para mag-type ng tuldok</translation>
+<translation id="811994229154425014">Dobleng space para mag-type ng tuldok</translation>
 <translation id="8120505434908124087">I-install ang profile ng eSIM</translation>
 <translation id="81238879832906896">Dilaw at puting bulaklak</translation>
 <translation id="8123975449645947908">Mag-scroll pabalik</translation>
@@ -8193,7 +8192,7 @@
 <translation id="8551588720239073785">Mga setting ng petsa at oras</translation>
 <translation id="8551647092888540776">Hindi mabuksan ang <ph name="FILE_NAMES" /> kapag offline</translation>
 <translation id="8552102814346875916">I-save sa listahang "palaging panatilihing aktibo ang mga site na ito"</translation>
-<translation id="8553342806078037065">Pamahalaan ang iba pang mga tao</translation>
+<translation id="8553342806078037065">Pamahalaan ang iba pang tao</translation>
 <translation id="8554899698005018844">Walang wika</translation>
 <translation id="855604308879080518">Payagan ang mga Android app na mag-access ng mga USB device sa Chromebook na ito. Hihiling ng pahintulot sa tuwing magsasaksak ka ng USB device. Hihiling ang mga indibidwal na Android app ng mga karagdagang pahintulot.</translation>
 <translation id="8557022314818157177">Patuloy na pindutin ang iyong security key hanggang ma-capture ang fingerprint mo</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index ea9e595a..4abbe59c 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -1238,6 +1238,7 @@
 <translation id="2104166991923847969">Désactiver automatiquement le point d'accès sans fil</translation>
 <translation id="2105809836724866556">Module <ph name="MODULE_TITLE" /> masqué</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Numéro de téléphone}one{# numéro de téléphone}other{# numéros de téléphone}}</translation>
+<translation id="2110941575868943054">Autorisé à rechercher les appareils Bluetooth</translation>
 <translation id="211144231511833662">Effacer les types</translation>
 <translation id="2111670510994270194">Nouvel onglet à droite</translation>
 <translation id="2112554630428445878">Bienvenue, <ph name="USERNAME" /></translation>
@@ -3030,6 +3031,7 @@
 <translation id="3756485814916578707">Diffusion de l'écran en cours…</translation>
 <translation id="3756578970075173856">Définir un NIP</translation>
 <translation id="3756795331760037744">Autoriser l'Assistant Google à utiliser les renseignements sur l'écran de <ph name="SUPERVISED_USER_NAME" /> pour l'aider</translation>
+<translation id="3756806135608816820">Les sites peuvent demander à rechercher les appareils Bluetooth</translation>
 <translation id="3757733214359997190">Aucun site trouvé</translation>
 <translation id="375841316537350618">Téléchargement du script de mandataire en cours...</translation>
 <translation id="3758842566811519622">Témoins définis</translation>
@@ -3800,6 +3802,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> peut modifier les fichiers dans le dossier <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Préférences de stockage externe</translation>
 <translation id="4471354919263203780">Téléchargement des fichiers de reconnaissance vocale en cours… <ph name="PERCENT" /> %</translation>
+<translation id="4472298120638043495">Vous pouvez utiliser la langue préférée de votre compte Google (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Nous aider à améliorer les fonctionnalités et les performances de Chrome</translation>
 <translation id="4472575034687746823">Premiers pas</translation>
 <translation id="4474155171896946103">Ajouter tous les onglets aux favoris...</translation>
@@ -4529,7 +4532,6 @@
 <translation id="5158206172605340248">Menu des accents fermé.</translation>
 <translation id="5159094275429367735">Configurer Crostini</translation>
 <translation id="5159419673777902220">Ton parent a désactivé les autorisations pour les extensions</translation>
-<translation id="5159643365935452998">Vérifier l'effacement automatique des données</translation>
 <translation id="5160634252433617617">Clavier physique</translation>
 <translation id="5160857336552977725">Connexion à votre <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Appareils USB par <ph name="VENDOR_NAME" /></translation>
@@ -5004,6 +5006,7 @@
 <translation id="5600706100022181951">La mise à jour sera téléchargée en utilisant <ph name="UPDATE_SIZE_MB" /> Mo de données cellulaires. Voulez-vous continuer?</translation>
 <translation id="5601503069213153581">NIP</translation>
 <translation id="5601823921345337195">Non autorisés à se connecter à des appareils MIDI</translation>
+<translation id="5601833336918638013">Ne pas autoriser les sites à rechercher les appareils Bluetooth</translation>
 <translation id="5602765853043467355">Effacer les favoris, l'historique, les mots de passe et autres de cet appareil</translation>
 <translation id="5605758115928394442">Nous avons envoyé une notification à votre téléphone pour confirmer votre identité.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Cette extension est bloquée}one{Cette extension est bloquée}other{Ces extensions sont bloquées}}</translation>
@@ -6463,6 +6466,7 @@
 <translation id="6960507406838246615">La mise à jour de Linux est requise</translation>
 <translation id="6960648667961844909">Impossible de télécharger les fichiers vocaux en <ph name="LANGUAGE" />. Une tentative de téléchargement aura lieu ultérieurement. Le fichier vocal est envoyé à Google aux fins de traitement jusqu'à la fin du téléchargement.</translation>
 <translation id="696103774840402661">Tous les fichiers et toutes les données locales associés à tous les utilisateurs sur cet appareil <ph name="DEVICE_TYPE" /> ont été supprimés définitivement.</translation>
+<translation id="6961327401577924850">Les sites recherchent généralement les appareils Bluetooth pour proposer des fonctionnalités comme la configuration ou la synchronisation d'une balise à faible consommation d'énergie, d'un moniteur de santé ou d'activité physique, ou d'une ampoule intelligente</translation>
 <translation id="6963872466817251924">Surligneur du curseur de texte</translation>
 <translation id="6964390816189577014">Héros</translation>
 <translation id="6964760285928603117">Supprimer du groupe</translation>
@@ -6739,6 +6743,7 @@
 <translation id="7227458944009118910">Les applications énumérées ci-dessous peuvent également prendre en charge les liens des protocoles. Les autres applications demanderont l'autorisation pour le faire.</translation>
 <translation id="7228056665272655255">Pour configurer l'empreinte digitale, demandez à votre enfant de toucher le capteur d'empreintes digitales dans le coin supérieur droit du clavier. Les données liées à l'empreinte digitale de votre enfant sont stockées de façon sécurisée et ne quittent jamais ce <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Verrouillage de l'écran et connexion</translation>
+<translation id="7228854227189381547">Ne pas changer</translation>
 <translation id="7230222852462421043">&amp;Restaurer la fenêtre</translation>
 <translation id="7231260028442989757">Affichez et ignorez les notifications de votre téléphone, et répondez-y</translation>
 <translation id="7232750842195536390">Échec du changement de nom</translation>
@@ -7072,6 +7077,7 @@
 <translation id="7545466883021407599">Impossible de se connecter au serveur. Vérifiez votre connexion réseau et réessayez. Si vous rencontrez toujours des problèmes, essayez de redémarrer votre Chromebook. Code d'erreur : <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Avertissement : vos paramètres de <ph name="PRODUCT_NAME" /> sont enregistrés sur un lecteur réseau, ce qui peut entraîner des ralentissements, des plantages et même la perte de données.</translation>
 <translation id="7548856833046333824">Martini</translation>
+<translation id="7549434883223124329">Changer la langue de l'appareil?</translation>
 <translation id="7550830279652415241">favoris_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Échec du téléchargement de <ph name="FILE_NAME" /></translation>
 <translation id="7551643184018910560">Épingler sur l'étagère</translation>
@@ -8097,6 +8103,7 @@
 <translation id="8465444703385715657">Le plugiciel <ph name="PLUGIN_NAME" /> a besoin de votre autorisation pour s'exécuter</translation>
 <translation id="8466417995783206254">Cet onglet fait jouer une vidéo en mode d'incrustation d'image.</translation>
 <translation id="8467326454809944210">Choisir une autre langue</translation>
+<translation id="8468087214092422866">Non autorisé à rechercher les appareils Bluetooth</translation>
 <translation id="8470513973197838199">Mots de passe enregistrés pour <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Les sites se connectent généralement aux appareils USB pour proposer des fonctionnalités comme l'impression de document ou l'enregistrement sur un périphérique de stockage</translation>
 <translation id="8471959340398751476">Les rabais sont désactivés. Vous pouvez les activer dans le menu de personnalisation</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index b4cbcc9..38daf5e7 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -3799,6 +3799,7 @@
 <translation id="4469762931504673593">Le site <ph name="ORIGIN" /> peut modifier les fichiers du dossier <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Préférences de l'espace de stockage externe</translation>
 <translation id="4471354919263203780">Téléchargement des fichiers de reconnaissance vocale… <ph name="PERCENT" /> %</translation>
+<translation id="4472298120638043495">Vous pouvez utiliser la langue définie comme préférée dans votre compte Google (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Contribuer à l'amélioration des fonctionnalités et des performances de Chrome</translation>
 <translation id="4472575034687746823">Premiers pas</translation>
 <translation id="4474155171896946103">Ajouter tous les onglets aux favoris...</translation>
@@ -4528,7 +4529,6 @@
 <translation id="5158206172605340248">Menu d'accentuation fermé.</translation>
 <translation id="5159094275429367735">Configurer Crostini</translation>
 <translation id="5159419673777902220">Tes parents ont bloqué les autorisations liées aux extensions</translation>
-<translation id="5159643365935452998">Examiner la suppression automatique des données</translation>
 <translation id="5160634252433617617">Clavier physique</translation>
 <translation id="5160857336552977725">Connectez-vous à votre <ph name="DEVICE_TYPE" />.</translation>
 <translation id="5161251470972801814">Appareils USB <ph name="VENDOR_NAME" /></translation>
@@ -6739,6 +6739,7 @@
 <translation id="7227458944009118910">Les applis listées ci-dessous peuvent aussi gérer les liens de protocole. D'autres demanderont l'autorisation.</translation>
 <translation id="7228056665272655255">Pour configurer l'empreinte de votre enfant, demandez-lui d'appuyer sur le lecteur d'empreinte digitale en haut à droite du clavier. Les données liées à son empreinte sont stockées de façon sécurisée et ne quittent jamais ce <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Verrouillage de l'écran et connexion</translation>
+<translation id="7228854227189381547">Ne pas changer</translation>
 <translation id="7230222852462421043">&amp;Restaurer la fenêtre</translation>
 <translation id="7231260028442989757">Affichez les notifications de votre téléphone, fermez-les et répondez-y</translation>
 <translation id="7232750842195536390">Échec du changement de nom</translation>
@@ -7072,6 +7073,7 @@
 <translation id="7545466883021407599">Impossible de se connecter au serveur. Vérifiez votre connexion réseau et réessayez. Si le problème persiste, essayez de redémarrer votre Chromebook. Code d'erreur : <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Avertissement : Vos paramètres <ph name="PRODUCT_NAME" /> sont enregistrés sur un lecteur réseau, ce qui peut entraîner des ralentissements, des plantages, voire la perte de données.</translation>
 <translation id="7548856833046333824">Limonade</translation>
+<translation id="7549434883223124329">Changer la langue de l'appareil ?</translation>
 <translation id="7550830279652415241">favoris_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Échec du téléchargement de "<ph name="FILE_NAME" />".</translation>
 <translation id="7551643184018910560">Épingler sur l'étagère</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index 7868d55..d0d5a71 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -4528,7 +4528,6 @@
 <translation id="5158206172605340248">Pechouse o menú de acentos gráficos.</translation>
 <translation id="5159094275429367735">Configurar Crostini</translation>
 <translation id="5159419673777902220">Teu pai ou túa nai desactivou os permisos para as extensións</translation>
-<translation id="5159643365935452998">Revisar o borrado automático de datos</translation>
 <translation id="5160634252433617617">Teclado físico</translation>
 <translation id="5160857336552977725">Inicia sesión no teu <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Dispositivos USB de <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index b94187d6..4221616 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -1234,6 +1234,7 @@
 <translation id="2104166991923847969">હૉટસ્પૉટ ઑટોમૅટિક રીતે બંધ કરો</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> છુપાવેલા છે</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{ફોન નંબર}one{# ફોન નંબર}other{# ફોન નંબર}}</translation>
+<translation id="2110941575868943054">બ્લૂટૂથ ડિવાઇસ શોધવા માટે મંજૂરી છે</translation>
 <translation id="211144231511833662">ડિવાઇસના પ્રકારો સાફ કરો</translation>
 <translation id="2111670510994270194">જમણી બાજુએ નવું ટૅબ</translation>
 <translation id="2112554630428445878">સ્વાગત છે, <ph name="USERNAME" /></translation>
@@ -3026,6 +3027,7 @@
 <translation id="3756485814916578707">સ્ક્રીનને કાસ્ટ કરી રહ્યાં છીએ</translation>
 <translation id="3756578970075173856">પિન સેટ કરો</translation>
 <translation id="3756795331760037744">સહાય કરવા માટે Google Assistantને <ph name="SUPERVISED_USER_NAME" />ની સ્ક્રીન પરની માહિતીનો ઉપયોગ કરવાની મંજૂરી આપો</translation>
+<translation id="3756806135608816820">બ્લૂટૂથ ડિવાઇસ શોધવા માટે સાઇટ પૂછી શકશે</translation>
 <translation id="3757733214359997190">કોઈ સાઇટ મળી નથી</translation>
 <translation id="375841316537350618">પ્રૉક્સી સ્ક્રિપ્ટ ડાઉનલોડ થાય છે...</translation>
 <translation id="3758842566811519622">કુકી સેટ કરી</translation>
@@ -3796,6 +3798,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> <ph name="FOLDERNAME" />માં ફાઇલોમાં ફેરફાર કરી શકતા નથી</translation>
 <translation id="4470957202018033307">બાહ્ય સ્ટોરેજ માટેની પસંદગીઓ</translation>
 <translation id="4471354919263203780">વાણી ઓળખની ફાઇલો ડાઉનલોડ કરી રહ્યાં છીએ… <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">તમે તમારી પસંદગીની Google એકાઉન્ટની ભાષા (<ph name="NEW_LOCALE_FROM_GAIA" />)નો ઉપયોગ કરી શકો છો</translation>
 <translation id="447252321002412580">Chromeની સુવિધાઓ અને પ્રદર્શનને સુધારવામાં સહાય કરો</translation>
 <translation id="4472575034687746823">શરૂ કરો</translation>
 <translation id="4474155171896946103">બધા ટૅબ્સ બુકમાર્ક  કરો...</translation>
@@ -4525,7 +4528,6 @@
 <translation id="5158206172605340248">ઉચ્ચારણ ચિહ્નોનું મેનૂ છોડી દીધું.</translation>
 <translation id="5159094275429367735">Crostiniનું સેટઅપ કરો</translation>
 <translation id="5159419673777902220">તમારા માતાપિતાએ એક્સ્ટેન્શનની પરવાનગીઓ બંધ કરી દીધી છે</translation>
-<translation id="5159643365935452998">ડેટા ઑટોમૅટિક રીતે સાફ કરવાની પ્રક્રિયાનો રિવ્યૂ કરો</translation>
 <translation id="5160634252433617617">વાસ્તવિક કીબોર્ડ</translation>
 <translation id="5160857336552977725">તમારા <ph name="DEVICE_TYPE" /> પર સાઇન ઇન કરો</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" />ના USB ડિવાઇસ</translation>
@@ -5000,6 +5002,7 @@
 <translation id="5600706100022181951">અપડેટ ડાઉનલોડ કરવામાં <ph name="UPDATE_SIZE_MB" /> MB મોબાઇલ ડેટા વપરાશે. શું તમે ચાલુ રાખવા માગો છો?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI ડિવાઇસ સાથે કનેક્ટ કરવાની મંજૂરી આપેલી નથી</translation>
+<translation id="5601833336918638013">બ્લૂટૂથ ડિવાઇસ શોધવા માટે સાઇટને મંજૂરી આપશો નહીં</translation>
 <translation id="5602765853043467355">આ ડિવાઇસમાંથી બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને વધુ સાફ કરો</translation>
 <translation id="5605758115928394442">તમે જ છો તે કન્ફર્મ કરવા માટે તમારા ફોન પર નોટિફિકેશન મોકલવામાં આવ્યું હતું.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યું છે}one{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યું છે}other{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યા છે}}</translation>
@@ -6461,6 +6464,7 @@
 <translation id="6960507406838246615">Linux અપડેટ જરૂરી છે</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> સ્પીચ ફાઇલો ડાઉનલોડ કરી શકાઈ નથી. થોડા સમય પછી ડાઉનલોડ કરવાનો પ્રયાસ કરવામાં આવશે. ડાઉનલોડ પૂર્ણ થાય ત્યાં સુધી, Googleને પ્રક્રિયા કરવા માટે સ્પીચ મોકલવામાં આવે છે.</translation>
 <translation id="696103774840402661">આ <ph name="DEVICE_TYPE" /> પરના બધા વપરાશકર્તાઓ માટેની તમામ ફાઇલો અને સ્થાનિક ડેટા કાયમ માટે ડિલીટ કરવામાં આવ્યો છે.</translation>
+<translation id="6961327401577924850">ઊર્જાનો ઓછા વપરાશવાળું કોઈ બીકન, કોઈ સ્વાસ્થ્ય કે ફિટનેસ ટ્રૅકર અથવા કોઈ સ્માર્ટ લાઇટ બલ્બનું સેટઅપ કરવા કે તેને સિંક કરવા જેવી સુવિધાઓ માટે, સાઇટ સામાન્ય રીતે બ્લૂટૂથ ડિવાઇસ શોધે છે</translation>
 <translation id="6963872466817251924">ટેક્સ્ટ કર્સર હાઇલાઇટર</translation>
 <translation id="6964390816189577014">હીરો</translation>
 <translation id="6964760285928603117">ગ્રૂપમાંથી દૂર કરો</translation>
@@ -6737,6 +6741,7 @@
 <translation id="7227458944009118910">અહીં નીચે સૂચિબદ્ધ કરેલી ઍપ પ્રોટોકૉલ લિંક પણ હૅન્ડલ કરી શકે છે. અન્ય ઍપ પરવાનગી માટે પૂછશે.</translation>
 <translation id="7228056665272655255">ફિંગરપ્રિન્ટનું સેટઅપ કરવા માટે, તમારા બાળકને કીબોર્ડના સૌથી ઉપરના જમણા ખૂણાના ફિંગરપ્રિન્ટ સેન્સરને ટચ કરવાનું કહો. તમારા બાળકની ફિંગરપ્રિન્ટનો ડેટા સુરક્ષિત રીતે સ્ટોર કરવામાં આવે છે અને તે હંમેશાં આ <ph name="DEVICE_TYPE" />માં જ રહે છે.</translation>
 <translation id="7228523857728654909">સ્ક્રીન લૉક અને સાઇન ઇન</translation>
+<translation id="7228854227189381547">સ્વિચ કરશો નહીં</translation>
 <translation id="7230222852462421043">&amp;વિન્ડો રિસ્ટોર કરો</translation>
 <translation id="7231260028442989757">તમારા ફોનના નોટિફિકેશન જુઓ, છોડી દો અને તેમનો જવાબ આપો</translation>
 <translation id="7232750842195536390">નામ બદલવામાં નિષ્ફળ થયાં</translation>
@@ -7070,6 +7075,7 @@
 <translation id="7545466883021407599">સર્વર સાથે કનેક્ટ કરી શકાયું નથી. તમારું નેટવર્ક કનેક્શન ચેક કરો અને ફરી પ્રયાસ કરો. જો તમને હજી પણ મુશ્કેલી આવી રહી હોય, તો તમારી Chromebookને ફરી શરૂ કરવાનો પ્રયાસ કરો. ભૂલનો કોડ: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">ચેતવણી: <ph name="PRODUCT_NAME" /> સેટિંગ નેટવર્ક ડ્રાઇવ પર સ્ટોર કર્યું છે. આનું પરિણામ ધીમી ગતિ, ક્રૅશ અથવા ડેટાનું નુકસાન પણ હોઈ શકે છે.</translation>
 <translation id="7548856833046333824">લેમોનેડ</translation>
+<translation id="7549434883223124329">ડિવાઇસની ભાષા સ્વિચ કરીએ?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> ડાઉનલોડ અસફળ થયું</translation>
 <translation id="7551643184018910560">શેલ્ફ પર પિન કરો</translation>
@@ -8090,6 +8096,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> ને ચલાવવા માટે તમારી પરવાનગીની જરૂર છે</translation>
 <translation id="8466417995783206254">આ ટૅબમાં ચિત્રમાં ચિત્ર મોડમાં વીડિઓ ચાલી રહ્યો છે.</translation>
 <translation id="8467326454809944210">બીજી ભાષા પસંદ કરો</translation>
+<translation id="8468087214092422866">બ્લૂટૂથ ડિવાઇસ શોધવા માટે કોઈ મંજૂરી નથી</translation>
 <translation id="8470513973197838199"><ph name="ORIGIN" /> માટે સાચવેલા પાસવર્ડ</translation>
 <translation id="8471525937465764768">દસ્તાવેજ પ્રિન્ટ કરવા જેવી અથવા સ્ટોરેજ ડિવાઇસમાં સાચવવા જેવી સુવિધાઓ માટે, સાઇટ સામાન્ય રીતે USB ડિવાઇસ સાથે કનેક્ટ કરે છે</translation>
 <translation id="8471959340398751476">છૂટ મેળવવાની સુવિધા બંધ છે. તમે તેને 'કસ્ટમાઇઝ કરો' મેનૂમાં જઈને ચાલુ કરી શકો છો</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 058aab7b..a087b34 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -4533,7 +4533,6 @@
 <translation id="5158206172605340248">उच्चारण चिह्न वाला मेन्यू खारिज किया गया.</translation>
 <translation id="5159094275429367735">Crostini सेट अप करें</translation>
 <translation id="5159419673777902220">आपके पैरंट ने एक्सटेंशन की अनुमतियां बंद कर दी हैं</translation>
-<translation id="5159643365935452998">अपने-आप डेटा मिटाने की सुविधा की समीक्षा करें</translation>
 <translation id="5160634252433617617">सामान्य कीबोर्ड के विकल्प</translation>
 <translation id="5160857336552977725">अपने <ph name="DEVICE_TYPE" /> में साइन इन करें</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> के यूएसबी डिवाइस</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index ec0162c..130a087 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -1239,6 +1239,7 @@
 <translation id="2104166991923847969">Automatski isključi žarišnu točku</translation>
 <translation id="2105809836724866556">Skriveno: <ph name="MODULE_TITLE" /></translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Telefonski broj}one{# telefonski broj}few{# telefonska broja}other{# telefonskih brojeva}}</translation>
+<translation id="2110941575868943054">Dopušteno je traženje Bluetooth uređaja</translation>
 <translation id="211144231511833662">Izbriši vrste</translation>
 <translation id="2111670510994270194">Nova kartica s desne strane</translation>
 <translation id="2112554630428445878">Dobro došli, <ph name="USERNAME" /></translation>
@@ -3031,6 +3032,7 @@
 <translation id="3756485814916578707">Emitiranje zaslona</translation>
 <translation id="3756578970075173856">Postavljanje PIN-a</translation>
 <translation id="3756795331760037744">Dopustite Google asistentu da koristi informacije na zaslonu kojim se koristi <ph name="SUPERVISED_USER_NAME" /> kako bi pomogao</translation>
+<translation id="3756806135608816820">Web-lokacije mogu tražiti dopuštenje traženja Bluetooth uređaja</translation>
 <translation id="3757733214359997190">Nijedna web-lokacija nije pronađena</translation>
 <translation id="375841316537350618">Preuzimanje proxy skripte...</translation>
 <translation id="3758842566811519622">Kolačići su postavljeni</translation>
@@ -3801,6 +3803,7 @@
 <translation id="4469762931504673593">Web-lokacija <ph name="ORIGIN" /> može uređivati datoteke u mapi <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Postavke vanjske pohrane</translation>
 <translation id="4471354919263203780">Preuzimaju se datoteke za prepoznavanje govora... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Možete upotrijebiti željeni jezik Google računa (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Pomozite poboljšati Chromeove značajke i izvedbu</translation>
 <translation id="4472575034687746823">Početak korištenja</translation>
 <translation id="4474155171896946103">Označi sve kartice...</translation>
@@ -4530,7 +4533,6 @@
 <translation id="5158206172605340248">Odbačen je izbornik naglasnih oznaka.</translation>
 <translation id="5159094275429367735">Postavljanje Crostinija</translation>
 <translation id="5159419673777902220">Tvoj je roditelj onemogućio dopuštenja za proširenja</translation>
-<translation id="5159643365935452998">Pregled automatskog brisanja podataka</translation>
 <translation id="5160634252433617617">Fizička tipkovnica</translation>
 <translation id="5160857336552977725">Prijavite se na uređaj <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB uređaji dobavljača <ph name="VENDOR_NAME" /></translation>
@@ -5005,6 +5007,7 @@
 <translation id="5600706100022181951">Za preuzimanje ažuriranja iskoristit će se <ph name="UPDATE_SIZE_MB" /> MB mobilnih podataka. Želite li nastaviti?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nije dopušteno povezivanje s MIDI uređajima</translation>
+<translation id="5601833336918638013">Ne dopuštaj web-lokacijama traženje Bluetooth uređaja</translation>
 <translation id="5602765853043467355">Izbriši oznake, povijest, zaporke i druge podatke s ovog uređaja</translation>
 <translation id="5605758115928394442">Poslali smo obavijest na vaš telefon kako bismo potvrdili da ste to vi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{To je proširenje blokirano}one{Ta su proširenja blokirana}few{Ta su proširenja blokirana}other{Ta su proširenja blokirana}}</translation>
@@ -6463,6 +6466,7 @@
 <translation id="6960507406838246615">Potrebno je ažurirati Linux</translation>
 <translation id="6960648667961844909">Nije uspjelo preuzimanje govornih datoteka za <ph name="LANGUAGE" />. Kasnije ćemo pokušati preuzimanje. Govor se šalje Googleu radi obrade dok se preuzimanje ne dovrši.</translation>
 <translation id="696103774840402661">Sve datoteke i svi lokalni podaci za sve korisnike na ovom uređaju <ph name="DEVICE_TYPE" /> trajno su izbrisani.</translation>
+<translation id="6961327401577924850">Web-lokacije obično traže Bluetooth uređaje radi značajki poput postavljanja ili sinkroniziranja niskoenergetskog lokatora, uređaja za praćenje zdravlja ili fitnessa ili male žarulje</translation>
 <translation id="6963872466817251924">Alat za isticanje pokazivača teksta</translation>
 <translation id="6964390816189577014">Junak</translation>
 <translation id="6964760285928603117">Ukloni iz grupe</translation>
@@ -6739,6 +6743,7 @@
 <translation id="7227458944009118910">Aplikacije navedene u nastavku mogu obrađivati i veze protokola. Ostale će aplikacije tražiti dopuštenje.</translation>
 <translation id="7228056665272655255">Da biste postavili otisak prsta, neka vaše dijete dodirne senzor otiska prsta u gornjem desnom kutu tipkovnice. Podaci o otisku prsta vašeg djeteta sigurno se pohranjuju i nikamo se ne šalju s uređaja <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Zaključavanje zaslona i prijava</translation>
+<translation id="7228854227189381547">Ne prebacuj</translation>
 <translation id="7230222852462421043">&amp;Vrati prozor</translation>
 <translation id="7231260028442989757">Pregledajte obavijesti telefona, odgovorite na njih ili ih odbacite.</translation>
 <translation id="7232750842195536390">Preimenovanje nije uspjelo</translation>
@@ -7072,6 +7077,7 @@
 <translation id="7545466883021407599">Povezivanje s poslužiteljem nije uspjelo. Provjerite mrežnu vezu i pokušajte ponovo. Ako i dalje imate poteškoća, pokušajte ponovo pokrenuti Chromebook. Kôd pogreške: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Upozorenje: vaše postavke za uslugu <ph name="PRODUCT_NAME" /> pohranjene su na mrežnom disku. To može uzrokovati sporiji rad, padove pa čak i gubitak podataka.</translation>
 <translation id="7548856833046333824">Limunada</translation>
+<translation id="7549434883223124329">Promijeniti jezik uređaja?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Datoteka <ph name="FILE_NAME" /> nije preuzeta</translation>
 <translation id="7551643184018910560">Prikvači na policu</translation>
@@ -8098,6 +8104,7 @@
 <translation id="8465444703385715657">Dodatak <ph name="PLUGIN_NAME" /> treba vaše dopuštenje da bi se pokrenuo</translation>
 <translation id="8466417995783206254">Ova kartica prikazuje videozapis u načinu slike u slici.</translation>
 <translation id="8467326454809944210">Odabir drugog jezika</translation>
+<translation id="8468087214092422866">Traženje Bluetooth uređaja nije dopušteno</translation>
 <translation id="8470513973197838199">Spremljene zaporke za <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Web-lokacije se obično povezuju s USB uređajima radi značajki poput ispisa dokumenta ili njihovog spremanja na uređaj za pohranu</translation>
 <translation id="8471959340398751476">Traženje popusta je isključeno. Možete ga uključiti putem izbornika za prilagodbu</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 3a737322..c8f277c 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -1248,6 +1248,7 @@
 <translation id="2104166991923847969">Hotspot automatikus kikapcsolása</translation>
 <translation id="2105809836724866556">A következők el vannak rejtve: <ph name="MODULE_TITLE" /></translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Telefonszám}other{# telefonszám}}</translation>
+<translation id="2110941575868943054">Kereshetnek Bluetooth-eszközöket</translation>
 <translation id="211144231511833662">Típusok törlése</translation>
 <translation id="2111670510994270194">Új lap jobbra</translation>
 <translation id="2112554630428445878">Üdvözöljük, <ph name="USERNAME" />!</translation>
@@ -3042,6 +3043,7 @@
 <translation id="3756485814916578707">Képernyőtartalom átküldése</translation>
 <translation id="3756578970075173856">PIN-kód beállítása</translation>
 <translation id="3756795331760037744"><ph name="SUPERVISED_USER_NAME" /> eszközének a képernyőjén található információk használatának engedélyezése a Google Segéd számára segítségnyújtás céljából</translation>
+<translation id="3756806135608816820">A webhelyek engedélyt kérhetnek Bluetooth-eszközök keresésére</translation>
 <translation id="3757733214359997190">A program nem talált egy webhelyet sem</translation>
 <translation id="375841316537350618">Proxyszkript letöltése...</translation>
 <translation id="3758842566811519622">Cookie-k beállítva</translation>
@@ -4541,7 +4543,6 @@
 <translation id="5158206172605340248">Ékezetmenü bezárva.</translation>
 <translation id="5159094275429367735">A Crostini beállítása</translation>
 <translation id="5159419673777902220">Szülőd letiltotta a bővítményhez tartozó engedélyeket</translation>
-<translation id="5159643365935452998">Automatikus adattörlés ellenőrzése</translation>
 <translation id="5160634252433617617">Fizikai billentyűzet</translation>
 <translation id="5160857336552977725">Jelentkezzen be <ph name="DEVICE_TYPE" /> eszközén</translation>
 <translation id="5161251470972801814">USB-eszközök a következő gyártótól: <ph name="VENDOR_NAME" /></translation>
@@ -5017,6 +5018,7 @@
 <translation id="5600706100022181951">A frissítés letöltése <ph name="UPDATE_SIZE_MB" /> MB mobiladat-forgalmat igényel. Szeretné folytatni?</translation>
 <translation id="5601503069213153581">PIN-kód</translation>
 <translation id="5601823921345337195">Nem csatlakozhatnak a MIDI-eszközökhöz</translation>
+<translation id="5601833336918638013">A webhelyek nem kereshetnek Bluetooth-eszközöket</translation>
 <translation id="5602765853043467355">Könyvjelzők, előzmények, jelszavak és egyebek törlése erről az eszközről</translation>
 <translation id="5605758115928394442">A rendszer értesítést küldött az Ön telefonjára, hogy segítségével igazolhassa személyazonosságát.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ez a bővítmény le van tiltva}other{Ezek a bővítmények le vannak tiltva}}</translation>
@@ -6475,6 +6477,7 @@
 <translation id="6960507406838246615">Linux-frissítés szükséges</translation>
 <translation id="6960648667961844909">Nem sikerült letölteni a(z) <ph name="LANGUAGE" /> nyelvű beszédfájlokat. A letöltést később kísérli meg a rendszer. A letöltés befejeződéséig a rendszer elküldi a beszédet a Google-nak feldolgozásra.</translation>
 <translation id="696103774840402661">Az összes felhasználó összes fájlja és helyi adata véglegesen törlődött erről az eszközről (<ph name="DEVICE_TYPE" />).</translation>
+<translation id="6961327401577924850">A webhelyek általában olyan funkciók használatához keresnek Bluetooth-eszközöket, mint például a kevés energiát fogyasztó jelzők, az egészségügyi vagy sportsegédeszközök, illetve az okosizzók beállítása és szinkronizálása.</translation>
 <translation id="6963872466817251924">Szövegkurzor-kiemelő</translation>
 <translation id="6964390816189577014">Hős</translation>
 <translation id="6964760285928603117">Eltávolítás a csoportból</translation>
@@ -8110,6 +8113,7 @@
 <translation id="8465444703385715657">A(z) <ph name="PLUGIN_NAME" /> futtatásához az Ön engedélyére van szükség</translation>
 <translation id="8466417995783206254">A videó lejátszása a lapon kép a képben módban történik.</translation>
 <translation id="8467326454809944210">Másik nyelv választása</translation>
+<translation id="8468087214092422866">Nem kereshetnek Bluetooth-eszközöket</translation>
 <translation id="8470513973197838199">A(z) <ph name="ORIGIN" /> mentett jelszavai</translation>
 <translation id="8471525937465764768">A webhelyek általában bizonyos funkciók (például dokumentumok nyomtatásának vagy tárolóeszközön való mentésének) végrehajtása érdekében csatlakoznak USB-eszközökhöz</translation>
 <translation id="8471959340398751476">A kedvezmények keresése ki van kapcsolva. Bekapcsolhatja a személyre szabási menüben.</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index fa82c4a2..8935b967 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -3800,6 +3800,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> կայքը կարող է փոփոխել <ph name="FOLDERNAME" /> պանակի ֆայլերը</translation>
 <translation id="4470957202018033307">Արտաքին հիշողության կարգավորումներ</translation>
 <translation id="4471354919263203780">Խոսքի ճանաչման ֆայլերը ներբեռնվում են… <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Կարող եք օգտագործել Google հաշվի ձեր նախընտրած լեզուն (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Օգնել ավել լավը դարձնել Chrome-ի գործառույթներն ու աշխատանքը</translation>
 <translation id="4472575034687746823">Սկսել</translation>
 <translation id="4474155171896946103">Էջանշել բոլոր ներդիրները…</translation>
@@ -4530,7 +4531,6 @@
 <translation id="5158206172605340248">Շեշտի նշանների ընտրացանկը փակվեց։</translation>
 <translation id="5159094275429367735">Կարգավորել Crostini-ն</translation>
 <translation id="5159419673777902220">Ձեր ծնողն անջատել է ընդլայնումների թույլտվությունները</translation>
-<translation id="5159643365935452998">Դիտեք տվյալների ավտոմատ ջնջման պարամետրերը</translation>
 <translation id="5160634252433617617">Ֆիզիկական ստեղնաշար</translation>
 <translation id="5160857336552977725">Մուտք գործեք ձեր <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB սարքեր <ph name="VENDOR_NAME" />-ից</translation>
@@ -6739,6 +6739,7 @@
 <translation id="7227458944009118910">Ստորև նշված հավելվածները կարող են մշակել նաև հաղորդակարգի հղումներ։ Մյուս հավելվածները կխնդրեն թույլտվություն։</translation>
 <translation id="7228056665272655255">Մատնահետքը կարգավորելու համար ձեր երեխան պետք է հպի մատնահետքերի սկաներին, որը ստեղնաշարի վերևի աջ անկյունում է։ Երեխայի մատնահետքի տվյալները ապահով պահվում են այս <ph name="DEVICE_TYPE" /> սարքում և երբեք չեն փոխանցվում այլ անձանց։</translation>
 <translation id="7228523857728654909">Էկրանի կողպում և մուտք</translation>
+<translation id="7228854227189381547">Չփոխել</translation>
 <translation id="7230222852462421043">&amp;Վերականգնել պատուհանը</translation>
 <translation id="7231260028442989757">Թույլ է տալիս դիտել և անտեսել հեռախոսի ծանուցումները, ինչպես նաև պատասխանել դրանց։</translation>
 <translation id="7232750842195536390">Չհաջողվեց վերանվանել</translation>
@@ -7072,6 +7073,7 @@
 <translation id="7545466883021407599">Չհաջողվեց միանալ սերվերին։ Ստուգեք կապը և նորից փորձեք։ Եթե չի հաջողվում վերացնել խնդիրը, փորձեք վերագործարկել Chromebook-ը։ Սխալի կոդը՝ <ph name="ERROR_CODE" />։</translation>
 <translation id="7547317915858803630">Ուշադրություն. Ձեր <ph name="PRODUCT_NAME" />-ի կարգավորումները պահվել են ցանցի հիշասարքում: Սա կարող է դանդաղեցնել աշխատանքը, խափանումներ կամ, նույնիսկ տվյալների կորուստ առաջացնել:</translation>
 <translation id="7548856833046333824">Լիմոնադ</translation>
+<translation id="7549434883223124329">Փոխե՞լ սարքի լեզուն</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> ֆայլի ներբեռնումը ձախողվեց</translation>
 <translation id="7551643184018910560">Ամրացնել դարակում</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index b8fbb1df..15e20008 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -4544,7 +4544,6 @@
 <translation id="5158206172605340248">Menu tanda aksen ditutup.</translation>
 <translation id="5159094275429367735">Siapkan Crostini</translation>
 <translation id="5159419673777902220">Orang tuamu telah menonaktifkan izin ekstensi</translation>
-<translation id="5159643365935452998">Tinjau penghapusan data otomatis</translation>
 <translation id="5160634252433617617">Keyboard fisik</translation>
 <translation id="5160857336552977725">Login ke <ph name="DEVICE_TYPE" /> Anda</translation>
 <translation id="5161251470972801814">Perangkat USB dari <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 46762ab..ffff723 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -4544,7 +4544,6 @@
 <translation id="5158206172605340248">Valmynd áherslumerkja lokað.</translation>
 <translation id="5159094275429367735">Setja upp Crostini</translation>
 <translation id="5159419673777902220">Foreldri þitt hefur gert heimildir fyrir viðbót óvirkar</translation>
-<translation id="5159643365935452998">Fara yfir sjálfvirka hreinsun gagna</translation>
 <translation id="5160634252433617617">Vélbúnaðarlyklaborð</translation>
 <translation id="5160857336552977725">Skráðu þig inn í <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB-tæki frá <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 92e1def..1607c69 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -4530,7 +4530,6 @@
 <translation id="5158206172605340248">Menu degli accenti ignorato.</translation>
 <translation id="5159094275429367735">Configura Crostini</translation>
 <translation id="5159419673777902220">Uno dei tuoi genitori ha disattivato le autorizzazioni per le estensioni</translation>
-<translation id="5159643365935452998">Esamina la cancellazione automatica dei dati</translation>
 <translation id="5160634252433617617">Tastiera fisica</translation>
 <translation id="5160857336552977725">Accedi al tuo dispositivo <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Dispositivi USB di <ph name="VENDOR_NAME" /></translation>
@@ -8919,7 +8918,7 @@
 <translation id="932327136139879170">Home page</translation>
 <translation id="932508678520956232">Impossibile inizializzare la stampa.</translation>
 <translation id="933427034780221291">{NUM_FILES,plural, =1{Il file è troppo grande per essere sottoposto a un controllo di sicurezza. La dimensione massima dei file che puoi caricare è di 50 MB.}other{Alcuni di questi file sono troppo grandi per essere sottoposti a un controllo di sicurezza. La dimensione massima dei file che puoi caricare è di 50 MB.}}</translation>
-<translation id="93343527085570547">Vai alla <ph name="BEGIN_LINK1" />Guida di approfondimento legale<ph name="END_LINK1" /> per richiedere modifiche ai contenuti per motivi legali. Alcune informazioni sull'account e sul sistema potrebbero essere inviate a Google, che le userà per risolvere problemi tecnici e migliorare i suoi servizi nel rispetto delle sue <ph name="BEGIN_LINK2" />Norme sulla privacy<ph name="END_LINK2" /> e dei suoi <ph name="BEGIN_LINK3" />Termini di servizio<ph name="END_LINK3" />.</translation>
+<translation id="93343527085570547">Vai alla <ph name="BEGIN_LINK1" />Guida di approfondimento legale<ph name="END_LINK1" /> per richiedere modifiche ai contenuti per motivi legali. Alcuni dati dell'account e del sistema potrebbero essere inviati a Google, che li userà per risolvere problemi tecnici e migliorare i suoi servizi nel rispetto delle sue <ph name="BEGIN_LINK2" />Norme sulla privacy<ph name="END_LINK2" /> e dei suoi <ph name="BEGIN_LINK3" />Termini di servizio<ph name="END_LINK3" />.</translation>
 <translation id="93393615658292258">Solo password</translation>
 <translation id="934244546219308557">Assegna un nome a questo gruppo</translation>
 <translation id="934503638756687833">Se necessario verranno rimossi anche elementi non elencati qui. Leggi ulteriori informazioni sulla &lt;a href="<ph name="URL" />"&gt;protezione da software indesiderato&lt;/a&gt; nel whitepaper sulla privacy di Chrome.</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index b44907f..04c568a 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -4546,7 +4546,6 @@
 <translation id="5158206172605340248">תפריט הסימנים הדיאקריטיים נסגר.</translation>
 <translation id="5159094275429367735">‏הגדרת Crostini</translation>
 <translation id="5159419673777902220">ההרשאות של התוסף הושבתו על ידי ההורה שלך</translation>
-<translation id="5159643365935452998">בדיקת ההגדרות של מחיקת הנתונים האוטומטית</translation>
 <translation id="5160634252433617617">מקלדת פיזית</translation>
 <translation id="5160857336552977725">יש להיכנס אל ה-<ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">‏התקני USB של <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index bde0958..afde3b6 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -4519,7 +4519,6 @@
 <translation id="5158206172605340248">アクセント記号のメニューを閉じました。</translation>
 <translation id="5159094275429367735">Crostini のセットアップ</translation>
 <translation id="5159419673777902220">保護者が拡張機能の許可設定を無効にしました</translation>
-<translation id="5159643365935452998">自動データ削除の確認</translation>
 <translation id="5160634252433617617">物理キーボード</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" /> にログインしてください</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> の USB デバイス</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index ba2305d..02ff207 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -3800,6 +3800,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" />-ს შეუძლია „<ph name="FOLDERNAME" />“-ში ფაილების რედაქტირება</translation>
 <translation id="4470957202018033307">გარე მეხსიერების პარამეტრები</translation>
 <translation id="4471354919263203780">მიმდინარეობს მეტყველების ამოცნობის ფაილების ჩამოტვირთვა... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">სურვილისამებრ, შეგიძლიათ თქვენი Google ანგარიშის უპირატესი ენის (<ph name="NEW_LOCALE_FROM_GAIA" />) გამოყენება</translation>
 <translation id="447252321002412580">შეუწყვეთ ხელი Chrome-ის ფუნქციებისა და წარმადობის გაუმჯობესებას</translation>
 <translation id="4472575034687746823">დაწყება</translation>
 <translation id="4474155171896946103">ყველა ჩანართის სანიშნეებში დამატება…</translation>
@@ -4529,7 +4530,6 @@
 <translation id="5158206172605340248">აქცენტის ნიშნების მენიუ დაიხურა.</translation>
 <translation id="5159094275429367735">Crostini-ს დაყენება</translation>
 <translation id="5159419673777902220">თქვენმა მშობელმა გათიშა გაფართოებების ნებართვები</translation>
-<translation id="5159643365935452998">გადახედეთ მონაცემთა ავტომატურ გასუფთავებას</translation>
 <translation id="5160634252433617617">ფიზიკური კლავიატურა</translation>
 <translation id="5160857336552977725">შედით თქვენს <ph name="DEVICE_TYPE" />-ში</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" />-ის USB მოწყობილობები</translation>
@@ -6739,6 +6739,7 @@
 <translation id="7227458944009118910">ქვემოთ ჩამოთვლილი აპები თავსებადია პროტოკოლურ ბმულებთანაც. სხვა აპები ნებართვას მოითხოვს.</translation>
 <translation id="7228056665272655255">თითის ანაბეჭდის დასაყენებლად სთხოვეთ თქვენს ბავშვს, შეეხოს თითის ანაბეჭდის სენსორს, რომელიც მდებარეობს კლავიატურის ზედა მარჯვენა კუთხეში. თქვენი ბავშვის თითის ანაბეჭდის მონაცემები უსაფრთხოდ შეინახება მხოლოდ და მხოლოდ ამ <ph name="DEVICE_TYPE" />-ზე.</translation>
 <translation id="7228523857728654909">ეკრანის დაბლოკვა და სისტემაში შესვლა</translation>
+<translation id="7228854227189381547">არ გადაირთოს</translation>
 <translation id="7230222852462421043">ფანჯრის &amp;აღდგენა</translation>
 <translation id="7231260028442989757">ნახეთ და დახურეთ თქვენი ტელეფონის შეტყობინებები, ასევე, უპასუხეთ მათ</translation>
 <translation id="7232750842195536390">გადარქმევა ვერ მოხერხდა</translation>
@@ -7072,6 +7073,7 @@
 <translation id="7545466883021407599">სერვერთან დაკავშირება ვერ მოხერხდა. შეამოწმეთ ქსელთან კავშირი და ხელახლა ცადეთ. თუ პრობლემა არ მოგვარდება, ცადეთ Chromebook-ის გადატვირთვა. შეცდომის კოდი: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">გაფრთხილება: თქვენი <ph name="PRODUCT_NAME" />-ის პარამეტრები ინახება ქსელის დისკწამყვანზე. ამან შეიძლება გამოიწვიოს შენელება, მწყობრიდან გამოსვლა და მონაცემთა დაკარგვაც კი.</translation>
 <translation id="7548856833046333824">ლიმონადი</translation>
+<translation id="7549434883223124329">გსურთ მოწყობილობის ენის გადართვა?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" />-ის ჩამოტვირთვა ვერ მოხერხდა</translation>
 <translation id="7551643184018910560">თაროზე ჩამაგრება</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 789f347..473de15 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -4524,7 +4524,6 @@
 <translation id="5158206172605340248">Диакритикалық таңбалар мәзірі жабылды.</translation>
 <translation id="5159094275429367735">Crostini жүйесін реттеу</translation>
 <translation id="5159419673777902220">Ата-анаңыз кеңейтім рұқсаттарын өшірді.</translation>
-<translation id="5159643365935452998">Деректерді автоматты түрде тазартуды тексеру</translation>
 <translation id="5160634252433617617">Пернетақта</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" /> құрылғыңызға кіріңіз</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> ұсынған USB құрылғылары</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 99088f7..2235f782 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -4544,7 +4544,6 @@
 <translation id="5158206172605340248">ម៉ឺនុយសញ្ញា​សម្គាល់សំឡេងត្រូវបានច្រានចោល។</translation>
 <translation id="5159094275429367735">រៀបចំ Crostini</translation>
 <translation id="5159419673777902220">មាតាបិតា​របស់អ្នក​បានបិទ​ការអនុញ្ញាត​កម្មវិធីបន្ថែម</translation>
-<translation id="5159643365935452998">ពិនិត្យមើល​ការសម្អាត​ទិន្នន័យ​ដោយស្វ័យប្រវត្តិ</translation>
 <translation id="5160634252433617617">ក្ដារចុច​រូបវន្ត</translation>
 <translation id="5160857336552977725">ចូលទៅ <ph name="DEVICE_TYPE" /> របស់អ្នក</translation>
 <translation id="5161251470972801814">ឧបករណ៍ USB ពី <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 2339732..8fff519 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -4540,7 +4540,6 @@
 <translation id="5158206172605340248">ಉಚ್ಚಾರಣಾ ಗುರುತುಗಳ ಮೆನುವನ್ನು ವಜಾಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="5159094275429367735">Crostini ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ</translation>
 <translation id="5159419673777902220">ನಿಮ್ಮ ಪೋಷಕರು ವಿಸ್ತರಣೆಯ ಅನುಮತಿಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation>
-<translation id="5159643365935452998">ಸ್ವಯಂಚಾಲಿತ ಡೇಟಾ ತೆರವುಗೊಳಿಸುವಿಕೆಯನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="5160634252433617617">ಭೌತಿಕ ಕೀಬೋರ್ಡ್</translation>
 <translation id="5160857336552977725">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಸಾಧನದಲ್ಲಿ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> ಅವರ USB ಸಾಧನಗಳು</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 2a55343..c597f66e 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -1177,7 +1177,7 @@
 <translation id="2048182445208425546">네트워크 트래픽에 액세스</translation>
 <translation id="2048554637254265991">컨테이너 관리자 시작 중에 오류가 발생했습니다. 다시 시도해 주세요.</translation>
 <translation id="2048653237708779538">실행할 수 없는 작업</translation>
-<translation id="2050339315714019657">세로 방향</translation>
+<translation id="2050339315714019657">인물</translation>
 <translation id="2052572566310583903">다른 기기에서 설치됨</translation>
 <translation id="2053105195397337973">Google은 추적을 제한하고 사이트에서 광고 스팸과 사기를 방지하도록 돕는 방안을 모색하고 있습니다.</translation>
 <translation id="2053312383184521053">유휴 상태 데이터</translation>
@@ -1728,7 +1728,7 @@
 <translation id="2514326558286966059">지문으로 신속하게 잠금 해제</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="251722524540674480">사용자 이름 확인</translation>
-<translation id="2517472476991765520">검색</translation>
+<translation id="2517472476991765520">스캔</translation>
 <translation id="2518024842978892609">클라이언트 인증서 사용</translation>
 <translation id="2519517390894391510">인증서 프로필 이름</translation>
 <translation id="2520644704042891903">사용 가능한 소켓 대기 중...</translation>
@@ -4542,7 +4542,6 @@
 <translation id="5158206172605340248">발음 구별 부호 메뉴를 닫았습니다.</translation>
 <translation id="5159094275429367735">Crostini 설정</translation>
 <translation id="5159419673777902220">부모님이 확장 프로그램 권한을 사용 중지했습니다.</translation>
-<translation id="5159643365935452998">자동 데이터 삭제 검토</translation>
 <translation id="5160634252433617617">물리적 키보드</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" />에 로그인</translation>
 <translation id="5161251470972801814">USB 기기(업체: <ph name="VENDOR_NAME" />)</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index b798673..c2bbac80 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -3813,6 +3813,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> папкасындагы файлдары түзөтө алат</translation>
 <translation id="4470957202018033307">Тышкы сактагычтын параметрлери</translation>
 <translation id="4471354919263203780">Кепти таануу файлдары жүктөлүп алынууда... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Google аккаунтуңузда каалаган тилди колдоно аласыз (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Chrome'дун функцияларын жана өндүрүмдүүлүгүн өркүндөтүүгө жардам бериңиз</translation>
 <translation id="4472575034687746823">Баштоо</translation>
 <translation id="4474155171896946103">Бардык өтмөктөрдү кыстарып коюу…</translation>
@@ -4543,7 +4544,6 @@
 <translation id="5158206172605340248">Басым белгилеринин менюсу жабылды.</translation>
 <translation id="5159094275429367735">Crostini'ни жөндөө</translation>
 <translation id="5159419673777902220">Ата-энең кеңейтүүлөрдүн уруксаттарын өчүрүп койду</translation>
-<translation id="5159643365935452998">Маалыматты автоматтык түрдө тазалоону карап чыгуу</translation>
 <translation id="5160634252433617617">Аппараттык баскычтоп</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" /> түзмөгүңүзгө кириңиз</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> камсыздаган USB түзмөктөр</translation>
@@ -6751,6 +6751,7 @@
 <translation id="7227458944009118910">Төмөндөгү колдонмолор протоколдун шилтемелерин да иштете алышат. Башка колдонмолор уруксат сурашат.</translation>
 <translation id="7228056665272655255">Манжа изин тууралоо үчүн балаңыз баскычтоптун жогорку оң жагындагы манжа изинин сенсоруна тийип коюшу керек. Балаңыздын манжасынын изи <ph name="DEVICE_TYPE" /> түзмөгүндө коопсуз сакталат.</translation>
 <translation id="7228523857728654909">Экранды кулпулоо жана аккаунтка кирүү</translation>
+<translation id="7228854227189381547">Которулбасын</translation>
 <translation id="7230222852462421043">&amp;Терезени калыбына келтирүү</translation>
 <translation id="7231260028442989757">Телефонуңуздагы билдирмелерди көрүп, четке кагып жана жооп бересиз</translation>
 <translation id="7232750842195536390">Аталышы өзгөртүлбөй койду</translation>
@@ -7084,6 +7085,7 @@
 <translation id="7545466883021407599">Серверге туташпай калды. Тармакка туташууңузду текшерип, дагы бир жолу аракет кылыңыз. Эгер маселе чечилбесе, Chromebook'ту өчүрүп күйгүзүп көрүңүз. Ката коду: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Сак болуңуз: <ph name="PRODUCT_NAME" /> жөндөөлөрүңүз тармактык дискке сакталган. Ушундан улам, түзмөгүңүз жайыраак иштеп, бузулуп, ал гана эмес, дайын-даректериңизди жоготуп алышыңыз мүмкүн.</translation>
 <translation id="7548856833046333824">Лимонад</translation>
+<translation id="7549434883223124329">Түзмөктүн тилине которулсунбу?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> жүктөлүп алынган жок</translation>
 <translation id="7551643184018910560">Текчеге кадап коюу</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 846ab963..c228b99 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -4542,7 +4542,6 @@
 <translation id="5158206172605340248">ປິດເມນູເຄື່ອງໝາຍສຳນຽງ.</translation>
 <translation id="5159094275429367735">ຕັ້ງຄ່າ Crostini</translation>
 <translation id="5159419673777902220">ພໍ່ແມ່ຂອງທ່ານໄດ້ປິດການນຳໃຊ້ການອະນຸຍາດສ່ວນຂະຫຍາຍແລ້ວ</translation>
-<translation id="5159643365935452998">ກວດສອບການລຶບລ້າງຂໍ້ມູນອັດຕະໂນມັດ</translation>
 <translation id="5160634252433617617">ແປ້ນພິມພາຍນອກ</translation>
 <translation id="5160857336552977725">ລົງຊື່ເຂົ້າ <ph name="DEVICE_TYPE" /> ຂອງ​ທ່ານ</translation>
 <translation id="5161251470972801814">ອຸປະກອນ USB ຈາກ <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 245282a..6fac66a 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -1252,6 +1252,7 @@
 <translation id="2104166991923847969">Automatiškai išjungti viešosios interneto prieigos tašką</translation>
 <translation id="2105809836724866556">Paslėpta: <ph name="MODULE_TITLE" /></translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Telefono numeris}one{# telefono numeris}few{# telefono numeriai}many{# telefono numerio}other{# telefono numerių}}</translation>
+<translation id="2110941575868943054">Leidžiama ieškoti „Bluetooth“ įrenginių</translation>
 <translation id="211144231511833662">Išvalyti tipus</translation>
 <translation id="2111670510994270194">Naujas skirtukas dešinėje</translation>
 <translation id="2112554630428445878">Sveiki, <ph name="USERNAME" />!</translation>
@@ -3046,6 +3047,7 @@
 <translation id="3756485814916578707">Perduodamas ekranas</translation>
 <translation id="3756578970075173856">PIN kodo nustatymas</translation>
 <translation id="3756795331760037744">Leidimas „Google“ padėjėjui naudoti informaciją <ph name="SUPERVISED_USER_NAME" /> ekrane, kai reikia pagalbos</translation>
+<translation id="3756806135608816820">Svetainės gali prašyti leisti ieškoti „Bluetooth“ įrenginių</translation>
 <translation id="3757733214359997190">Svetainių nerasta</translation>
 <translation id="375841316537350618">Atsisiunčiamas įgaliotojo serverio scenarijus...</translation>
 <translation id="3758842566811519622">Slapukai nustatyti</translation>
@@ -4546,7 +4548,6 @@
 <translation id="5158206172605340248">Atsisakyta kirčio ženklų meniu.</translation>
 <translation id="5159094275429367735">Nustatyti „Crostini“</translation>
 <translation id="5159419673777902220">Vienas iš tėvų išjungė plėtinio leidimus</translation>
-<translation id="5159643365935452998">Automatinio duomenų išvalymo peržiūra</translation>
 <translation id="5160634252433617617">Fizinė klaviatūra</translation>
 <translation id="5160857336552977725">Prisijunkite prie „<ph name="DEVICE_TYPE" />“</translation>
 <translation id="5161251470972801814">USB įrenginiai (teikėjas: „<ph name="VENDOR_NAME" />“)</translation>
@@ -5021,6 +5022,7 @@
 <translation id="5600706100022181951">Naujinys bus atsisiųstas naudojant <ph name="UPDATE_SIZE_MB" /> MB mobiliojo ryšio duomenų. Ar norite tęsti?</translation>
 <translation id="5601503069213153581">PIN kodas</translation>
 <translation id="5601823921345337195">Neleidžiama prijungti MIDI įrenginių</translation>
+<translation id="5601833336918638013">Neleisti svetainėms ieškoti „Bluetooth“ įrenginių</translation>
 <translation id="5602765853043467355">Išvalyti žymes, istoriją, slaptažodžius ir kt. iš šio įrenginio</translation>
 <translation id="5605758115928394442">Pranešimas išsiųstas į jūsų telefoną norint patvirtinti, kad tai jūs.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Šis plėtinys užblokuotas}one{Šie plėtiniai užblokuoti}few{Šie plėtiniai užblokuoti}many{Šie plėtiniai užblokuoti}other{Šie plėtiniai užblokuoti}}</translation>
@@ -6485,6 +6487,7 @@
 <translation id="6960507406838246615">Reikia atnaujinti „Linux“</translation>
 <translation id="6960648667961844909">Nepavyko atsisiųsti <ph name="LANGUAGE" /> kalbos failų. Atsisiųsti bus bandoma vėliau. Kalba siunčiama į sistemą „Google“ apdoroti, kol bus atsisiųsta.</translation>
 <translation id="696103774840402661">Visam laikui ištrinti visų naudotojų bet kurie failai ir vietiniai duomenys, esantys šiame įrenginyje (<ph name="DEVICE_TYPE" />).</translation>
+<translation id="6961327401577924850">Paprastai svetainės ieško „Bluetooth“ įrenginių, kad būtų galima atlikti tam tikras funkcijas, pvz., nustatyti ar sinchronizuoti žemo energijos lygio signalų siųstuvą, sveikatos ar mankštos stebėjimo priemonę arba išmaniojo šviestuvo lemputę</translation>
 <translation id="6963872466817251924">Teksto žymeklio paryškinimo įrankis</translation>
 <translation id="6964390816189577014">Herojus</translation>
 <translation id="6964760285928603117">Pašalinti iš grupės</translation>
@@ -8120,6 +8123,7 @@
 <translation id="8465444703385715657">Norint paleisti „<ph name="PLUGIN_NAME" />“ reikalingas jūsų leidimas</translation>
 <translation id="8466417995783206254">Šiame skirtuke vaizdo įrašas leidžiamas vaizdo vaizde režimu.</translation>
 <translation id="8467326454809944210">Pasirinkti kitą kalbą</translation>
+<translation id="8468087214092422866">Neleidžiama ieškoti „Bluetooth“ įrenginių</translation>
 <translation id="8470513973197838199">Išsaugoti <ph name="ORIGIN" /> slaptažodžiai</translation>
 <translation id="8471525937465764768">Paprastai svetainėse prisijungiama prie USB įrenginių vykdant tam tikras funkcijas, pvz., spausdinant dokumentą ar saugant saugyklos įrenginyje</translation>
 <translation id="8471959340398751476">Nuolaidų funkcija išjungta. Ją galite įjungti tinkinimo meniu</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 7b3ebffea..115a0d30 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -4529,7 +4529,6 @@
 <translation id="5158206172605340248">Uzsvara atzīmju izvēlne ir noraidīta.</translation>
 <translation id="5159094275429367735">Iestatīt Crostini</translation>
 <translation id="5159419673777902220">Viens no jūsu vecākiem ir atspējojis paplašinājumu atļaujas.</translation>
-<translation id="5159643365935452998">Automātiskās datu notīrīšanas pārskatīšana</translation>
 <translation id="5160634252433617617">Fiziskā tastatūra</translation>
 <translation id="5160857336552977725">Pierakstieties ierīcē <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB ierīces, ko piedāvā <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 483b101f..4a1f6732 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -4547,7 +4547,6 @@
 <translation id="5158206172605340248">Менито за надредни знаци е отфрлено.</translation>
 <translation id="5159094275429367735">Поставете го Crostini</translation>
 <translation id="5159419673777902220">Родителот ги оневозможил дозволите за екстензиите</translation>
-<translation id="5159643365935452998">Прегледајте го автоматското бришење податоци</translation>
 <translation id="5160634252433617617">Физичка тастатура</translation>
 <translation id="5160857336552977725">Најавете се на <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB-уреди од <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index e512c08..aab24af 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -1236,6 +1236,7 @@
 <translation id="2104166991923847969">ഹോട്ട്‌സ്പോട്ട് സ്വയമേവ ഓഫാക്കുക</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> മറച്ചിരിക്കുന്നു</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{ഫോൺ നമ്പർ}other{# ഫോൺ നമ്പറുകൾ}}</translation>
+<translation id="2110941575868943054">Bluetooth ഉപകരണങ്ങൾ തിരയാൻ അനുമതി നൽകിയിരിക്കുന്നു</translation>
 <translation id="211144231511833662">തരങ്ങൾ മായ്ക്കുക</translation>
 <translation id="2111670510994270194">പുതിയ ടാബ് വലതുവശത്തേക്ക്</translation>
 <translation id="2112554630428445878">സ്വാഗതം, <ph name="USERNAME" /></translation>
@@ -3027,6 +3028,7 @@
 <translation id="3756485814916578707">സ്‌ക്രീൻ കാസ്റ്റ് ചെയ്യുന്നു</translation>
 <translation id="3756578970075173856">പിൻ സജ്ജീകരിക്കുക</translation>
 <translation id="3756795331760037744">സഹായിക്കുന്നതിന് <ph name="SUPERVISED_USER_NAME" /> എന്ന കുട്ടിയുടെ സ്ക്രീനിലെ വിവരങ്ങൾ ഉപയോഗിക്കാൻ Google Assistant-നെ അനുവദിക്കുക</translation>
+<translation id="3756806135608816820">സൈറ്റുകൾക്ക് Bluetooth ഉപകരണങ്ങൾ തിരയാൻ ആവശ്യപ്പെടാനാകും</translation>
 <translation id="3757733214359997190">സൈറ്റുകളൊന്നും കണ്ടെത്തിയില്ല</translation>
 <translation id="375841316537350618">പ്രോക്‌സി സ്‌ക്രിപ്‌റ്റ് ഡൗൺലോഡ് ചെയ്യുന്നു...</translation>
 <translation id="3758842566811519622">കുക്കികൾ സജ്ജമാക്കി</translation>
@@ -3796,6 +3798,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> എന്നതിന് <ph name="FOLDERNAME" /> എന്ന ഫോൾഡറിലെ ഫയലുകൾ എഡിറ്റ് ചെയ്യാനാവും</translation>
 <translation id="4470957202018033307">ബാഹ്യ സ്‌റ്റോറേജ് മുൻഗണനകൾ</translation>
 <translation id="4471354919263203780">സംഭാഷണം തിരിച്ചറിയൽ ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യുന്നു... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">നിങ്ങൾ മുൻഗണന നൽകുന്ന Google അക്കൗണ്ട് ഭാഷ (<ph name="NEW_LOCALE_FROM_GAIA" />) ഉപയോഗിക്കാം</translation>
 <translation id="447252321002412580">Chrome-ന്റെ ഫീച്ചറുകളും പ്രകടനവും മെച്ചപ്പെടുത്താൻ സഹായിക്കുക</translation>
 <translation id="4472575034687746823">ആരംഭിക്കാം</translation>
 <translation id="4474155171896946103">എല്ലാ ടാബുകളും ബുക്ക്‌മാര്‍‌ക്ക് ചെയ്യുക...</translation>
@@ -4525,7 +4528,6 @@
 <translation id="5158206172605340248">ആക്‌സന്റ് അടയാളങ്ങളുടെ മെനു ഡിസ്‌മിസ് ചെയ്തു.</translation>
 <translation id="5159094275429367735">Crostini സജ്ജീകരിക്കുക</translation>
 <translation id="5159419673777902220">നിങ്ങളുടെ രക്ഷിതാവ് വിപുലീകരണ അനുമതികൾ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു</translation>
-<translation id="5159643365935452998">സ്വയമേവയുള്ള ഡാറ്റ മായ്ക്കൽ അവലോകനം ചെയ്യുക</translation>
 <translation id="5160634252433617617">ഫിസിക്കൽ കീബോർഡ്</translation>
 <translation id="5160857336552977725">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എന്നതിൽ സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> എന്നതിൽ നിന്നുള്ള USB ഉപകരണം</translation>
@@ -5000,6 +5002,7 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB മൊബൈല്‍ ഡാറ്റ ഉപയോഗിച്ച് അപ്‌ഡേറ്റ് ഡൗൺലോഡ് ചെയ്യും. തുടരാൻ താൽപ്പര്യമുണ്ടോ?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI ഉപകരണങ്ങളിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ അനുവാദമില്ല</translation>
+<translation id="5601833336918638013">Bluetooth ഉപകരണങ്ങൾ തിരയാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation>
 <translation id="5602765853043467355">ഈ ഉപകരണത്തിൽ നിന്ന് ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ എന്നിവയും മറ്റും മായ്ക്കുക</translation>
 <translation id="5605758115928394442">ഇത് നിങ്ങൾ തന്നെയാണെന്ന് സ്ഥിരീകരിക്കാൻ ഫോണിലേക്ക് ഒരു അറിയിപ്പ് അയച്ചിട്ടുണ്ട്.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ഈ വിപുലീകരണം ബ്ലോക്ക് ചെയ്‌തു}other{ഈ വിപുലീകരണങ്ങൾ ബ്ലോക്ക് ചെയ്‌തു}}</translation>
@@ -6459,6 +6462,7 @@
 <translation id="6960507406838246615">Linux അപ്ഡേറ്റ് ചെയ്യേണ്ടതുണ്ട്</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> സംഭാഷണ ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാനായില്ല. പിന്നീട് ഡൗൺലോഡ് ചെയ്യാൻ ശ്രമിക്കും. ഡൗൺലോഡ് പൂർത്തിയാകുന്നത് വരെ സംഭാഷണം പ്രോസസ് ചെയ്യുന്നതിനായി Google-ലേക്ക് അയയ്ക്കും.</translation>
 <translation id="696103774840402661">ഈ <ph name="DEVICE_TYPE" /> എന്നതിലെ എല്ലാ ഉപയോക്താക്കളുടെയും എല്ലാ ഫയലുകളും ലോക്കൽ ഡാറ്റയും ശാശ്വതമായി ഇല്ലാതാക്കി.</translation>
+<translation id="6961327401577924850">ലോ എനർജി ബീക്കണും ആരോഗ്യ, ഫിറ്റ്നസ് ട്രാക്കറും സ്‌മാർട്ട് ലൈറ്റ് ബൾബും സജ്ജീകരിക്കുന്നതും സമന്വയിപ്പിക്കുന്നതും പോലുള്ള ഫീച്ചറുകൾക്കായി, സൈറ്റുകൾ സാധാരണയായി Bluetooth ഉപകരണങ്ങൾ തിരയാറുണ്ട്</translation>
 <translation id="6963872466817251924">ടെക്‌സ്റ്റ് കഴ്‌സർ ഹൈലൈറ്റർ</translation>
 <translation id="6964390816189577014">ഹീറോ</translation>
 <translation id="6964760285928603117">ഗ്രൂപ്പിൽ നിന്ന് നീക്കം ചെയ്യുക</translation>
@@ -6735,6 +6739,7 @@
 <translation id="7227458944009118910">ചുവടെ ലിസ്റ്റ് ചെയ്‌തിരിക്കുന്ന ആപ്പുകൾക്ക് പ്രോട്ടോക്കോൾ ലിങ്കുകളും കൈകാര്യം ചെയ്യാനാകും. മറ്റ് ആപ്പുകൾ അനുമതി ആവശ്യപ്പെടും.</translation>
 <translation id="7228056665272655255">ഫിംഗർപ്രിന്റ് സജ്ജീകരിക്കാൻ, നിങ്ങളുടെ കീബോർഡിൽ മുകളിൽ വലത് മൂലയിലുള്ള ഫിംഗർപ്രിന്റ് സെൻസറിൽ സ്‌പർശിക്കാൻ നിങ്ങളുടെ കുട്ടിയോട് ആവശ്യപ്പെടുക. നിങ്ങളുടെ കുട്ടിയുടെ ഫിംഗർപ്രിന്റ് ഡാറ്റ <ph name="DEVICE_TYPE" /> എന്നതിൽ സുരക്ഷിതമായി സംഭരിക്കുന്നു, ഒരിക്കലും അതിൽ നിന്ന് പുറത്ത് പോകില്ല.</translation>
 <translation id="7228523857728654909">സ്‌ക്രീൻ ലോക്കും സൈൻ-ഇന്നും</translation>
+<translation id="7228854227189381547">മാറ്റേണ്ടതില്ല</translation>
 <translation id="7230222852462421043">&amp;വിൻഡോ പുനഃസ്ഥാപിക്കുക</translation>
 <translation id="7231260028442989757">നിങ്ങളുടെ ഫോണിന്റെ അറിയിപ്പുകൾ കാണുക, ഡിസ്‌മിസ് ചെയ്യുക, മറുപടി നൽകുക</translation>
 <translation id="7232750842195536390">പേരുമാറ്റൽ പരാജയപ്പെട്ടു</translation>
@@ -7068,6 +7073,7 @@
 <translation id="7545466883021407599">സെർവറുമായി കണക്റ്റ് ചെയ്യാനായില്ല. നെറ്റ്‌വർക്ക് കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക. ഇപ്പോഴും പ്രശ്നം നേരിടുന്നുണ്ടെങ്കിൽ, Chromebook റീസ്‌റ്റാർട്ട് ചെയ്‌ത് ശ്രമിക്കുക. പിശക് കോഡ്: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">മുന്നറിയിപ്പ്: നിങ്ങളുടെ <ph name="PRODUCT_NAME" /> ക്രമീകരണങ്ങൾ ഒരു നെറ്റ്‌വർക്ക് ഡ്രൈവിൽ സംഭരിച്ചിരിക്കുന്നു. ഇതിന്റെ ഫലം മന്ദഗതിയിലുള്ള പ്രവർത്തനങ്ങൾ, ക്രാഷുകൾ അല്ലെങ്കിൽ ഡാറ്റ നഷ്‌ടപ്പെടുന്നത് പോലുമാകാം.</translation>
 <translation id="7548856833046333824">ലെമണേഡ്</translation>
+<translation id="7549434883223124329">ഉപകരണത്തിന്റെ ഭാഷ മാറ്റണോ?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> ഡൗൺലോഡ് പരാജയപ്പെട്ടു</translation>
 <translation id="7551643184018910560">ഷെൽഫിലേക്ക് പിൻ ചെയ്യുക</translation>
@@ -8094,6 +8100,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> പ്ലഗിന് പ്രവർത്തിക്കാൻ നിങ്ങളുടെ അനുമതി ആവശ്യമുണ്ട്</translation>
 <translation id="8466417995783206254">ചിത്രത്തിനുള്ളിലെ ചിത്രം മോഡിൽ ഈ ടാബ് ഒരു വീഡിയോ പ്ലേ ചെയ്യുന്നു.</translation>
 <translation id="8467326454809944210">മറ്റൊരു ഭാഷ തിരഞ്ഞെടുക്കുക</translation>
+<translation id="8468087214092422866">Bluetooth ഉപകരണങ്ങൾ തിരയാൻ അനുമതിയില്ല</translation>
 <translation id="8470513973197838199"><ph name="ORIGIN" />-നായി സംരക്ഷിച്ച പാസ്‌വേഡുകൾ</translation>
 <translation id="8471525937465764768">ഡോക്യുമെന്റ് പ്രിന്റ് ചെയ്യുന്നതോ സ്‌റ്റോറേജ് ഉപകരണത്തിൽ സംരക്ഷിക്കുന്നതോ പോലുള്ള ഫീച്ചറുകൾക്ക്, സൈറ്റുകൾ സാധാരണയായി USB ഉപകരണങ്ങളിലേക്ക് കണക്‌റ്റ് ചെയ്യാറുണ്ട്</translation>
 <translation id="8471959340398751476">ഡിസ്‌കൗണ്ടുകൾ ഓഫാണ്. അവ നിങ്ങൾക്ക് ഇഷ്‌ടാനുസൃതമാക്കൽ മെനുവിൽ ഓണാക്കാം</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index ec32bb7..aeb1714 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -3808,6 +3808,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> нь <ph name="FOLDERNAME" />-н файлыг засах боломжтой</translation>
 <translation id="4470957202018033307">Гадаад санах ойн сонголт</translation>
 <translation id="4471354919263203780">Яриа таних файлыг татаж байна... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Та Google Бүртгэлийн сонгосон хэлээ ашиглах боломжтой (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Chrome-н онцлог болон гүйцэтгэлийг сайжруулахад туслах</translation>
 <translation id="4472575034687746823">Эхлүүлэх</translation>
 <translation id="4474155171896946103">Бүх цонхнуудыг хадгалж жагсаах ...</translation>
@@ -4538,7 +4539,6 @@
 <translation id="5158206172605340248">Өргөлтийн тэмдгийн цэс хаалттай байна.</translation>
 <translation id="5159094275429367735">Crostini-г тохируулах</translation>
 <translation id="5159419673777902220">Таны эцэг эх өргөтгөлийн зөвшөөрлийг идэвхгүй болгосон.</translation>
-<translation id="5159643365935452998">Өгөгдлийг автоматаар арилгахыг шалгах</translation>
 <translation id="5160634252433617617">Биет гар</translation>
 <translation id="5160857336552977725">Өөрийн <ph name="DEVICE_TYPE" /> руу нэвтэрч орно уу</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" />-н USB төхөөрөмжүүд</translation>
@@ -6746,6 +6746,7 @@
 <translation id="7227458944009118910">Доор жагсаасан аппууд мөн протоколын холбоосыг зохицуулах боломжтой. Бусад апп зөвшөөрөл хүснэ.</translation>
 <translation id="7228056665272655255">Хурууны хээ тохируулахын тулд хүүхдээрээ гарын баруун дээд буланд байх хурууны хээ мэдрэгчид хурууг нь хүргүүлнэ үү. Таны хүүхдийн хурууны хээний өгөгдлийг аюулгүй хадгалдаг бөгөөд энэ өгөгдөл энэ <ph name="DEVICE_TYPE" />-с гадагш хэзээ ч гарахгүй.</translation>
 <translation id="7228523857728654909">Дэлгэцийн түгжээ болон нэвтрэлт</translation>
+<translation id="7228854227189381547">Сэлгэхгүй</translation>
 <translation id="7230222852462421043">&amp;Цонхыг сэргээх</translation>
 <translation id="7231260028442989757">Утасныхaa мэдэгдлүүдийг харж, хааж мөн тэдгээрт хариу бичнэ үү</translation>
 <translation id="7232750842195536390">Нэрийг өөрчилж чадсангүй</translation>
@@ -7079,6 +7080,7 @@
 <translation id="7545466883021407599">Сервертэй холбогдож чадсангүй. Сүлжээний холболтоо шалгаад, дахин оролдоно уу. Хэрэв асуудалтай хэвээр байвал та Chromebook-ээ дахин эхлүүлж үзнэ үү. Алдааны код: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Анхааруулга: Таны <ph name="PRODUCT_NAME" /> тохиргоонууд нь сүлжээний драйв дээр хадгалагдсан байна.  Энэ нь удаашруулах, эвдрэл үүсгэх эсвэл мэдээлэл алдагдахад хүргэж болно.</translation>
 <translation id="7548856833046333824">Lemonade</translation>
+<translation id="7549434883223124329">Төхөөрөмжийн хэлийг сэлгэх үү?</translation>
 <translation id="7550830279652415241">Хадгалагдсан хуудас_ <ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> татанж авах үйлдэл амжилтгүй</translation>
 <translation id="7551643184018910560">Програмын жагсаалтын өмнө гаргах</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 1151e51..8b33d2d 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -1248,6 +1248,7 @@
 <translation id="2104166991923847969">हॉटस्पॉट आपोआप बंद करा</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> लपवले आहे</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{फोन नंबर}other{# फोन नंबर}}</translation>
+<translation id="2110941575868943054">ब्लूटूथ डिव्हाइस शोधण्याची अनुमती आहे</translation>
 <translation id="211144231511833662">प्रकार साफ करा</translation>
 <translation id="2111670510994270194">उजवीकडील नवीन टॅब</translation>
 <translation id="2112554630428445878">स्वागत आहे, <ph name="USERNAME" /></translation>
@@ -3042,6 +3043,7 @@
 <translation id="3756485814916578707">स्‍क्रीन कास्‍ट करत आहे</translation>
 <translation id="3756578970075173856">पिन सेट करा</translation>
 <translation id="3756795331760037744">मदत करण्यासाठी Google Assistant ला <ph name="SUPERVISED_USER_NAME" /> च्या स्क्रीनवरील माहिती वापरण्याची अनुमती द्या</translation>
+<translation id="3756806135608816820">साइट या ब्लूटूथ डिव्हाइस शोधण्याची विनंती करू शकतात</translation>
 <translation id="3757733214359997190">कोणत्याही साइट आढळल्या नाहीत</translation>
 <translation id="375841316537350618">प्रॉक्सी स्क्रिप्ट डाउनलोड करत आहे...</translation>
 <translation id="3758842566811519622">कुकीज सेट केल्या</translation>
@@ -3810,6 +3812,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> <ph name="FOLDERNAME" /> मधील फाइल संपादित करू शकते</translation>
 <translation id="4470957202018033307">बाह्य स्टोरेज प्राधान्ये</translation>
 <translation id="4471354919263203780">स्पीच रेकग्निशन फाइल डाउनलोड करत आहे... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">तुम्ही तुमची प्राधान्य असलेली Google खाते भाषा वापरू शकता (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Chrome ची वैशिष्ट्ये आणि परफॉर्मन्स सुधारण्यात मदत करा</translation>
 <translation id="4472575034687746823">सुरुवात करा</translation>
 <translation id="4474155171896946103">सर्व टॅब बुकमार्क करा...</translation>
@@ -4540,7 +4543,6 @@
 <translation id="5158206172605340248">अ‍ॅक्सेंटच्या खुणांचा मेनू डिसमिस केला आहे.</translation>
 <translation id="5159094275429367735">Crostini सेट करा</translation>
 <translation id="5159419673777902220">तुमच्या पालकाने एक्स्टेंशन परवानग्या बंद केल्या आहेत</translation>
-<translation id="5159643365935452998">आपोआप डेटा क्लिअरिंगचे पुनरावलोकन करा</translation>
 <translation id="5160634252433617617">वास्तविक कीबोर्ड</translation>
 <translation id="5160857336552977725">आपल्या <ph name="DEVICE_TYPE" /> वर साइन इन करा</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> कडील USB डिव्हाइस</translation>
@@ -5015,6 +5017,7 @@
 <translation id="5600706100022181951">अपडेट <ph name="UPDATE_SIZE_MB" /> MB मोबाइल डेटा वापरून डाउनलोड केले जाईल. तुम्हाला सुरू ठेवायचे आहे का?</translation>
 <translation id="5601503069213153581">पिन</translation>
 <translation id="5601823921345337195">MIDI डिव्हाइसशी कनेक्ट करण्याची अनुमती नाही</translation>
+<translation id="5601833336918638013">साइटना ब्लूटूथ डिव्हाइस शोधण्याची अनुमती देऊ नका</translation>
 <translation id="5602765853043467355">या डिव्हाइसमधून बुकमार्क, इतिहास, पासवर्ड आणि बरेच काही साफ करा</translation>
 <translation id="5605758115928394442">ते तुम्हीच आहात हे निश्चित करण्यासाठी तुमच्या फोनवर सूचना पाठवली होती.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{हे एक्स्टेंशन ब्लॉक केले आहे}other{ही एक्स्टेंशन ब्लॉक केली आहेत}}</translation>
@@ -6473,6 +6476,7 @@
 <translation id="6960507406838246615">Linux अपडेट करण्याची आवश्यकता आहे</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> च्या स्पीच फाइल डाउनलोड करता आल्या नाहीत. नंतर डाउनलोड करण्याचा प्रयत्न केला जाईल. डाउनलोड पूर्ण होईपर्यंत प्रक्रिया करण्यासाठी स्पीच Google ला पाठवली आहे.</translation>
 <translation id="696103774840402661">या <ph name="DEVICE_TYPE" /> वरील सर्व वापरकर्त्यांसाठी सर्व फाइल आणि स्थानिक डेटा कायमचा हटवला गेला आहे.</translation>
+<translation id="6961327401577924850">कमी ऊर्जेचे बीकन, आरोग्य किंवा फिटनेस ट्रॅकर अथवा स्मार्ट लाइट बल्ब सेट करणे किंवा सिंक करणे यांसारख्या वैशिष्ट्यांसाठी साइट सामान्यपणे ब्लूटूथ डिव्‍हाइस शोधतात</translation>
 <translation id="6963872466817251924">मजकूर कर्सर हायलाइटर</translation>
 <translation id="6964390816189577014">नायक</translation>
 <translation id="6964760285928603117">गटामधून काढून टाका</translation>
@@ -6749,6 +6753,7 @@
 <translation id="7227458944009118910">खाली सूचीबद्ध केलेली ॲप्स ही प्रोटोकॉल लिंकदेखील हाताळू शकतात. इतर ॲप्स परवानगीची विनंती करतील.</translation>
 <translation id="7228056665272655255">फिंगरप्रिंट सेट करण्यासाठी, तुमच्या लहान मुलाला कीबोर्डच्या सर्वात वरच्या उजव्या कोपऱ्यातील फिंगरप्रिंट सेन्सरला स्पर्श करण्यास सांगा. तुमच्या लहान मुलाचा फिंगरप्रिंट डेटा सुरक्षितपणे स्टोअर केला जातो आणि तो या <ph name="DEVICE_TYPE" /> मध्येच राहतो.</translation>
 <translation id="7228523857728654909">स्क्रीन लॉक आणि साइन इन</translation>
+<translation id="7228854227189381547">स्विच करू नका</translation>
 <translation id="7230222852462421043">&amp;विंडो रिस्टोअर करा</translation>
 <translation id="7231260028442989757">तुमच्या फोनमधील सूचना पहा, डिसमिस करा आणि उत्तर द्या</translation>
 <translation id="7232750842195536390">नाव बदलण्यात अयशस्वी</translation>
@@ -7082,6 +7087,7 @@
 <translation id="7545466883021407599">सर्व्हरशी कनेक्ट करता आले नाही. तुमचे नेटवर्क कनेक्शन तपासा आणि पुन्हा प्रयत्न करा. तुम्हाला तरीही समस्या येत असल्यास, तुमचे Chromebook रीस्टार्ट करून पाहा. एरर कोड: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">चेतावणी: तुमची <ph name="PRODUCT_NAME" /> सेटिंग्ज एका नेटवर्क ड्राइव्हवर संचयित करण्यात आली आहेत. यामुळे वेग मंदावणे, क्रॅश किंवा डेटा गमावणे हे परिणाम देखील होऊ शकतात.</translation>
 <translation id="7548856833046333824">लेमोनेड</translation>
+<translation id="7549434883223124329">डिव्हाइस भाषा स्विच करायची का?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> डाउनलोड करणे अयशस्वी</translation>
 <translation id="7551643184018910560">शेल्फवर पिन करा</translation>
@@ -8106,6 +8112,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> ला रन करण्यासाठी तुमची परवानगी आवश्यक आहे.</translation>
 <translation id="8466417995783206254">हा टॅब चित्रात-चित्र मोडमध्ये व्हिडिओ प्ले करत आहे.</translation>
 <translation id="8467326454809944210">दुसरी भाषा निवडा</translation>
+<translation id="8468087214092422866">ब्लूटूथ डिव्हाइस शोधण्याची अनुमती नाही</translation>
 <translation id="8470513973197838199"><ph name="ORIGIN" /> साठी सेव्ह केलेले पासवर्ड</translation>
 <translation id="8471525937465764768">दस्तऐवज प्रिंट करणे किंवा स्टोरेज डिव्हाइसमध्ये सेव्ह करणे यांसारख्या वैशिष्ट्यांसाठी साइट सामान्यपणे USB डिव्हाइसशी कनेक्ट करतात</translation>
 <translation id="8471959340398751476">सवलती बंद आहेत. तुम्ही कस्टमाइझ करा मेनूमधून त्या सुरू करू शकता</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 4c372a41..8c8a30ec3f 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -4543,7 +4543,6 @@
 <translation id="5158206172605340248">Menu tanda aksen diketepikan.</translation>
 <translation id="5159094275429367735">Sediakan Crostini</translation>
 <translation id="5159419673777902220">Ibu bapa anda telah melumpuhkan kebenaran sambungan</translation>
-<translation id="5159643365935452998">Semak pengosongan data automatik</translation>
 <translation id="5160634252433617617">Papan kekunci fizikal</translation>
 <translation id="5160857336552977725">Log masuk ke <ph name="DEVICE_TYPE" /> anda</translation>
 <translation id="5161251470972801814">Peranti USB daripada <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index b3cbec5..6fc08104 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -4540,7 +4540,6 @@
 <translation id="5158206172605340248">ဖိရွတ်သံအမှတ်အသားမီနူး ပိတ်လိုက်ပြီ။</translation>
 <translation id="5159094275429367735">Crostini စနစ် ထည့်သွင်းရန်</translation>
 <translation id="5159419673777902220">နောက်ဆက်တွဲခွင့်ပြုချက်များကို သင့်မိဘက ပိတ်ထားသည်</translation>
-<translation id="5159643365935452998">အလိုအလျောက် ဒေတာရှင်းလင်းခြင်းကို သုံးသပ်ခြင်း</translation>
 <translation id="5160634252433617617">စက်၏ ကီးဘုတ်</translation>
 <translation id="5160857336552977725">သင့်<ph name="DEVICE_TYPE" /> သို့ လက်မှတ်ထိုးဝင်ရန်</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> မှ USB ကိရိယာများ</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 3a0e517..a8833ace 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -1234,6 +1234,7 @@
 <translation id="2104166991923847969">हटस्पट स्वतः अफ गरियोस्</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> वटा कन्सोल म्यासेज लुकाइएका छन्</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{फोन नम्बर}other{# वटा फोन नम्बर}}</translation>
+<translation id="2110941575868943054">ब्लुटुथ डिभाइसहरू खोज्ने अनुमति दिइएका साइटहरू</translation>
 <translation id="211144231511833662">प्रकारहरू हटाउनुहोस्</translation>
 <translation id="2111670510994270194">दायाँपट्टि नयाँ ट्याब</translation>
 <translation id="2112554630428445878">स्वागत छ, <ph name="USERNAME" /></translation>
@@ -3026,6 +3027,7 @@
 <translation id="3756485814916578707">स्क्रिन कास्ट गरिँदै छ</translation>
 <translation id="3756578970075173856">PIN सेट गर्नुहोस्</translation>
 <translation id="3756795331760037744"><ph name="SUPERVISED_USER_NAME" /> लाई मद्दत गर्ने प्रयोजनका लागि Google सहायकलाई उनको डिभाइसको स्क्रिनमा भएको जानकारी प्रयोग गर्ने अनुमति दिनुहोस्</translation>
+<translation id="3756806135608816820">साइटहरूले ब्लुटुथ डिभाइसहरू खोज्ने अनुमति माग्न सक्छन्</translation>
 <translation id="3757733214359997190">कुनै पनि साइट फेला परेन</translation>
 <translation id="375841316537350618">प्रोक्सी स्क्रिप्ट डाउनलोड गर्दै....</translation>
 <translation id="3758842566811519622">कुकीहरू सेट गरियो</translation>
@@ -3795,6 +3797,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> ले <ph name="FOLDERNAME" /> मा फाइल सम्पादन गर्न सक्ने छ</translation>
 <translation id="4470957202018033307">बाह्य भण्डारणसम्बन्धी प्राथमिकताहरू</translation>
 <translation id="4471354919263203780">वाक् पहिचान गर्न प्रयोग गरिने फाइलहरू डाउनलोड गरिँदै... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">तपाईं आफ्नो रोजाइको भाषा (<ph name="NEW_LOCALE_FROM_GAIA" />) मा Google खाता प्रयोग गर्न सक्नुहुन्छ</translation>
 <translation id="447252321002412580">Chrome का सुविधा तथा कार्यसम्पादन सुधार्न मद्दत गर्नुहोस्</translation>
 <translation id="4472575034687746823">सुरु गर्नुहोस्</translation>
 <translation id="4474155171896946103">सबै ट्याबहरूलाई बुकमार्क गर्नुहोस्...</translation>
@@ -4524,7 +4527,6 @@
 <translation id="5158206172605340248">एक्सेन्ट चिन्हहरूको मेनु खारेज गरिएको छ।</translation>
 <translation id="5159094275429367735">Crostini सेटअप गर्नुहोस्</translation>
 <translation id="5159419673777902220">तपाईंका अभिभावकले तपाईंलाई एक्स्टेन्सन प्रयोग गर्ने अनुमति दिनुभएको छैन</translation>
-<translation id="5159643365935452998">डेटा स्वतः मेटाउने सुविधाको समीक्षा गर्नुहोस्</translation>
 <translation id="5160634252433617617">भौतिक किबोर्ड</translation>
 <translation id="5160857336552977725">तपाईँको <ph name="DEVICE_TYPE" /> मा साइन इन गर्नुहोस्</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> का USB डिभाइसहरू</translation>
@@ -4999,6 +5001,7 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> एम. बि. मोबाइल डेटा प्रयोग गरेर अद्यावधिक डाउनलोड गरिने छ। तपाईं जारी राख्न चाहनुहुन्छ?</translation>
 <translation id="5601503069213153581">पिन</translation>
 <translation id="5601823921345337195">MIDI यन्त्रहरूमा कनेक्ट गर्न अनुमति नदिइएका साइटहरू</translation>
+<translation id="5601833336918638013">साइटहरूलाई ब्लुटुथ डिभाइसहरू खोज्ने अनुमति नदिइयोस्</translation>
 <translation id="5602765853043467355">यो यन्त्रबाट पुस्तक चिन्ह, इतिहास, पासवर्ड र थप कुराहरू खाली गर्नुहोस्</translation>
 <translation id="5605758115928394442">यो व्यक्ति तपाईं नै हो भन्ने सुनिश्चित गर्न तपाईंको फोनमा एउटा सूचना पठाइयो।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{यो एक्स्टेन्सन ब्लक गरिएको छ}other{यी एक्स्टेन्सन ब्लक गरिएका छन्}}</translation>
@@ -6455,6 +6458,7 @@
 <translation id="6960507406838246615">Linux अपडेट गर्न आवश्यक छ</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> भाषाका वाक् पहिचानसम्बन्धी फाइलहरू डाउनलोड गर्न सकिएन। पछि डाउनलोड गर्ने प्रयास गरिने छ। डाउनलोड गर्ने कार्य पूरा नहुँदासम्म बोलिएको कुरा प्रोसेस गर्नका निम्ति Google मा पठाइन्छ।</translation>
 <translation id="696103774840402661">यो <ph name="DEVICE_TYPE" /> का सबै प्रयोगकर्ताका सबै फाइल तथा स्थानीय डेटा सदाका लागि मेटाइएका छन्।</translation>
+<translation id="6961327401577924850">साइटहरूले कम ऊर्जा खपत गर्ने बिकन, हेल्थ वा फिटनेस ट्र्याकर वा स्मार्ट चिम सेटअप वा सिंक गर्ने जस्ता सुविधाहरू प्रदान गर्न सामान्यतया ब्लुटुथ डिभाइसहरू खोज्छन्</translation>
 <translation id="6963872466817251924">टेक्स्ट कर्सर हाइलाइटर</translation>
 <translation id="6964390816189577014">नायक</translation>
 <translation id="6964760285928603117">समूहबाट हटाउनुहोस्</translation>
@@ -6731,6 +6735,7 @@
 <translation id="7227458944009118910">तल सूचीबद्ध गरिएका एपहरूले प्रोटोकल लिंक पनि खोल्न सक्छन्। अन्य एपहरूले भने ती लिंक खोल्ने अनुमति माग्ने छन्।</translation>
 <translation id="7228056665272655255">तपाईं आफ्ना बच्चाको फिंगरप्रिन्ट सेटअप गर्न चाहनुहुन्छ भने उनलाई किबोर्डको सिरानको दायाँ कुनामा रहेको फिंगरप्रिन्ट सेन्सरमा छुन लगाउनुहोस्। तपाईंका बच्चाको फिंगरप्रिन्ट डेटा सुरक्षित रूपमा भण्डारण गरिन्छ र यो डेटा कहिल्यै पनि यस <ph name="DEVICE_TYPE" /> बाट अन्यत्र पठाइँदैन।</translation>
 <translation id="7228523857728654909">स्क्रिन लक तथा साइन इन</translation>
+<translation id="7228854227189381547">फोन नबदल्नुहोस्</translation>
 <translation id="7230222852462421043">&amp;विन्डो रिस्टोर गर्नुहोस्</translation>
 <translation id="7231260028442989757">आफ्नो फोनमा प्राप्त भएका सूचनाहरू हेर्नुहोस् र हटाउनुहोस्। साथै, ती सूचनाको जवाफ पठाउनुहोस्</translation>
 <translation id="7232750842195536390">पुनः नामकरण गर्न सकिएन</translation>
@@ -7064,6 +7069,7 @@
 <translation id="7545466883021407599">सर्भरमा कनेक्ट गर्न सकिएन। आफ्नो इन्टरनेट कनेक्सन जाँच्नुहोस् र फेरि प्रयास गर्नुहोस्। तपाईंलाई अझै पनि साइन इन गर्न समस्या भइरहेको छ भने आफ्नो Chromebook रिस्टार्ट गरी हेर्नुहोस्। त्रुटिको कोड: <ph name="ERROR_CODE" />।</translation>
 <translation id="7547317915858803630">चेतावनी: तपाईंको <ph name="PRODUCT_NAME" /> सेटिङहरू नेटवर्क ड्राइभमा बचत गरिएको छन् । यसले ढिलो गराउन, दुर्घटना वा डाटाको नोक्सान हुन सक्छ ।</translation>
 <translation id="7548856833046333824">लेमोनेड</translation>
+<translation id="7549434883223124329">डिभाइसको भाषा बदल्ने हो?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> डाउनलोड असफल</translation>
 <translation id="7551643184018910560">शेल्फमा पिन गर्नुहोस्</translation>
@@ -8089,6 +8095,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> सञ्चालन गर्नका लागि तपाईंको अनुमति चाहिन्छ</translation>
 <translation id="8466417995783206254">यो ट्याबले picture-in-picture मोडमा भिडियो प्ले गर्दै छ।</translation>
 <translation id="8467326454809944210">अर्को भाषा छनौट गर्नुहोस्</translation>
+<translation id="8468087214092422866">ब्लुटुथ डिभाइसहरू खोज्ने अनुमति नदिइएका साइटहरू</translation>
 <translation id="8470513973197838199"><ph name="ORIGIN" /> का सुरक्षित गरिएका पासवर्डहरू</translation>
 <translation id="8471525937465764768">साइटहरूले डकुमेन्ट प्रिन्ट गर्ने वा भण्डारण यन्त्रमा सुरक्षित गर्ने जस्ता सुविधाहरू प्रदान गर्न सामान्यतया USB मा कनेक्ट गर्छन्।</translation>
 <translation id="8471959340398751476">छुटसम्बन्धी जानकारी प्राप्त गर्ने सुविधा अफ गरिएको छ। तपाईं 'आफूले चाहेको जस्तो बनाउनुहोस्' नामक मेनुमा गएर यो सुविधा अन गर्न सक्नुहुन्छ</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 83a73a15..33ce11fa 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -1237,6 +1237,7 @@
 <translation id="2104166991923847969">Hotspot automatisch uitzetten</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> is verborgen</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Telefoonnummer}other{# telefoonnummers}}</translation>
+<translation id="2110941575868943054">Toestemming om naar bluetooth-apparaten te zoeken</translation>
 <translation id="211144231511833662">Typen wissen</translation>
 <translation id="2111670510994270194">Nieuw tabblad aan de rechterkant</translation>
 <translation id="2112554630428445878">Welkom, <ph name="USERNAME" /></translation>
@@ -3028,6 +3029,7 @@
 <translation id="3756485814916578707">Scherm casten</translation>
 <translation id="3756578970075173856">Pincode instellen</translation>
 <translation id="3756795331760037744">Toestaan dat de Google Assistent informatie op het scherm van <ph name="SUPERVISED_USER_NAME" /> gebruikt om te helpen</translation>
+<translation id="3756806135608816820">Sites kunnen vragen of ze naar bluetooth-apparaten mogen zoeken</translation>
 <translation id="3757733214359997190">Geen sites gevonden</translation>
 <translation id="375841316537350618">Proxyscript downloaden...</translation>
 <translation id="3758842566811519622">Cookies ingesteld</translation>
@@ -3797,6 +3799,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> kan bestanden bewerken in <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Voorkeuren voor externe opslag</translation>
 <translation id="4471354919263203780">Bestanden voor spraakherkenning downloaden... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Je kunt de voorkeurstaal van je Google-account gebruiken (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Help de functies en prestaties van Chrome verbeteren</translation>
 <translation id="4472575034687746823">Aan de slag</translation>
 <translation id="4474155171896946103">Bookmark toevoegen aan alle tabbladen...</translation>
@@ -4525,7 +4528,6 @@
 <translation id="5158206172605340248">Menu met accenttekens is gesloten.</translation>
 <translation id="5159094275429367735">Crostini instellen</translation>
 <translation id="5159419673777902220">Je ouder heeft extensierechten uitgezet</translation>
-<translation id="5159643365935452998">Instellingen bekijken voor automatisch gegevens wissen</translation>
 <translation id="5160634252433617617">Fysiek toetsenbord</translation>
 <translation id="5160857336552977725">Log in bij je <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB-apparaten van <ph name="VENDOR_NAME" /></translation>
@@ -5000,6 +5002,7 @@
 <translation id="5600706100022181951">De update wordt gedownload met <ph name="UPDATE_SIZE_MB" /> MB mobiele data. Wil je doorgaan?</translation>
 <translation id="5601503069213153581">Pincode</translation>
 <translation id="5601823921345337195">Geen toestemming om verbinding te maken met MIDI-apparaten</translation>
+<translation id="5601833336918638013">Niet toestaan dat sites naar bluetooth-apparaten zoeken</translation>
 <translation id="5602765853043467355">Bookmarks, geschiedenis, wachtwoorden en meer wissen van dit apparaat</translation>
 <translation id="5605758115928394442">Er is een melding naar je telefoon verstuurd om te bevestigen dat jij het bent.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Deze extensie is geblokkeerd}other{Deze extensies zijn geblokkeerd}}</translation>
@@ -6452,6 +6455,7 @@
 <translation id="6960507406838246615">Linux-update vereist</translation>
 <translation id="6960648667961844909">Kan spraakbestanden in het <ph name="LANGUAGE" /> niet downloaden. Download wordt later geprobeerd. Spraak wordt naar Google gestuurd voor verwerking totdat de download klaar is.</translation>
 <translation id="696103774840402661">Alle bestanden en lokale gegevens voor alle gebruikers op deze <ph name="DEVICE_TYPE" /> zijn definitief verwijderd.</translation>
+<translation id="6961327401577924850">Sites zoeken meestal naar bluetooth-apparaten voor functies zoals het instellen of synchroniseren van een Bluetooth Low Energy-beacon, een gezondheids- of fitnesstracker, of een smartlamp</translation>
 <translation id="6963872466817251924">Tekstcursor markeren</translation>
 <translation id="6964390816189577014">Held</translation>
 <translation id="6964760285928603117">Uit groep verwijderen</translation>
@@ -6728,6 +6732,7 @@
 <translation id="7227458944009118910">Hieronder vermelde apps kunnen ook protocollinks verwerken. Andere apps vragen om toestemming.</translation>
 <translation id="7228056665272655255">Als je een vingerafdruk wilt instellen, laat je je kind de vingerafdruksensor rechtsboven op het toetsenbord aanraken. De vingerafdrukgegevens van je kind worden beveiligd opgeslagen en blijven uitsluitend op deze <ph name="DEVICE_TYPE" /> staan.</translation>
 <translation id="7228523857728654909">Schermvergrendeling en inloggen</translation>
+<translation id="7228854227189381547">Niet overschakelen</translation>
 <translation id="7230222852462421043">Venste&amp;r herstellen</translation>
 <translation id="7231260028442989757">Bekijk, sluit en beantwoord meldingen van je telefoon</translation>
 <translation id="7232750842195536390">Kan naam niet wijzigen</translation>
@@ -7061,6 +7066,7 @@
 <translation id="7545466883021407599">Kan geen verbinding maken met de server. Check je netwerkverbinding en probeer het opnieuw. Als je nog steeds problemen ondervindt, start je de Chromebook opnieuw op. Foutcode: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Waarschuwing: je instellingen voor <ph name="PRODUCT_NAME" /> zijn opgeslagen op een netwerkschijf. Dit kan leiden tot vertragingen, crashes of zelfs gegevensverlies.</translation>
 <translation id="7548856833046333824">Cocktail</translation>
+<translation id="7549434883223124329">Taal van apparaat wijzigen?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> is gedownload</translation>
 <translation id="7551643184018910560">Vastzetten op plank</translation>
@@ -8085,6 +8091,7 @@
 <translation id="8465444703385715657">Voor het uitvoeren van <ph name="PLUGIN_NAME" /> is je toestemming nodig</translation>
 <translation id="8466417995783206254">De video op dit tabblad wordt afgespeeld in de scherm-in-scherm-modus.</translation>
 <translation id="8467326454809944210">Een andere taal kiezen</translation>
+<translation id="8468087214092422866">Geen toestemming om naar bluetooth-apparaten te zoeken</translation>
 <translation id="8470513973197838199">Opgeslagen wachtwoorden voor <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Sites maken meestal verbinding met USB-apparaten voor functies zoals het afdrukken van een document of opslaan naar een opslagapparaat</translation>
 <translation id="8471959340398751476">Kortingen staan uit. Je kunt ze aanzetten via het menu Aanpassen.</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index a80bf630..c02c87c4 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -1243,6 +1243,7 @@
 <translation id="2104166991923847969">Slå av wifi-sonen automatisk</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> er skjult</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Telefonnummer}other{# telefonnumre}}</translation>
+<translation id="2110941575868943054">Nettsteder som har lov til å se etter Bluetooth-enheter</translation>
 <translation id="211144231511833662">Nullstill typer</translation>
 <translation id="2111670510994270194">Ny fane til høyre</translation>
 <translation id="2112554630428445878">Velkommen, <ph name="USERNAME" /></translation>
@@ -3037,6 +3038,7 @@
 <translation id="3756485814916578707">Caster skjermen</translation>
 <translation id="3756578970075173856">Angi PIN-kode</translation>
 <translation id="3756795331760037744">La Google-assistenten bruke informasjon på skjermen til <ph name="SUPERVISED_USER_NAME" /> for å hjelpe</translation>
+<translation id="3756806135608816820">Nettsteder kan be om å få se etter Bluetooth-enheter</translation>
 <translation id="3757733214359997190">Fant ingen nettsteder</translation>
 <translation id="375841316537350618">Laster ned mellomtjenerskript ...</translation>
 <translation id="3758842566811519622">Informasjonskapsler er angitt</translation>
@@ -3805,6 +3807,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> kan redigere filer i <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Innstillinger for ekstern lagring</translation>
 <translation id="4471354919263203780">Laster ned filer for talegjenkjenning … <ph name="PERCENT" /> %</translation>
+<translation id="4472298120638043495">Du kan bruke det foretrukne språket for Google-kontoen din (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Hjelp til med å forbedre funksjonene og ytelsen til Chrome</translation>
 <translation id="4472575034687746823">Kom i gang</translation>
 <translation id="4474155171896946103">Bokmerk alle fanene</translation>
@@ -4534,7 +4537,6 @@
 <translation id="5158206172605340248">Menyen med aksenttegn er lukket.</translation>
 <translation id="5159094275429367735">Konfigurer Crostini</translation>
 <translation id="5159419673777902220">Forelderen din har slått av utvidelsestillatelser</translation>
-<translation id="5159643365935452998">Gjennomgå automatisk datasletting</translation>
 <translation id="5160634252433617617">Fysisk tastatur</translation>
 <translation id="5160857336552977725">Logg på <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB-enheter fra <ph name="VENDOR_NAME" /></translation>
@@ -5008,6 +5010,7 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB mobildata blir brukt under nedlastingen av oppdateringen. Vil du fortsette?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Nettsteder som ikke har lov til å koble til MIDI-enheter</translation>
+<translation id="5601833336918638013">Ikke la nettsteder se etter Bluetooth-enheter</translation>
 <translation id="5602765853043467355">Slett bokmerker, logger, passord og annet fra denne enheten</translation>
 <translation id="5605758115928394442">Vi har sendt et varsel til telefonen din for å bekrefte at det er deg.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Denne utvidelsen er blokkert}other{Disse utvidelsene er blokkert}}</translation>
@@ -6465,6 +6468,7 @@
 <translation id="6960507406838246615">Linux-oppdatering kreves</translation>
 <translation id="6960648667961844909">Kunne ikke laste ned talefiler for <ph name="LANGUAGE" />. Vi forsøker å laste ned filene senere. Tale blir sendt til Google for behandling frem til nedlastingen er fullført.</translation>
 <translation id="696103774840402661">Alle filer og lokale data for alle brukerne på denne <ph name="DEVICE_TYPE" />-enheten er slettet permanent.</translation>
+<translation id="6961327401577924850">Nettsteder ser vanligvis etter Bluetooth-enheter for å kunne tilby funksjoner som å konfigurere eller synkronisere lavenergi-beacons, helse- eller treningsarmbånd eller smartlyspærer</translation>
 <translation id="6963872466817251924">Tekstmarkørfremheving</translation>
 <translation id="6964390816189577014">Helt</translation>
 <translation id="6964760285928603117">Fjern fra gruppen</translation>
@@ -6741,6 +6745,7 @@
 <translation id="7227458944009118910">Appene som er oppført nedenfor, kan også håndtere protokoll-linker. Andre apper kommer til å be om tillatelse.</translation>
 <translation id="7228056665272655255">For å konfigurere fingeravtrykk, få barnet ditt til å trykke på fingeravtrykkssensoren øverst til høyre på tastaturet. Barnets fingeravtrykksdata lagres sikkert og sendes aldri fra <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Skjermlås og pålogging</translation>
+<translation id="7228854227189381547">Ikke bytt</translation>
 <translation id="7230222852462421043">&amp;Gjenopprett vindu</translation>
 <translation id="7231260028442989757">Se, skjul og svar på varsler fra telefonen</translation>
 <translation id="7232750842195536390">Navneendringen mislyktes</translation>
@@ -7074,6 +7079,7 @@
 <translation id="7545466883021407599">Kunne ikke koble til tjeneren. Kontroller nettverkstilkoblingen og prøv på nytt. Hvis du fremdeles har problemer, kan du prøve å starte Chromebook på nytt. Feilkode: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Advarsel: <ph name="PRODUCT_NAME" />-innstillingene dine lagres på en nettverksdisk. Dette kan forårsake forsinkelser, krasjer og til og med tap av data.</translation>
 <translation id="7548856833046333824">Limonade</translation>
+<translation id="7549434883223124329">Vil du bytte enhetsspråk?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> ble ikke lastet ned</translation>
 <translation id="7551643184018910560">Fest til hyllen</translation>
@@ -8100,6 +8106,7 @@
 <translation id="8465444703385715657">Du må gi tillatelse for at <ph name="PLUGIN_NAME" /> skal kunne kjøre</translation>
 <translation id="8466417995783206254">Denne fanen spiller av en video i bilde-i-bilde-modus.</translation>
 <translation id="8467326454809944210">Velg et annet språk</translation>
+<translation id="8468087214092422866">Nettsteder som ikke har lov til å se etter Bluetooth-enheter</translation>
 <translation id="8470513973197838199">Lagrede passord for <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Nettsteder kobler vanligvis til USB-enheter for å kunne tilby funksjoner som å skrive ut dokumenter eller lagre filer på lagringsenheter</translation>
 <translation id="8471959340398751476">Rabatter er avslått. Du kan slå dem på i tilpasningsmenyen</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 090c2f51..74874db 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -4525,7 +4525,6 @@
 <translation id="5158206172605340248">ଆସେଣ୍ଟ ମାର୍କ ମେନୁକୁ ଖାରଜ କରାଯାଇଛି।</translation>
 <translation id="5159094275429367735">Crostini ସେଟ୍ ଅପ୍ କରନ୍ତୁ</translation>
 <translation id="5159419673777902220">ଆପଣଙ୍କ ବାପାମା ଏକ୍ସଟେନସନ୍ ଅନୁମତିଗୁଡ଼ିକ ଅକ୍ଷମ କରିଛନ୍ତି</translation>
-<translation id="5159643365935452998">ସ୍ୱଚାଳିତ ଡାଟା କ୍ଲିୟରିଂର ସମୀକ୍ଷା କରନ୍ତୁ</translation>
 <translation id="5160634252433617617">ଫିଜିକାଲ୍ କୀବୋର୍ଡ</translation>
 <translation id="5160857336552977725">ଆପଣଙ୍କ <ph name="DEVICE_TYPE" />ରେ ସାଇନ୍‌ ଇନ୍‌ କରନ୍ତୁ</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" />ରୁ USB ଡିଭାଇସଗୁଡ଼ିକ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 54590039..3cda906 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -4543,7 +4543,6 @@
 <translation id="5158206172605340248">ਐਕਸੈਂਟ ਚਿੰਨ੍ਹ ਮੀਨੂ ਖਾਰਜ ਕੀਤਾ ਗਿਆ।</translation>
 <translation id="5159094275429367735">Crostini ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ</translation>
 <translation id="5159419673777902220">ਤੁਹਾਡੇ ਮਾਂ-ਪਿਓ ਨੇ ਐਕਸਟੈਂਸ਼ਨ ਸੰਬੰਧੀ ਇਜਾਜ਼ਤਾਂ ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ</translation>
-<translation id="5159643365935452998">ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਡਾਟਾ ਕਲੀਅਰ ਕਰਨ ਦੀ ਸਮੀਖਿਆ ਕਰੋ</translation>
 <translation id="5160634252433617617">ਭੌਤਿਕ ਕੀ-ਬੋਰਡ</translation>
 <translation id="5160857336552977725">ਆਪਣੇ <ph name="DEVICE_TYPE" /> 'ਤੇ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> ਦੇ USB ਡੀਵਾਈਸ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 2c640ba..69327987 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -4517,7 +4517,6 @@
 <translation id="5158206172605340248">Menu znaków akcentu zostało zamknięte.</translation>
 <translation id="5159094275429367735">Skonfiguruj Crostini</translation>
 <translation id="5159419673777902220">Uprawnienia rozszerzenia wyłączył rodzic</translation>
-<translation id="5159643365935452998">Sprawdź ustawienia automatycznego usuwania danych</translation>
 <translation id="5160634252433617617">Klawiatura fizyczna</translation>
 <translation id="5160857336552977725">Zaloguj się na urządzeniu <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Urządzenia USB firmy <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index dd23dba..62b642a 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -1250,6 +1250,7 @@
 <translation id="2104166991923847969">Desativar ponto de acesso automaticamente</translation>
 <translation id="2105809836724866556">Módulo "<ph name="MODULE_TITLE" />" oculto</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Número de telefone}one{# número de telefone}other{# números de telefone}}</translation>
+<translation id="2110941575868943054">Com permissão para procurar dispositivos Bluetooth</translation>
 <translation id="211144231511833662">Limpar tipos</translation>
 <translation id="2111670510994270194">Nova guia à direita</translation>
 <translation id="2112554630428445878">Olá, <ph name="USERNAME" /></translation>
@@ -3045,6 +3046,7 @@
 <translation id="3756485814916578707">Transmitindo tela</translation>
 <translation id="3756578970075173856">Definir PIN</translation>
 <translation id="3756795331760037744">Permita que o Google Assistente use as informações na tela de <ph name="SUPERVISED_USER_NAME" /> para ajudar</translation>
+<translation id="3756806135608816820">Os sites podem pedir para procurar dispositivos Bluetooth</translation>
 <translation id="3757733214359997190">Nenhum site encontrado</translation>
 <translation id="375841316537350618">Fazendo o download do script de proxy...</translation>
 <translation id="3758842566811519622">Cookies definidos</translation>
@@ -3815,6 +3817,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> pode editar arquivos em <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Preferências de armazenamento externo</translation>
 <translation id="4471354919263203780">Fazendo o download dos arquivos de reconhecimento de fala… <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Você pode usar o idioma de sua preferência da Conta do Google (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Ajude a melhorar os recursos e o desempenho do Chrome</translation>
 <translation id="4472575034687746823">Vamos começar</translation>
 <translation id="4474155171896946103">Adicionar todas as guias aos favoritos...</translation>
@@ -4545,7 +4548,6 @@
 <translation id="5158206172605340248">Menu de acentos dispensado.</translation>
 <translation id="5159094275429367735">Configurar o Crostini</translation>
 <translation id="5159419673777902220">Seu familiar responsável desativou as permissões da extensão</translation>
-<translation id="5159643365935452998">Revisar a limpeza de dados automática</translation>
 <translation id="5160634252433617617">Teclado físico</translation>
 <translation id="5160857336552977725">Faça login no seu <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Dispositivos USB do <ph name="VENDOR_NAME" /></translation>
@@ -5020,6 +5022,7 @@
 <translation id="5600706100022181951">O download da atualização será feito com <ph name="UPDATE_SIZE_MB" /> MB de dados móveis. Quer continuar?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">Bloquear a conexão a dispositivos MIDI</translation>
+<translation id="5601833336918638013">Não permitir que os sites procurem dispositivos Bluetooth</translation>
 <translation id="5602765853043467355">Limpar favoritos, histórico, senhas e mais deste dispositivo.</translation>
 <translation id="5605758115928394442">Uma notificação foi enviada ao seu smartphone para confirmar sua identidade.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{A extensão está bloqueada}one{A extensão está bloqueada}other{As extensões estão bloqueadas}}</translation>
@@ -6480,6 +6483,7 @@
 <translation id="6960507406838246615">É necessário atualizar o Linux</translation>
 <translation id="6960648667961844909">Não foi possível fazer o download dos arquivos de fala em <ph name="LANGUAGE" />. O download será feito mais tarde. A fala será enviada ao Google para processamento até que o download seja concluído.</translation>
 <translation id="696103774840402661">Todos os arquivos e dados locais para todos os usuários neste <ph name="DEVICE_TYPE" /> foram excluídos permanentemente.</translation>
+<translation id="6961327401577924850">Os sites geralmente procuram dispositivos Bluetooth para recursos como a configuração ou sincronização de um sensor de baixa energia, um tracker de condicionamento físico e saúde ou uma lâmpada de iluminação inteligente</translation>
 <translation id="6963872466817251924">Destaque do cursor de texto</translation>
 <translation id="6964390816189577014">Hero</translation>
 <translation id="6964760285928603117">Remover do grupo</translation>
@@ -6756,6 +6760,7 @@
 <translation id="7227458944009118910">Os apps listados abaixo também podem processar links de protocolo. Outros apps solicitarão permissão.</translation>
 <translation id="7228056665272655255">Para configurar a impressão digital, peça para a criança tocar no sensor no canto superior direito do teclado. Os dados de impressão digital dela são armazenados de forma segura e nunca saem do <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Bloqueio de tela e login</translation>
+<translation id="7228854227189381547">Não trocar</translation>
 <translation id="7230222852462421043">&amp;Restaurar janela</translation>
 <translation id="7231260028442989757">Ver, dispensar e responder às notificações do smartphone</translation>
 <translation id="7232750842195536390">Falha na renomeação</translation>
@@ -7089,6 +7094,7 @@
 <translation id="7545466883021407599">Não foi possível se conectar ao servidor. Verifique sua conexão de rede e tente novamente. Se ainda assim tiver problemas, reinicie o Chromebook. Código do erro: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Aviso: as configurações do <ph name="PRODUCT_NAME" /> são armazenadas em um disco de rede. Isso pode acarretar lentidão, falhas ou até mesmo perda de dados.</translation>
 <translation id="7548856833046333824">Margarita</translation>
+<translation id="7549434883223124329">Trocar o idioma do dispositivo?</translation>
 <translation id="7550830279652415241">favoritos_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Falha no dowload de <ph name="FILE_NAME" /></translation>
 <translation id="7551643184018910560">Fixar na estante</translation>
@@ -8115,6 +8121,7 @@
 <translation id="8465444703385715657">O pulg-in <ph name="PLUGIN_NAME" /> precisa da sua permissão para ser executado</translation>
 <translation id="8466417995783206254">Esta guia está reproduzindo um vídeo em picture-in-picture.</translation>
 <translation id="8467326454809944210">Escolher outro idioma</translation>
+<translation id="8468087214092422866">Sem permissão para procurar dispositivos Bluetooth</translation>
 <translation id="8470513973197838199">Senhas salvas para <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Os sites geralmente se conectam a dispositivos USB para recursos como imprimir um documento ou salvar em um dispositivo de armazenamento</translation>
 <translation id="8471959340398751476">Os descontos estão desativados. Você pode ativá-los no menu de personalização</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 1756a81..6bdc52e 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -4531,7 +4531,6 @@
 <translation id="5158206172605340248">Menu de acentos ignorado.</translation>
 <translation id="5159094275429367735">Configurar Crostini</translation>
 <translation id="5159419673777902220">O teu pai ou mãe desativou as autorizações das extensões.</translation>
-<translation id="5159643365935452998">Analise a limpeza de dados automática</translation>
 <translation id="5160634252433617617">Teclado físico</translation>
 <translation id="5160857336552977725">Inicie sessão no <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Dispositivos USB de <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index a00f9812..16d1b8e8 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1238,6 +1238,7 @@
 <translation id="2104166991923847969">Dezactivează automat hotspotul</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> ascunse</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Număr de telefon}few{# numere de telefon}other{# de numere de telefon}}</translation>
+<translation id="2110941575868943054">Pot căuta dispozitive Bluetooth</translation>
 <translation id="211144231511833662">Șterge tipurile</translation>
 <translation id="2111670510994270194">Filă nouă la dreapta</translation>
 <translation id="2112554630428445878">Bun venit, <ph name="USERNAME" /></translation>
@@ -3029,6 +3030,7 @@
 <translation id="3756485814916578707">Se proiectează ecranul</translation>
 <translation id="3756578970075173856">Setează codul PIN</translation>
 <translation id="3756795331760037744">Permite Asistentului Google să folosească ecranul lui <ph name="SUPERVISED_USER_NAME" /> pentru a oferi ajutor</translation>
+<translation id="3756806135608816820">Site-urile pot solicita permisiunea de a căuta dispozitive Bluetooth</translation>
 <translation id="3757733214359997190">Nu a fost găsit niciun site</translation>
 <translation id="375841316537350618">Se descarcă scriptul pentru proxy...</translation>
 <translation id="3758842566811519622">Cookie-uri setate</translation>
@@ -3799,6 +3801,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> poate să modifice fișiere din <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Preferințe pentru stocarea externă</translation>
 <translation id="4471354919263203780">Se descarcă fișierele pentru recunoașterea vocală... <ph name="PERCENT" /> %</translation>
+<translation id="4472298120638043495">Poți folosi limba preferată pentru Contul Google (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Contribuie la îmbunătățirea funcțiilor și performanței Chrome</translation>
 <translation id="4472575034687746823">Începeți</translation>
 <translation id="4474155171896946103">Marchează toate filele...</translation>
@@ -4528,7 +4531,6 @@
 <translation id="5158206172605340248">S-a închis meniul cu semne diacritice pentru accent.</translation>
 <translation id="5159094275429367735">Configurează Crostini</translation>
 <translation id="5159419673777902220">Părintele tău a dezactivat permisiunile pentru extensii</translation>
-<translation id="5159643365935452998">Examinează opțiunea de ștergere automată a datelor</translation>
 <translation id="5160634252433617617">Tastatură fizică</translation>
 <translation id="5160857336552977725">Conectează-te la <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Dispozitive USB de la <ph name="VENDOR_NAME" /></translation>
@@ -5003,6 +5005,7 @@
 <translation id="5600706100022181951">Actualizarea va fi descărcată folosind <ph name="UPDATE_SIZE_MB" /> MB de date mobile Vrei să continui?</translation>
 <translation id="5601503069213153581">Cod PIN</translation>
 <translation id="5601823921345337195">Nu au permisiunea de a se conecta la dispozitive MIDI</translation>
+<translation id="5601833336918638013">Nu permite site-urilor să caute dispozitive Bluetooth</translation>
 <translation id="5602765853043467355">Șterge marcajele, istoricul, parolele și altele de pe acest dispozitiv</translation>
 <translation id="5605758115928394442">Ți s-a trimis o notificare pe telefon pentru a-ți confirma identitatea.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Extensia este blocată}few{Extensiile sunt blocate}other{Extensiile sunt blocate}}</translation>
@@ -6462,6 +6465,7 @@
 <translation id="6960507406838246615">Este necesară o actualizare Linux</translation>
 <translation id="6960648667961844909">Nu s-au putut descărca fișierele de redare în scris a vorbirii în <ph name="LANGUAGE" />. Se va încerca descărcarea mai târziu. Fișierele de redare în scris a vorbirii sunt trimise la Google pentru procesare până la finalizarea descărcării.</translation>
 <translation id="696103774840402661">Toate fișierele și datele locale pentru utilizatorii de pe acest <ph name="DEVICE_TYPE" /> au fost șterse definitiv.</translation>
+<translation id="6961327401577924850">Site-urile caută de obicei dispozitive Bluetooth pentru funcții cum ar fi configurarea sau sincronizarea unui semnalizator cu consum redus de energie, a unui tracker de sănătate sau fitness ori a unui bec inteligent</translation>
 <translation id="6963872466817251924">Evidențiator al cursorului pentru text</translation>
 <translation id="6964390816189577014">Erou</translation>
 <translation id="6964760285928603117">Elimină din grup</translation>
@@ -6738,6 +6742,7 @@
 <translation id="7227458944009118910">Și aplicațiile enumerate mai jos pot gestiona linkuri de protocol. Alte aplicații vor solicita permisiunea.</translation>
 <translation id="7228056665272655255">Pentru a configura amprenta, solicită-i copilului tău să atingă senzorul de amprentă în colțul din dreapta sus al tastaturii. Datele privind amprentele copilului sunt stocate în siguranță și nu părăsesc niciodată dispozitivul <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Blocarea ecranului și conectarea</translation>
+<translation id="7228854227189381547">Nu schimba</translation>
 <translation id="7230222852462421043">&amp;Restabilește fereastra</translation>
 <translation id="7231260028442989757">Afișează notificările telefonului, le respinge și răspunde la ele</translation>
 <translation id="7232750842195536390">Redenumirea nu a reușit</translation>
@@ -7071,6 +7076,7 @@
 <translation id="7545466883021407599">Nu s-a putut conecta la server. Verifică starea conexiunii la rețea și încearcă din nou. Dacă ai în continuare probleme, repornește Chromebookul. Cod de eroare: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Avertisment: setările <ph name="PRODUCT_NAME" /> sunt stocate pe o unitate de rețea, ceea ce poate duce la încetiniri, blocări sau chiar la pierderi de date.</translation>
 <translation id="7548856833046333824">Limonadă</translation>
+<translation id="7549434883223124329">Schimbi limba dispozitivului?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> a fost descărcat</translation>
 <translation id="7551643184018910560">Fixați în raft</translation>
@@ -8097,6 +8103,7 @@
 <translation id="8465444703385715657">Pluginul <ph name="PLUGIN_NAME" /> are nevoie de permisiunea ta pentru a rula</translation>
 <translation id="8466417995783206254">Această filă redă un videoclip în modul picture-in-picture.</translation>
 <translation id="8467326454809944210">Alege altă limbă</translation>
+<translation id="8468087214092422866">Nu au permisiunea de a căuta dispozitive Bluetooth</translation>
 <translation id="8470513973197838199">Parole salvate pentru <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Site-urile se conectează de obicei la dispozitive USB pentru funcții cum ar fi imprimarea unui document sau salvarea pe un dispozitiv de stocare</translation>
 <translation id="8471959340398751476">Reducerile sunt dezactivate. Le poți activa în meniul de personalizare</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 5839d448..d70f778 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -1239,6 +1239,7 @@
 <translation id="2104166991923847969">Автоматически отключать точку доступа</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> скрыты.</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Номер телефона}one{# номер телефона}few{# номера телефонов}many{# номеров телефонов}other{# номера телефона}}</translation>
+<translation id="2110941575868943054">Разрешено искать устройства Bluetooth</translation>
 <translation id="211144231511833662">Снять флажки типов</translation>
 <translation id="2111670510994270194">Новая вкладка справа</translation>
 <translation id="2112554630428445878">Здравствуйте, <ph name="USERNAME" />!</translation>
@@ -3030,6 +3031,7 @@
 <translation id="3756485814916578707">Трансляция экрана…</translation>
 <translation id="3756578970075173856">Установка PIN-кода</translation>
 <translation id="3756795331760037744">Разрешите Google Ассистенту использовать содержимое экрана на устройстве ребенка (<ph name="SUPERVISED_USER_NAME" />)</translation>
+<translation id="3756806135608816820">Сайты могут запрашивать разрешение на поиск устройств Bluetooth</translation>
 <translation id="3757733214359997190">Ничего не найдено.</translation>
 <translation id="375841316537350618">Скрипт прокси-сервера скачивается…</translation>
 <translation id="3758842566811519622">Файлы cookie записаны</translation>
@@ -4529,7 +4531,6 @@
 <translation id="5158206172605340248">Меню диакритических знаков закрыто.</translation>
 <translation id="5159094275429367735">Настроить Crostini</translation>
 <translation id="5159419673777902220">Кто-то из твоих родителей отключил разрешения для этого расширения</translation>
-<translation id="5159643365935452998">Автоматическое удаление данных</translation>
 <translation id="5160634252433617617">Физическая клавиатура</translation>
 <translation id="5160857336552977725">Войдите в аккаунт на устройстве <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB-устройства от поставщика "<ph name="VENDOR_NAME" />"</translation>
@@ -5004,6 +5005,7 @@
 <translation id="5600706100022181951">Чтобы скачать обновление, потребуется <ph name="UPDATE_SIZE_MB" /> МБ мобильного трафика. Продолжить?</translation>
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5601823921345337195">Запретить сайтам подключаться к MIDI-устройствам</translation>
+<translation id="5601833336918638013">Запретить сайтам поиск устройств Bluetooth</translation>
 <translation id="5602765853043467355">Удалить с устройства закладки, пароли, данные о работе в браузере и т. д.</translation>
 <translation id="5605758115928394442">На ваш телефон отправлено уведомление для подтверждения личности.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Это расширение заблокировано}one{Эти расширения заблокированы}few{Эти расширения заблокированы}many{Эти расширения заблокированы}other{Эти расширения заблокированы}}</translation>
@@ -6467,6 +6469,7 @@
 <translation id="6960507406838246615">Требуется обновление Linux</translation>
 <translation id="6960648667961844909">Не удалось скачать файлы для распознавания речи на следующем языке: <ph name="LANGUAGE" />. Повторная попытка будет выполнена позже. Пока скачивание не завершится, записи с речью будут передаваться для обработки в Google.</translation>
 <translation id="696103774840402661">Файлы и локальные данные всех пользователей будут удалены с этого устройства <ph name="DEVICE_TYPE" />.</translation>
+<translation id="6961327401577924850">Обычно сайты ищут устройства Bluetooth, чтобы настроить маячок, фитнес-трекер или умную лампочку, синхронизировать данные и т. д.</translation>
 <translation id="6963872466817251924">Выделение текстового курсора</translation>
 <translation id="6964390816189577014">Герой</translation>
 <translation id="6964760285928603117">Удалить из группы</translation>
@@ -8102,6 +8105,7 @@
 <translation id="8465444703385715657">Для работы плагина <ph name="PLUGIN_NAME" /> необходимо разрешение</translation>
 <translation id="8466417995783206254">На этой вкладке воспроизводится видео в режиме "Картинка в картинке".</translation>
 <translation id="8467326454809944210">Выбрать другой язык</translation>
+<translation id="8468087214092422866">Запрещено искать устройства Bluetooth</translation>
 <translation id="8470513973197838199">Сохраненные пароли для <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Обычно сайты подключаются к USB-устройствам, чтобы использовать некоторые функции, например печатать документы или сохранять данные на внешних накопителях.</translation>
 <translation id="8471959340398751476">Скидки отключены. Включить их можно в меню настройки.</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 9564e7d..b606f244 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -4532,7 +4532,6 @@
 <translation id="5158206172605340248">උච්චාරණ ලකුණු මෙනුව අස් කෙරිණි.</translation>
 <translation id="5159094275429367735">Crostini පිහිටුවන්න</translation>
 <translation id="5159419673777902220">ඔබේ මාපියන් විසින් දිගු අවසර අබල කර ඇත</translation>
-<translation id="5159643365935452998">ස්වයංක්‍රිය දත්ත හිස් කිරීම සමාලෝචනය කරන්න</translation>
 <translation id="5160634252433617617">භෞතික යතුරු පුවරුව</translation>
 <translation id="5160857336552977725">ඔබේ <ph name="DEVICE_TYPE" /> වෙත පුරන්න</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> වෙතින් USB උපාංග</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 96dd0a2..d8f775d 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1239,6 +1239,7 @@
 <translation id="2104166991923847969">Vypínať hotspot automaticky</translation>
 <translation id="2105809836724866556">Skryté: <ph name="MODULE_TITLE" /></translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Telefónne číslo}few{# telefónne čísla}many{# phone numbers}other{# telefónnych čísiel}}</translation>
+<translation id="2110941575868943054">Môžu vyhľadávať zariadenia s rozhraním Bluetooth</translation>
 <translation id="211144231511833662">Vymazať typy</translation>
 <translation id="2111670510994270194">Nová karta vpravo</translation>
 <translation id="2112554630428445878">Vitajte, <ph name="USERNAME" /></translation>
@@ -3030,6 +3031,7 @@
 <translation id="3756485814916578707">Prenáša sa obrazovka</translation>
 <translation id="3756578970075173856">Nastavenie kódu PIN</translation>
 <translation id="3756795331760037744">Povoľte Asistentovi Google pomáhať pomocou informácií na obrazovke dieťaťa <ph name="SUPERVISED_USER_NAME" /></translation>
+<translation id="3756806135608816820">Weby môžu žiadať o povolenie vyhľadávať zariadenia s rozhraním Bluetooth</translation>
 <translation id="3757733214359997190">Nenašli sa žiadne weby</translation>
 <translation id="375841316537350618">Sťahovanie skriptu servera proxy...</translation>
 <translation id="3758842566811519622">Boli nastavené súbory cookie</translation>
@@ -4529,7 +4531,6 @@
 <translation id="5158206172605340248">Ponuka s diakritickými znamienkami bola zavretá.</translation>
 <translation id="5159094275429367735">Nastaviť Crostini</translation>
 <translation id="5159419673777902220">Tvoj rodič deaktivoval povolenia rozšírenia</translation>
-<translation id="5159643365935452998">Skontrolujte automatické vymazávanie údajov</translation>
 <translation id="5160634252433617617">Fyzická klávesnica</translation>
 <translation id="5160857336552977725">Prihláste sa do svojho zariadenia <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Zariadenia USB od dodávateľa <ph name="VENDOR_NAME" /></translation>
@@ -5004,6 +5005,7 @@
 <translation id="5600706100022181951">Aktualizácia bude stiahnutá použitím <ph name="UPDATE_SIZE_MB" /> MB mobilných dát. Chcete pokračovať?</translation>
 <translation id="5601503069213153581">Kód PIN</translation>
 <translation id="5601823921345337195">Nemôže sa pripájať sa k zariadeniam MIDI</translation>
+<translation id="5601833336918638013">Nepovoliť webom vyhľadávať zariadenia s rozhraním Bluetooth</translation>
 <translation id="5602765853043467355">Vymazať záložky, históriu, heslá a ďalší obsah z tohto zariadenia</translation>
 <translation id="5605758115928394442">Do vášho telefónu bolo odoslané upozornenie, ktorým overíte, že ste to vy.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Toto rozšírenie je blokované}few{Tieto rozšírenia sú blokované}many{Tieto rozšírenia sú blokované}other{Tieto rozšírenia sú blokované}}</translation>
@@ -6465,6 +6467,7 @@
 <translation id="6960507406838246615">Vyžaduje sa aktualizácia systému Linux</translation>
 <translation id="6960648667961844909">Súbory s balíkmi reči <ph name="LANGUAGE" /> sa nepodarilo stiahnuť. K pokusu o stiahnutie dôjde neskôr. Než sa sťahovanie dokončí, reč sa odosiela na spracovanie Googlu.</translation>
 <translation id="696103774840402661">Všetky súbory a miestne údaje všetkých používateľov v tomto zariadení <ph name="DEVICE_TYPE" /> boli natrvalo odstránené.</translation>
+<translation id="6961327401577924850">Weby zvyčajne vyhľadávajú zariadenia s rozhraním Bluetooth, aby mohli poskytovať funkcie, ktoré napríklad umožňujú nastavovať alebo synchronizovať majáčiky s nízkou spotrebou energie, nástroje na sledovanie zdravia či kondície alebo žiarovky inteligentných svetiel</translation>
 <translation id="6963872466817251924">Zvýrazňovač textového kurzora</translation>
 <translation id="6964390816189577014">Hrdina</translation>
 <translation id="6964760285928603117">Odstrániť zo skupiny</translation>
@@ -8100,6 +8103,7 @@
 <translation id="8465444703385715657">Doplnok <ph name="PLUGIN_NAME" /> potrebuje na spustenie vaše povolenie</translation>
 <translation id="8466417995783206254">Táto karta prehráva video v režime obraz v obraze.</translation>
 <translation id="8467326454809944210">Vybrať iný jazyk</translation>
+<translation id="8468087214092422866">Nemôžu vyhľadávať zariadenia s rozhraním Bluetooth</translation>
 <translation id="8470513973197838199">Uložené heslá pre <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Weby sa zvyčajne pripájajú k zariadeniam USB, aby mohli poskytovať funkcie, ako tlač dokumentu alebo uloženie do zariadenia</translation>
 <translation id="8471959340398751476">Zľavy sú vypnuté. Môžete ich zapnúť v ponuke prispôsobenia.</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 12bbcf0..1981d55a 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -4546,7 +4546,6 @@
 <translation id="5158206172605340248">Meni z naglasnimi znamenji je opuščen.</translation>
 <translation id="5159094275429367735">Nastavitev Crostinija</translation>
 <translation id="5159419673777902220">Tvoj starš je onemogočil dovoljenja za razširitve</translation>
-<translation id="5159643365935452998">Pregled samodejnega brisanja podatkov</translation>
 <translation id="5160634252433617617">Fizična tipkovnica</translation>
 <translation id="5160857336552977725">Prijavite se v napravo <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Naprave USB ponudnika <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index a9c6afb..bb45b67f 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -4525,7 +4525,6 @@
 <translation id="5158206172605340248">Menyja e shenjave të theksimit u hoq.</translation>
 <translation id="5159094275429367735">Konfiguro Crostini</translation>
 <translation id="5159419673777902220">Prindi yt ka çaktivizuar lejet e shtesës</translation>
-<translation id="5159643365935452998">Rishiko pastrimin automatik të të dhënave</translation>
 <translation id="5160634252433617617">Tastiera fizike</translation>
 <translation id="5160857336552977725">Identifikohu në <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Pajisjet USB nga <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 6fd10a9..6fb9029f 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -4529,7 +4529,6 @@
 <translation id="5158206172605340248">Meni sa oznakama za akcenat je odbačen.</translation>
 <translation id="5159094275429367735">Podesite Crostini</translation>
 <translation id="5159419673777902220">Tvoj roditelj je onemogućio dozvole za dodatke</translation>
-<translation id="5159643365935452998">Pregledajte automatsko brisanje podataka</translation>
 <translation id="5160634252433617617">Fizička tastatura</translation>
 <translation id="5160857336552977725">Prijavite se na <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB uređaji prodavca <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 4c1575a..8fb4b1ef 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -4529,7 +4529,6 @@
 <translation id="5158206172605340248">Мени са ознакама за акценат је одбачен.</translation>
 <translation id="5159094275429367735">Подесите Crostini</translation>
 <translation id="5159419673777902220">Твој родитељ је онемогућио дозволе за додатке</translation>
-<translation id="5159643365935452998">Прегледајте аутоматско брисање података</translation>
 <translation id="5160634252433617617">Физичка тастатура</translation>
 <translation id="5160857336552977725">Пријавите се на <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB уређаји продавца <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 0fa1b2ad..dfcf0a72 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -4543,7 +4543,6 @@
 <translation id="5158206172605340248">Menyn för accenttecken har stängts.</translation>
 <translation id="5159094275429367735">Konfigurera Crostini</translation>
 <translation id="5159419673777902220">Din förälder har inaktiverat behörigheter för tillägg</translation>
-<translation id="5159643365935452998">Granska automatisk databorttagning</translation>
 <translation id="5160634252433617617">Fysiskt tangentbord</translation>
 <translation id="5160857336552977725">Logga in på din <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">USB-enheter från <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 86a05566..cad943c 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -4538,7 +4538,6 @@
 <translation id="5158206172605340248">Menyu ya alama ya jinsi herufi inavyotamkwa imeondolewa.</translation>
 <translation id="5159094275429367735">Weka mipangilio ya Crostini</translation>
 <translation id="5159419673777902220">Mzazi wako amezima ruhusa za viendelezi</translation>
-<translation id="5159643365935452998">Kagua ufutaji wa data kiotomatiki</translation>
 <translation id="5160634252433617617">Kibodi halisi</translation>
 <translation id="5160857336552977725">Ingia katika kifaa chako cha <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Vifaa vya USB kutoka <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 5d4e2e7..f12707f 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -1249,6 +1249,7 @@
 <translation id="2104166991923847969">ஹாட்ஸ்பாட்டைத் தானாக ஆஃப் செய்</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> மறைக்கப்பட்டன</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{ஃபோன் எண்}other{# ஃபோன் எண்கள்}}</translation>
+<translation id="2110941575868943054">புளூடூத் சாதனங்களைத் தேட அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation>
 <translation id="211144231511833662">வகைகளை அழி</translation>
 <translation id="2111670510994270194">வலதுபக்கத்தில் புதிய தாவல்</translation>
 <translation id="2112554630428445878">வணக்கம், <ph name="USERNAME" /></translation>
@@ -3043,6 +3044,7 @@
 <translation id="3756485814916578707">திரையை அலைபரப்புகிறது</translation>
 <translation id="3756578970075173856">பின்னை அமைத்தல்</translation>
 <translation id="3756795331760037744"><ph name="SUPERVISED_USER_NAME" /> இன் திரையில் உள்ள தகவலைப் பயன்படுத்தி அவருக்கு உதவ Google Assistantடை அனுமதியுங்கள்</translation>
+<translation id="3756806135608816820">புளூடூத் சாதனங்கள் உள்ளதா எனத் தேட தளங்கள் அனுமதி கேட்க வேண்டும்</translation>
 <translation id="3757733214359997190">தளங்கள் இல்லை</translation>
 <translation id="375841316537350618">ப்ராக்ஸி ஸ்கிரிப்ட்டைப் பதிவிறக்குகிறது...</translation>
 <translation id="3758842566811519622">குக்கீகள் அமைக்கப்பட்டன</translation>
@@ -4543,7 +4545,6 @@
 <translation id="5158206172605340248">உச்சரிப்புக் குறிகள் மெனு மூடப்பட்டது.</translation>
 <translation id="5159094275429367735">Crostiniயை அமைத்திடுங்கள்</translation>
 <translation id="5159419673777902220">நீட்டிப்புக்கான அனுமதிகளை உங்கள் பெற்றோர் முடக்கியுள்ளார்</translation>
-<translation id="5159643365935452998">தரவைத் தானாக அழிப்பதற்கான அமைப்பைச் சரிபாருங்கள்</translation>
 <translation id="5160634252433617617">கையால் பயன்படுத்தப்படும் கீபோர்டு</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" /> இல் உள்நுழையவும்</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> வழங்கும் USB சாதனங்கள்</translation>
@@ -5018,6 +5019,7 @@
 <translation id="5600706100022181951">புதுப்பிப்பைப் பதிவிறக்க, <ph name="UPDATE_SIZE_MB" /> மெ.பை. மொபைல் டேட்டா பயன்படுத்தப்படும். தொடர வேண்டுமா?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">MIDI சாதனங்களுடன் இணைப்பதற்கு அனுமதி இல்லாத தளங்கள்</translation>
+<translation id="5601833336918638013">புளூடூத் சாதனங்கள் உள்ளதா எனத் தேட தளங்களுக்கு அனுமதி இல்லை</translation>
 <translation id="5602765853043467355">இந்தச் சாதனத்திலிருந்து புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பலவற்றை அழிக்கவும்</translation>
 <translation id="5605758115928394442">அது நீங்கள்தான் என்பதை உறுதிப்படுத்த உங்கள் ஃபோனுக்கு ஓர் அறிவிப்பு அனுப்பப்பட்டுள்ளது.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{இந்த நீட்டிப்பு தடுக்கப்பட்டுள்ளது}other{இந்த நீட்டிப்புகள் தடுக்கப்பட்டுள்ளன}}</translation>
@@ -6476,6 +6478,7 @@
 <translation id="6960507406838246615">Linuxஸைப் புதுப்பிக்க வேண்டும்</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> மொழிக்கான பேச்சு அறிதல் ஃபைல்களைப் பதிவிறக்க முடியவில்லை. பின்னர் பதிவிறக்க முயலும். பதிவிறக்கம் முடியும் வரை பேசுபவை அனைத்தும் செயலாக்கத்திற்காக Googleளுக்கு அனுப்பப்படும்.</translation>
 <translation id="696103774840402661">இந்த <ph name="DEVICE_TYPE" /> சாதனத்தில் உள்ள அனைத்துக் கோப்புகளும் அதில் சேமிக்கப்பட்டுள்ள அனைத்துப் பயனர்களின் தரவும் நிரந்தரமாக நீக்கப்பட்டன.</translation>
+<translation id="6961327401577924850">வழக்கமாக, குறைவான ஆற்றலைப் பயன்படுத்தும் பீக்கான், ஹெல்த்/ஃபிட்னஸ் டிராக்கர், ஸ்மார்ட் லைட் பல்பு போன்றவற்றை அமைத்தல், ஒத்திசைத்தல் போன்ற அம்சங்களுக்காக புளூடூத் சாதனங்களைத் தேட தளங்கள் அனுமதி கேட்கும்</translation>
 <translation id="6963872466817251924">எழுத்துக் கர்சர் ஹைலைட்டர்</translation>
 <translation id="6964390816189577014">நாயகன்</translation>
 <translation id="6964760285928603117">குழுவிலிருந்து அகற்று</translation>
@@ -8111,6 +8114,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> இயங்க, உங்கள் அனுமதி தேவை</translation>
 <translation id="8466417995783206254">இந்தத் தாவல், பிக்ச்சர்-இன்-பிக்ச்சர் பயன்முறையில் வீடியோவை இயக்குகிறது.</translation>
 <translation id="8467326454809944210">மற்றொரு மொழியைத் தேர்வுசெய்க</translation>
+<translation id="8468087214092422866">புளூடூத் சாதனங்களைத் தேட அனுமதி இல்லாத தளங்கள்</translation>
 <translation id="8470513973197838199"><ph name="ORIGIN" />க்கான சேமித்த கடவுச்சொற்கள்</translation>
 <translation id="8471525937465764768">வழக்கமாக ஆவணத்தைப் பிரிண்ட் செய்தல், அதைச் சேமிப்பகச் சாதனத்தில் சேமித்தல் போன்ற அம்சங்களுக்காக USB சாதனங்களுடன் தளங்கள் இணையும்</translation>
 <translation id="8471959340398751476">தள்ளுபடிகளைக் காட்டுவதற்கான அனுமதி முடக்கப்பட்டுள்ளது. ’பிரத்தியேகமாக்கு’ மெனுவில் அதை இயக்கலாம்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 9886e36..9d532f1 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -3814,6 +3814,7 @@
 <translation id="4469762931504673593"><ph name="FOLDERNAME" />లోని ఫైళ్లను <ph name="ORIGIN" /> సవరించగలదు</translation>
 <translation id="4470957202018033307">బాహ్య నిల్వ ప్రాధాన్యతలు</translation>
 <translation id="4471354919263203780">స్పీచ్ రికగ్నిషన్ ఫైళ్లు డౌన్‌లోడ్ అవుతున్నాయి... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">మీరు ఇప్పుడు మీ ప్రాధాన్య Google ఖాతా భాష (<ph name="NEW_LOCALE_FROM_GAIA" />)ను ఉపయోగించవచ్చు</translation>
 <translation id="447252321002412580">Chrome ఫీచర్‌లు మరియు పనితీరును మెరుగుపరచడంలో సహాయపడండి</translation>
 <translation id="4472575034687746823">ప్రారంభించండి</translation>
 <translation id="4474155171896946103">అన్ని ట్యాబ్‌లను బుక్‌మార్క్ చేయండి...</translation>
@@ -4544,7 +4545,6 @@
 <translation id="5158206172605340248">యాక్సెంట్ మార్క్‌ల మెనూ విస్మరించబడింది.</translation>
 <translation id="5159094275429367735">Crostiniని సెటప్ చేయి</translation>
 <translation id="5159419673777902220">ఎక్స్‌టెన్షన్ అనుమతులను మీ తల్లి/తండ్రి డిజేబుల్ చేశారు</translation>
-<translation id="5159643365935452998">ఆటోమేటిక్ డేటా క్లియరింగ్‌ను రివ్యూ చేయండి</translation>
 <translation id="5160634252433617617">భౌతిక కీబోర్డ్</translation>
 <translation id="5160857336552977725">మీ <ph name="DEVICE_TYPE" />కు సైన్ ఇన్ చేయండి</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> నుండి USB పరికరాలు</translation>
@@ -6754,6 +6754,7 @@
 <translation id="7227458944009118910">కింద లిస్ట్ చేయబడిన యాప్‌లు ప్రోటోకాల్ లింక్‌లను కూడా హ్యాండిల్ చేయగలవు. ఇతర యాప్‌లు అనుమతి కోసం అడుగుతాయి.</translation>
 <translation id="7228056665272655255">వేలిముద్రను సెటప్ చేయడానికి, కీబోర్డ్‌కు ఎగువ కుడి మూలన ఉన్న వేలిముద్ర సెన్సార్‌ను మీ చిన్నారి వేలితో తాకించండి. మీ చిన్నారి వేలిముద్ర డేటా సురక్షితంగా స్టోర్ చేయబడుతుంది, ఎప్పటికీ ఈ <ph name="DEVICE_TYPE" />‌లోనే ఉంటుంది.</translation>
 <translation id="7228523857728654909">స్క్రీన్ లాక్ మరియు సైన్ ఇన్</translation>
+<translation id="7228854227189381547">మార్చవద్దు</translation>
 <translation id="7230222852462421043">&amp;విండోను రీస్టోర్ చేయండి</translation>
 <translation id="7231260028442989757">మీ ఫోన్ నోటిఫికేషన్‌లను చూడండి, విస్మరించండి, వాటికి రిప్లయి ఇవ్వండి</translation>
 <translation id="7232750842195536390">పేరు మార్చడం విఫలమైంది</translation>
@@ -7087,6 +7088,7 @@
 <translation id="7545466883021407599">సర్వర్‌తో కనెక్ట్ చేయడం సాధ్యపడలేదు. మీ నెట్‌వర్క్ కనెక్షన్‌ను చెక్ చేసి, మళ్లీ ట్రై చేయండి. మీకు ఇంకా సమస్య ఉంటే, మీ Chromebookను రీస్టార్ట్ చేయడానికి ట్రై చేయండి. ఎర్రర్ కోడ్: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">హెచ్చరిక: మీ <ph name="PRODUCT_NAME" /> సెట్టింగ్‌లు నెట్‌వర్క్ డిస్క్‌లో నిల్వ చేయబడ్డాయి. దీని ఫలితంగా స్లోడౌన్‌లు, క్రాష్‌లు జరగవచ్చు లేదా డేటాను కూడా నష్టపోవచ్చు.</translation>
 <translation id="7548856833046333824">నిమ్మరసం</translation>
+<translation id="7549434883223124329">పరికర భాషను మార్చాలా?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> డౌన్‌లోడ్ విఫలమైంది</translation>
 <translation id="7551643184018910560">అరకు పిన్ చేయండి</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 9e74e25..82aedd2 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -4530,7 +4530,6 @@
 <translation id="5158206172605340248">ปิดเมนูเครื่องหมายการเน้นเสียงแล้ว</translation>
 <translation id="5159094275429367735">ตั้งค่า Crostini</translation>
 <translation id="5159419673777902220">ผู้ปกครองของคุณปิดใช้สิทธิ์ของส่วนขยาย</translation>
-<translation id="5159643365935452998">ตรวจสอบการล้างข้อมูลอัตโนมัติ</translation>
 <translation id="5160634252433617617">แป้นพิมพ์จริง</translation>
 <translation id="5160857336552977725">ลงชื่อเข้าใช้ <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">อุปกรณ์ USB จาก <ph name="VENDOR_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 129b51c3..986b31a 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -4525,7 +4525,6 @@
 <translation id="5158206172605340248">Aksan işaretleri menüsü kapatıldı.</translation>
 <translation id="5159094275429367735">Crostini'yi kur</translation>
 <translation id="5159419673777902220">Ebeveyniniz uzantı izinlerini devre dışı bıraktı</translation>
-<translation id="5159643365935452998">Otomatik veri temizlemeyi inceleyin</translation>
 <translation id="5160634252433617617">Fiziksel klavye</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" /> cihazınızda oturum açın</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> tarafından sağlanan USB cihazlar</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 801e5ea0..c60e74b3c 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -1252,6 +1252,7 @@
 <translation id="2104166991923847969">Вимикати точку доступу автоматично</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> сховано</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Номер телефону}one{# номер телефону}few{# номери телефонів}many{# номерів телефонів}other{# номера телефону}}</translation>
+<translation id="2110941575868943054">Дозволено шукати пристрої з Bluetooth</translation>
 <translation id="211144231511833662">Очистити типи</translation>
 <translation id="2111670510994270194">Нова вкладка праворуч</translation>
 <translation id="2112554630428445878">Вітаємо, <ph name="USERNAME" /></translation>
@@ -3046,6 +3047,7 @@
 <translation id="3756485814916578707">Трансляція екрана</translation>
 <translation id="3756578970075173856">Налаштувати PIN-код</translation>
 <translation id="3756795331760037744">З вашого дозволу <ph name="SUPERVISED_USER_NAME" /> зможе отримувати від Google Асистента відповіді з урахуванням вмісту екрана</translation>
+<translation id="3756806135608816820">Сайти можуть просити дозвіл шукати пристрої з Bluetooth</translation>
 <translation id="3757733214359997190">Не знайдено сайтів</translation>
 <translation id="375841316537350618">Завантаження сценарію проксі-сервера…</translation>
 <translation id="3758842566811519622">Файли cookie налаштовано</translation>
@@ -3816,6 +3818,7 @@
 <translation id="4469762931504673593">Сайт <ph name="ORIGIN" /> може змінювати файли в папці "<ph name="FOLDERNAME" />"</translation>
 <translation id="4470957202018033307">Параметри зовнішньої пам'яті</translation>
 <translation id="4471354919263203780">Завантажуються файли для розпізнавання мовлення… <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Ви можете використовувати мову облікового запису Google (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Допоможіть покращити функції й ефективність Chrome</translation>
 <translation id="4472575034687746823">Початок роботи</translation>
 <translation id="4474155171896946103">Додати всі вкладки в закладки…</translation>
@@ -4546,7 +4549,6 @@
 <translation id="5158206172605340248">Меню діакритичних знаків закрито.</translation>
 <translation id="5159094275429367735">Налаштувати Crostini</translation>
 <translation id="5159419673777902220">Хтось із батьків вимкнув дозволи розширення</translation>
-<translation id="5159643365935452998">Перегляньте параметри автоматичного видалення даних</translation>
 <translation id="5160634252433617617">Фізична клавіатура</translation>
 <translation id="5160857336552977725">Увійдіть в обліковий запис на пристрої <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">Пристрої USB від постачальника "<ph name="VENDOR_NAME" />"</translation>
@@ -5021,6 +5023,7 @@
 <translation id="5600706100022181951">Щоб завантажити оновлення, буде використано <ph name="UPDATE_SIZE_MB" /> МБ мобільного Інтернету. Продовжити?</translation>
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5601823921345337195">Заборонено підключатися до пристроїв MIDI</translation>
+<translation id="5601833336918638013">Заборонити сайтам шукати пристрої з Bluetooth</translation>
 <translation id="5602765853043467355">Видалити закладки, історію, паролі тощо з цього пристрою</translation>
 <translation id="5605758115928394442">Ми надіслали сповіщення на ваш телефон, щоб підтвердити вашу особу.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Це розширення заблоковано}one{Ці розширення заблоковано}few{Ці розширення заблоковано}many{Ці розширення заблоковано}other{Ці розширення заблоковано}}</translation>
@@ -6481,6 +6484,7 @@
 <translation id="6960507406838246615">Потрібно оновити Linux</translation>
 <translation id="6960648667961844909">Не вдалося завантажити файли живих субтитрів для такої мови: <ph name="LANGUAGE" />. Спроба завантаження повториться пізніше. Доки завантаження не завершиться, мовлення надсилатиметься на сервери Google для обробки.</translation>
 <translation id="696103774840402661">Усі файли та локальні дані всіх користувачів на цьому пристрої <ph name="DEVICE_TYPE" /> видалено назавжди.</translation>
+<translation id="6961327401577924850">Сайти зазвичай шукають пристрої з Bluetooth для роботи таких функцій, як налаштування або синхронізація маяків із низьким енергоспоживанням, пристроїв для відстеження здоров’я або фізичної активності, розумних лампочок</translation>
 <translation id="6963872466817251924">Виділення текстового курсора</translation>
 <translation id="6964390816189577014">Герой</translation>
 <translation id="6964760285928603117">Вилучити з групи</translation>
@@ -6757,6 +6761,7 @@
 <translation id="7227458944009118910">Додатки, наведені нижче, також можуть обробляти посилання протоколів. Інші додатки проситимуть на це дозвіл.</translation>
 <translation id="7228056665272655255">Щоб налаштувати відбиток пальця, дитина має торкнутися сканера у верхньому правому куті клавіатури. <ph name="DEVICE_TYPE" /> надійно зберігає дані про відбиток і нікуди не надсилає їх.</translation>
 <translation id="7228523857728654909">Блокування екрана та вхід</translation>
+<translation id="7228854227189381547">Не змінювати</translation>
 <translation id="7230222852462421043">&amp;Відновити вікно</translation>
 <translation id="7231260028442989757">Переглядайте й закривайте сповіщення з телефона, а також відповідайте на них</translation>
 <translation id="7232750842195536390">Не вдалося перейменувати</translation>
@@ -7090,6 +7095,7 @@
 <translation id="7545466883021407599">Не вдалося підключитися до сервера. Перевірте з’єднання з мережею та повторіть спробу. Якщо проблема не зникла, перезапустіть Chromebook. Код помилки: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Застереження. Налаштування <ph name="PRODUCT_NAME" /> зберігаються на мережевому диску. Це може спричинити сповільнення чи аварійне завершення роботи або навіть утрату даних.</translation>
 <translation id="7548856833046333824">Лимонад</translation>
+<translation id="7549434883223124329">Змінити мову пристрою?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Не вдалося завантажити файл "<ph name="FILE_NAME" />"</translation>
 <translation id="7551643184018910560">Закріпити на панелі запуску</translation>
@@ -8116,6 +8122,7 @@
 <translation id="8465444703385715657">Щоб запустити плагін <ph name="PLUGIN_NAME" />, потрібен ваш дозвіл</translation>
 <translation id="8466417995783206254">На цій вкладці відтворюється відео в режимі "картинка в картинці".</translation>
 <translation id="8467326454809944210">Вибрати іншу мову</translation>
+<translation id="8468087214092422866">Заборонено шукати пристрої з Bluetooth</translation>
 <translation id="8470513973197838199">Збережені паролі для <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Сайти зазвичай підключаються до пристроїв USB для роботи таких функцій, як друк документів або зберігання файлів на пристрої пам'яті</translation>
 <translation id="8471959340398751476">Знижки вимкнено. Ви можете ввімкнути їх у меню налаштувань.</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 786e264f..d9e8328 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -1238,6 +1238,7 @@
 <translation id="2104166991923847969">خودکار طور پر ہاٹ اسپاٹ آف کریں</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> پوشیدہ</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{فون نمبر}other{# فون نمبرز}}</translation>
+<translation id="2110941575868943054">بلوٹوتھ آلات تلاش کرنے کی اجازت ہے</translation>
 <translation id="211144231511833662">اقسام صاف کریں</translation>
 <translation id="2111670510994270194">دائیں طرف نیا ٹیب</translation>
 <translation id="2112554630428445878">خوش آمدید، <ph name="USERNAME" /></translation>
@@ -3030,6 +3031,7 @@
 <translation id="3756485814916578707">اسکرین کاسٹ ہو رہی ہے</translation>
 <translation id="3756578970075173856">‏PIN سیٹ کریں</translation>
 <translation id="3756795331760037744">‏Google اسسٹنٹ کو مدد کیلئے <ph name="SUPERVISED_USER_NAME" /> کی اسکرین پر معلومات کا استعمال کرنے کی اجازت دیں</translation>
+<translation id="3756806135608816820">سائٹس بلوٹوتھ آلات تلاش کرنے کے لیے پوچھ سکتی ہیں</translation>
 <translation id="3757733214359997190">کوئی سائٹ نہیں ملی</translation>
 <translation id="375841316537350618">پراکسی اسکرپٹ ڈاؤن لوڈ ہو رہی ہے…</translation>
 <translation id="3758842566811519622">کوکیز سیٹ ہو گئیں</translation>
@@ -3800,6 +3802,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> <ph name="FOLDERNAME" /> میں فائلز میں ترمیم کر سکتا ہے</translation>
 <translation id="4470957202018033307">خارجی اسٹوریج کی ترجیحات</translation>
 <translation id="4471354919263203780">اسپیچ شناخت کی فائلز ڈاؤن لوڈ ہو رہی ہیں... %<ph name="PERCENT" /></translation>
+<translation id="4472298120638043495">‏آپ اپنے Google اکاؤنٹ کی ترجیحی زبان (<ph name="NEW_LOCALE_FROM_GAIA" />) استعمال کر سکتے ہیں</translation>
 <translation id="447252321002412580">‏Chrome کی خصوصیات اور کارکردگی کو بہتر بنانے میں مدد کریں</translation>
 <translation id="4472575034687746823">شروع کریں</translation>
 <translation id="4474155171896946103">سبھی ٹیبز کو بُک مارک کریں…</translation>
@@ -4529,7 +4532,6 @@
 <translation id="5158206172605340248">لہجے کے نشانات کا مینو مسترد کر دیا گیا۔</translation>
 <translation id="5159094275429367735">‏Crostini سیٹ اپ کریں</translation>
 <translation id="5159419673777902220">آپ کے والد/والدہ نے ایکسٹینشن کی اجازتیں غیر فعال کر دی ہیں</translation>
-<translation id="5159643365935452998">خودکار ڈیٹا کلیئرنگ کا جائزہ لیں</translation>
 <translation id="5160634252433617617">فزیکل کی بورڈ</translation>
 <translation id="5160857336552977725">اپنے <ph name="DEVICE_TYPE" /> میں سائن ان کریں</translation>
 <translation id="5161251470972801814">‏<ph name="VENDOR_NAME" /> کی جانب سے USB آلات</translation>
@@ -5003,6 +5005,7 @@
 <translation id="5600706100022181951">‏موبائل ڈیٹا <ph name="UPDATE_SIZE_MB" /> MB استعمال کرتے ہوۓ اپڈیٹ ڈاؤن لوڈ ہو جائے گا۔ کیا آپ اسے جاری رکھنا چاہتے ہيں؟</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">‏MIDI آلات سے منسلک ہونے کی اجازت نہیں ہے</translation>
+<translation id="5601833336918638013">سائٹس کو بلوٹوتھ آلات تلاش کرنے کی اجازت نہ دیں</translation>
 <translation id="5602765853043467355">بُک مارکس، سرگزشت، پاس ورڈز وغیرہ اس آلہ سے صاف کريں</translation>
 <translation id="5605758115928394442">اس بات کی تصدیق کرنے کیلئے کہ یہ آپ ہی ہیں، آپ کے فون پر ایک اطلاع بھیجی گئی۔</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{یہ ایکسٹینشن مسدود ہے}other{یہ ایکسٹینشنز مسدود ہیں}}</translation>
@@ -6460,6 +6463,7 @@
 <translation id="6960507406838246615">‏Linux کا اپ ڈیٹ درکار ہے</translation>
 <translation id="6960648667961844909">‏<ph name="LANGUAGE" /> کی اسپیچ فائلز کو ڈاؤن لوڈ نہیں کیا جا سکا۔ بعد میں ڈاؤن لوڈ کرنے کی کوشش کی جائے گی۔ اسپیچ پروسیسنگ کے لیے Google کو بھیجی جاتی ہے جب تک کہ ڈاؤن لوڈ مکمل نہ ہو جائے۔</translation>
 <translation id="696103774840402661">اس <ph name="DEVICE_TYPE" /> پر موجود سبھی صارفین کے لیے تمام فائلز اور مقامی ڈیٹا کو مستقل طور پر حذف کر دیا گیا ہے۔</translation>
+<translation id="6961327401577924850">سائٹس عام طور پر کم توانائی والے بیکن کو سیٹ اپ کرنے یا مطابقت پذیر کرنے، صحت یا تندرستی کے ٹریکر یا اسمارٹ لائٹ بلب جیسی خصوصیات کے لئے بلوٹوتھ آلات کو تلاش کرتی ہیں</translation>
 <translation id="6963872466817251924">ٹیکسٹ نمایاں کرنے والا کرسر</translation>
 <translation id="6964390816189577014">ہیرو</translation>
 <translation id="6964760285928603117">گروپ سے ہٹائیں</translation>
@@ -6736,6 +6740,7 @@
 <translation id="7227458944009118910">ذیل میں درج ایپس پروٹوکول لنکس کو بھی ہینڈل کر سکتی ہیں۔ دیگر ایپس اجازت طلب کریں گی۔</translation>
 <translation id="7228056665272655255">فنگر پرنٹ سیٹ اپ کرنے کے لیے، اپنے بچے سے کی بورڈ کے اوپر دائیں کونے میں موجود فنگر پرنٹ سینسر کو ٹچ کرنے کو کہیں۔ آپ کے بچے کے فنگر پرنٹ ڈیٹا کو محفوظ طریقے سے اسٹور کیا جاتا ہے اور یہ کبھی بھی اس <ph name="DEVICE_TYPE" /> سے باہر نہیں جاتا۔</translation>
 <translation id="7228523857728654909">اسکرین لاک اور سائن ان</translation>
+<translation id="7228854227189381547">سوئچ نہ کریں</translation>
 <translation id="7230222852462421043">&amp;ونڈو بحال کریں</translation>
 <translation id="7231260028442989757">اپنے فون کی اطلاعات دیکھیں، برخاست کریں اور ان کا جواب دیں</translation>
 <translation id="7232750842195536390">نام کی تبدییلی ناکام ہو گئی</translation>
@@ -7069,6 +7074,7 @@
 <translation id="7545466883021407599">‏سرور سے منسلک نہیں ہو سکا۔ اپنا نیٹ ورک کنکشن چیک کریں اور دوبارہ کوشش کریں۔ اگر آپ کو اب بھی مشکل درپیش ہے تو اپنا Chromebook ری سٹارٹ کرنے کی کوشش کریں۔ خرابی کا کوڈ: <ph name="ERROR_CODE" />۔</translation>
 <translation id="7547317915858803630">وارننگ: آپ کی <ph name="PRODUCT_NAME" /> ترتیبات ایک نیٹ ورک ڈرائیو پر محفوظ ہیں۔ اس کا نتیجہ رفتار میں کمی، کریشز یا ڈیٹا سے محرومی ہو سکتا ہے۔</translation>
 <translation id="7548856833046333824">لیمونیڈ</translation>
+<translation id="7549434883223124329">آلہ کی زبان سوئچ کریں؟</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> کو ڈاؤن لوڈ کرنا ناکام رہا</translation>
 <translation id="7551643184018910560">شیلف میں پن کریں</translation>
@@ -8094,6 +8100,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> کو چلنے کیلئے آپ کی اجازت درکار ہے</translation>
 <translation id="8466417995783206254">یہ ٹیب تصویر میں تصویر وضع میں ویڈیو چلا رہا ہے۔</translation>
 <translation id="8467326454809944210">کسی دوسری زبان کا انتخاب کریں</translation>
+<translation id="8468087214092422866">بلوٹوتھ آلات تلاش کرنے کی اجازت نہیں ہے</translation>
 <translation id="8470513973197838199"><ph name="ORIGIN" /> کے لیے محفوظ کردہ پاسورڈز</translation>
 <translation id="8471525937465764768">‏سائٹس عام طور دستاویز پرنٹ کرنے یا اسٹوریج آلہ پر محفوظ کرنے جیسی خصوصیات کے لیے USB آلات سے منسلک ہوتی ہیں</translation>
 <translation id="8471959340398751476">رعایتوں کی سہولیات آف ہیں۔ آپ انہیں حسب ضرورت مینو میں آن کر سکتے ہیں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 319bbff..bd7ed88b 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -4533,7 +4533,6 @@
 <translation id="5158206172605340248">Urgʻu belgilari menyusi yopildi.</translation>
 <translation id="5159094275429367735">Crostini taʼminotini sozlash</translation>
 <translation id="5159419673777902220">Ota-onangiz bu kengaytma ruxsatlarini olib tashlagan</translation>
-<translation id="5159643365935452998">Maʼlumotlarning avtomatik tozalanishini tekshirish</translation>
 <translation id="5160634252433617617">Tashqi klaviatura</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" /> hisobingizga kiring</translation>
 <translation id="5161251470972801814"><ph name="VENDOR_NAME" /> ishlab chiqargan USB qurilmalar</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 266bfbc..6a38cbb7 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -1249,6 +1249,7 @@
 <translation id="2104166991923847969">Tự động tắt điểm phát sóng</translation>
 <translation id="2105809836724866556">Đã ẩn <ph name="MODULE_TITLE" /></translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Số điện thoại}other{# số điện thoại}}</translation>
+<translation id="2110941575868943054">Được phép tìm thiết bị Bluetooth</translation>
 <translation id="211144231511833662">Xóa các loại thiết bị</translation>
 <translation id="2111670510994270194">Thẻ mới ở bên phải</translation>
 <translation id="2112554630428445878">Chào mừng <ph name="USERNAME" />!</translation>
@@ -3043,6 +3044,7 @@
 <translation id="3756485814916578707">Đang truyền màn hình</translation>
 <translation id="3756578970075173856">Đặt mã PIN</translation>
 <translation id="3756795331760037744">Cho phép Trợ lý Google dùng thông tin trên màn hình của <ph name="SUPERVISED_USER_NAME" /> để trợ giúp</translation>
+<translation id="3756806135608816820">Các trang web có thể yêu cầu tìm thiết bị Bluetooth</translation>
 <translation id="3757733214359997190">Không tìm thấy trang web nào</translation>
 <translation id="375841316537350618">Đang tải xuống tập lệnh proxy...</translation>
 <translation id="3758842566811519622">Đã đặt cookie</translation>
@@ -3813,6 +3815,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> có thể chỉnh sửa tệp trong <ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Tùy chọn bộ nhớ bên ngoài</translation>
 <translation id="4471354919263203780">Đang tải các tệp nhận dạng lời nói xuống... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Bạn có thể sử dụng ngôn ngữ ưu tiên trong Tài khoản Google của mình (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Giúp cải thiện hiệu suất và các tính năng của Chrome</translation>
 <translation id="4472575034687746823">Bắt đầu</translation>
 <translation id="4474155171896946103">Đánh dấu tất cả các thẻ...</translation>
@@ -4543,7 +4546,6 @@
 <translation id="5158206172605340248">Trình đơn dấu phụ đã đóng.</translation>
 <translation id="5159094275429367735">Thiết lập Crostini</translation>
 <translation id="5159419673777902220">Cha mẹ của bạn đã tắt quyền sử dụng tiện ích</translation>
-<translation id="5159643365935452998">Xem xét tính năng xóa dữ liệu tự động</translation>
 <translation id="5160634252433617617">Bàn phím vật lý</translation>
 <translation id="5160857336552977725">Đăng nhập vào <ph name="DEVICE_TYPE" /> của bạn</translation>
 <translation id="5161251470972801814">Các thiết bị USB của <ph name="VENDOR_NAME" /></translation>
@@ -5018,6 +5020,7 @@
 <translation id="5600706100022181951">Bản cập nhật sẽ được tải xuống bằng cách dùng <ph name="UPDATE_SIZE_MB" /> MB dữ liệu di động. Bạn có muốn tiếp tục không?</translation>
 <translation id="5601503069213153581">Mã PIN</translation>
 <translation id="5601823921345337195">Không được phép kết nối với các thiết bị MIDI</translation>
+<translation id="5601833336918638013">Không cho phép các trang web tìm thiết bị Bluetooth</translation>
 <translation id="5602765853043467355">Xóa dấu trang, lịch sử, mật khẩu và nhiều nội dung khác từ thiết bị này</translation>
 <translation id="5605758115928394442">Chúng tôi đã gửi một thông báo đến điện thoại của bạn để xác nhận đó là bạn.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Tiện ích này đã bị chặn}other{Các tiện ích này đã bị chặn}}</translation>
@@ -6475,6 +6478,7 @@
 <translation id="6960507406838246615">Cần cập nhật Linux</translation>
 <translation id="6960648667961844909">Không thể tải các tệp mã chuyển lời nói thành văn bản <ph name="LANGUAGE" /> xuống. Thử tải xuống sau. Dữ liệu giọng nói sẽ được gửi tới Google cho đến khi quá trình tải xuống hoàn tất.</translation>
 <translation id="696103774840402661">Tất cả tệp và dữ liệu dành cho mọi người dùng trên <ph name="DEVICE_TYPE" /> này sẽ bị xóa vĩnh viễn.</translation>
+<translation id="6961327401577924850">Các trang web thường tìm thiết bị Bluetooth cho những tính năng như thiết lập hoặc đồng bộ hoá beacon năng lượng thấp, trình theo dõi sức khoẻ/hoạt động tập thể dục hoặc bóng đèn thông minh</translation>
 <translation id="6963872466817251924">Công cụ đánh dấu bằng con trỏ văn bản</translation>
 <translation id="6964390816189577014">Anh hùng</translation>
 <translation id="6964760285928603117">Xóa khỏi nhóm</translation>
@@ -6751,6 +6755,7 @@
 <translation id="7227458944009118910">Những ứng dụng được liệt kê bên dưới cũng có thể xử lý các đường liên kết giao thức. Các ứng dụng khác sẽ yêu cầu bạn cấp quyền.</translation>
 <translation id="7228056665272655255">Để thiết lập vân tay, con bạn cần chạm vào cảm biến vân tay ở góc trên bên phải bàn phím. Dữ liệu vân tay của con bạn được lưu trữ an toàn và chỉ có trên <ph name="DEVICE_TYPE" /> này.</translation>
 <translation id="7228523857728654909">Khóa màn hình và đăng nhập</translation>
+<translation id="7228854227189381547">Không chuyển</translation>
 <translation id="7230222852462421043">&amp;Khôi phục Cửa sổ</translation>
 <translation id="7231260028442989757">Xem, đóng và trả lời thông báo của điện thoại</translation>
 <translation id="7232750842195536390">Không đổi tên được</translation>
@@ -7084,6 +7089,7 @@
 <translation id="7545466883021407599">Không thể kết nối với máy chủ. Hãy kiểm tra kết nối mạng rồi thử lại. Nếu bạn vẫn gặp sự cố, hãy thử khởi động lại Chromebook. Mã lỗi: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Cảnh báo: cài đặt <ph name="PRODUCT_NAME" /> của bạn được lưu trữ trên ổ đĩa mạng. Điều này có thể dẫn đến giảm tốc độ, trục trặc hoặc thậm chí là mất dữ liệu.</translation>
 <translation id="7548856833046333824">Nước chanh</translation>
+<translation id="7549434883223124329">Bạn muốn chuyển đổi ngôn ngữ của thiết bị?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Tải xuống <ph name="FILE_NAME" /> không thành công</translation>
 <translation id="7551643184018910560">Ghim vào kệ</translation>
@@ -8110,6 +8116,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> cần có sự cho phép của bạn để chạy</translation>
 <translation id="8466417995783206254">Thẻ này đang phát video ở chế độ hình trong hình.</translation>
 <translation id="8467326454809944210">Chọn ngôn ngữ khác</translation>
+<translation id="8468087214092422866">Không được phép tìm thiết bị Bluetooth</translation>
 <translation id="8470513973197838199">Đã lưu mật khẩu cho <ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Các trang web thường kết nối với thiết bị USB để áp dụng những tính năng như in tài liệu hoặc lưu vào thiết bị lưu trữ</translation>
 <translation id="8471959340398751476">Tính năng nhận chiết khấu đang tắt. Bạn có thể bật tính năng này trong trình đơn tùy chỉnh</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 4cba3e5..efe3569e 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -4519,7 +4519,6 @@
 <translation id="5158206172605340248">已关闭重音符号菜单。</translation>
 <translation id="5159094275429367735">设置 Crostini</translation>
 <translation id="5159419673777902220">您的家长已停用扩展程序权限</translation>
-<translation id="5159643365935452998">查看用于自动清除数据的设置</translation>
 <translation id="5160634252433617617">实体键盘</translation>
 <translation id="5160857336552977725">登录您的<ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">由<ph name="VENDOR_NAME" />提供的 USB 设备</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 891c1c6..3e6cfb7 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -1249,6 +1249,7 @@
 <translation id="2104166991923847969">自動關閉熱點</translation>
 <translation id="2105809836724866556">「<ph name="MODULE_TITLE" />」已隱藏</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{電話號碼}other{# 個電話號碼}}</translation>
+<translation id="2110941575868943054">可以尋找藍牙裝置</translation>
 <translation id="211144231511833662">清除類型</translation>
 <translation id="2111670510994270194">在右側新增分頁</translation>
 <translation id="2112554630428445878"><ph name="USERNAME" />,歡迎使用!</translation>
@@ -3043,6 +3044,7 @@
 <translation id="3756485814916578707">正在投放畫面</translation>
 <translation id="3756578970075173856">設定 PIN</translation>
 <translation id="3756795331760037744">允許「Google 助理」使用<ph name="SUPERVISED_USER_NAME" />畫面上的資料來提供協助</translation>
+<translation id="3756806135608816820">網站可要求掃描藍牙裝置</translation>
 <translation id="3757733214359997190">找不到任何網站</translation>
 <translation id="375841316537350618">正在下載 Proxy 指令碼…</translation>
 <translation id="3758842566811519622">已設定 Cookie</translation>
@@ -3813,6 +3815,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> 可編輯「<ph name="FOLDERNAME" />」中的檔案</translation>
 <translation id="4470957202018033307">外部儲存空間偏好設定</translation>
 <translation id="4471354919263203780">正在下載語音識別檔案… <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">您可使用偏好的 Google 帳戶語言 (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">協助改善 Chrome 的功能和效能</translation>
 <translation id="4472575034687746823">開始使用</translation>
 <translation id="4474155171896946103">將所有分頁加入書籤…</translation>
@@ -4543,7 +4546,6 @@
 <translation id="5158206172605340248">閂咗重音符號選單。</translation>
 <translation id="5159094275429367735">設定 Crostini</translation>
 <translation id="5159419673777902220">您的家長已停用擴充程式權限</translation>
-<translation id="5159643365935452998">檢查自動資料清除設定</translation>
 <translation id="5160634252433617617">實體鍵盤</translation>
 <translation id="5160857336552977725">登入您的 <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">來自「<ph name="VENDOR_NAME" />」的 USB 裝置</translation>
@@ -5018,6 +5020,7 @@
 <translation id="5600706100022181951">下載更新將會使用 <ph name="UPDATE_SIZE_MB" /> MB 流動數據。要繼續嗎?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">不允許連接 MIDI 裝置</translation>
+<translation id="5601833336918638013">不允許網站掃描藍牙裝置</translation>
 <translation id="5602765853043467355">清除此裝置上的書籤、記錄和密碼等資料。</translation>
 <translation id="5605758115928394442">已將通知傳送至您的手機,以確認您的身分。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{已封鎖這個擴充程式}other{已封鎖這些擴充程式}}</translation>
@@ -6473,6 +6476,7 @@
 <translation id="6960507406838246615">Linux 需要更新</translation>
 <translation id="6960648667961844909">無法下載<ph name="LANGUAGE" />語音檔案。系統稍後將再次嘗試下載,語音會暫時傳送給 Google 處理,直至下載完成。</translation>
 <translation id="696103774840402661">已永久刪除此 <ph name="DEVICE_TYPE" /> 上所有使用者的所有檔案和本機資料。</translation>
+<translation id="6961327401577924850">一般來說,網站掃描藍牙裝置的原因是為了執行功能,例如設定或同步低功耗信標、健康/健身智慧手環或智慧型燈泡</translation>
 <translation id="6963872466817251924">文字游標突顯工具</translation>
 <translation id="6964390816189577014">英雄</translation>
 <translation id="6964760285928603117">從群組中移除</translation>
@@ -6749,6 +6753,7 @@
 <translation id="7227458944009118910">以下應用程式亦可處理通訊協定連結。其他應用程式則會要求授權。</translation>
 <translation id="7228056665272655255">如要設定指紋,請讓子女輕觸鍵盤右上角的指紋感應器。子女的指紋資料會安全儲存在此 <ph name="DEVICE_TYPE" /> 上,絕不會外洩。</translation>
 <translation id="7228523857728654909">螢幕鎖定和登入</translation>
+<translation id="7228854227189381547">不切換</translation>
 <translation id="7230222852462421043">還原視窗</translation>
 <translation id="7231260028442989757">查看、關閉和回覆手機的通知</translation>
 <translation id="7232750842195536390">無法重新命名</translation>
@@ -7082,6 +7087,7 @@
 <translation id="7545466883021407599">無法連線至伺服器。請檢查您的網絡連線,然後再試一次。如果問題仍未解決,請嘗試重新啟動 Chromebook。錯誤代碼:<ph name="ERROR_CODE" />。</translation>
 <translation id="7547317915858803630">警告:您的 <ph name="PRODUCT_NAME" /> 設定均儲存在網絡硬碟中。這樣可能導致速度變慢、當機,甚至數據遺失。</translation>
 <translation id="7548856833046333824">檸檬水</translation>
+<translation id="7549434883223124329">要切換裝置語言嗎?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> 下載失敗</translation>
 <translation id="7551643184018910560">固定至捷徑列</translation>
@@ -8108,6 +8114,7 @@
 <translation id="8465444703385715657">需要您的授權才能執行 <ph name="PLUGIN_NAME" /></translation>
 <translation id="8466417995783206254">此分頁正在以畫中畫模式播放影片。</translation>
 <translation id="8467326454809944210">選擇其他語言</translation>
+<translation id="8468087214092422866">不得尋找藍牙裝置</translation>
 <translation id="8470513973197838199">已儲存 <ph name="ORIGIN" /> 的密碼</translation>
 <translation id="8471525937465764768">網站通常會連接 USB 裝置,以提供列印文件或儲存至儲存裝置等功能</translation>
 <translation id="8471959340398751476">折扣搜尋功能已關閉。您可在自訂選單中開啟此功能</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index a17a759..b95c0d0 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -1237,6 +1237,7 @@
 <translation id="2104166991923847969">自動關閉無線基地台</translation>
 <translation id="2105809836724866556">已隱藏「<ph name="MODULE_TITLE" />」</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{電話號碼}other{# 組電話號碼}}</translation>
+<translation id="2110941575868943054">可以尋找藍牙裝置</translation>
 <translation id="211144231511833662">取消勾選類型</translation>
 <translation id="2111670510994270194">在右側新增分頁</translation>
 <translation id="2112554630428445878"><ph name="USERNAME" />,歡迎使用!</translation>
@@ -2881,7 +2882,7 @@
 <translation id="3619115746895587757">卡布奇諾</translation>
 <translation id="3620136223548713675">地理位置</translation>
 <translation id="362023940451053340">更新 Google 帳戶 (<ph name="ACCOUNT" />) 的密碼</translation>
-<translation id="3621807901162200696">協助改善 Chrome OS 的功能與效能</translation>
+<translation id="3621807901162200696">協助改善 ChromeOS 的功能與效能</translation>
 <translation id="362266093274784978">{COUNT,plural, =1{1 個應用程式}other{# 個應用程式}}</translation>
 <translation id="362333465072914957">正在等待 CA 核發憑證</translation>
 <translation id="3624567683873126087">解鎖裝置並登入 Google 帳戶</translation>
@@ -3028,6 +3029,7 @@
 <translation id="3756485814916578707">正在投放螢幕畫面</translation>
 <translation id="3756578970075173856">設定 PIN 碼</translation>
 <translation id="3756795331760037744">允許 Google 助理使用<ph name="SUPERVISED_USER_NAME" />畫面上的資訊來提供協助</translation>
+<translation id="3756806135608816820">網站可要求掃描藍牙裝置</translation>
 <translation id="3757733214359997190">找不到任何網站</translation>
 <translation id="375841316537350618">正在下載 Proxy 指令碼...</translation>
 <translation id="3758842566811519622">已設定 Cookie</translation>
@@ -3797,6 +3799,7 @@
 <translation id="4469762931504673593"><ph name="ORIGIN" /> 可以編輯「<ph name="FOLDERNAME" />」中的檔案</translation>
 <translation id="4470957202018033307">外部儲存空間偏好設定</translation>
 <translation id="4471354919263203780">正在下載語音辨識檔案...<ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">你可以使用偏好的 Google 帳戶語言 (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">協助改善 Chrome 的功能與效能</translation>
 <translation id="4472575034687746823">開始使用</translation>
 <translation id="4474155171896946103">將所有分頁加入書籤...</translation>
@@ -4526,7 +4529,6 @@
 <translation id="5158206172605340248">重音符號選單已關閉。</translation>
 <translation id="5159094275429367735">設定 Crostini</translation>
 <translation id="5159419673777902220">貴家長已停用擴充功能權限</translation>
-<translation id="5159643365935452998">檢查自動資料清除設定</translation>
 <translation id="5160634252433617617">實體鍵盤</translation>
 <translation id="5160857336552977725">登入您的 <ph name="DEVICE_TYPE" /></translation>
 <translation id="5161251470972801814">來自 <ph name="VENDOR_NAME" /> 的 USB 裝置</translation>
@@ -5001,6 +5003,7 @@
 <translation id="5600706100022181951">下載更新將使用 <ph name="UPDATE_SIZE_MB" /> MB 的行動數據。要繼續嗎?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5601823921345337195">不得連接 MIDI 裝置</translation>
+<translation id="5601833336918638013">不允許網站掃描藍牙裝置</translation>
 <translation id="5602765853043467355">清除這個裝置的書籤、歷史記錄、密碼和其他設定</translation>
 <translation id="5605758115928394442">為了確認你的身分,系統已傳送通知到你的手機。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{已封鎖這個擴充功能}other{已封鎖這些擴充功能}}</translation>
@@ -6455,6 +6458,7 @@
 <translation id="6960507406838246615">必須更新 Linux</translation>
 <translation id="6960648667961844909">無法下載<ph name="LANGUAGE" />語音檔案。系統稍後將再次嘗試下載。在下載作業完成前,系統會先將語音內容傳送給 Google 處理。</translation>
 <translation id="696103774840402661">系統已永久刪除這部「<ph name="DEVICE_TYPE" />」上所有使用者的所有檔案與本機資料。</translation>
+<translation id="6961327401577924850">一般來說,網站掃描藍牙裝置的原因是為了執行功能,例如設定或同步低功耗信標、健康/健身智慧手環或智慧型燈泡</translation>
 <translation id="6963872466817251924">文字游標醒目顯示工具</translation>
 <translation id="6964390816189577014">英雄</translation>
 <translation id="6964760285928603117">從群組中移除</translation>
@@ -6617,7 +6621,7 @@
 <translation id="7098447629416471489">你所儲存的其他搜尋引擎會顯示在這裡</translation>
 <translation id="7098936390718461001">{NUM_APPS,plural, =1{移除應用程式}other{移除應用程式}}</translation>
 <translation id="7099337801055912064">無法載入大型 PPD。大小上限為 250 KB。</translation>
-<translation id="7099739618316136113">{COUNT,plural, =0{沒有任何密碼遭外洩}=1{{COUNT} 個遭外洩的密碼}other{{COUNT} 個遭外洩的密碼}}</translation>
+<translation id="7099739618316136113">{COUNT,plural, =0{沒有任何密碼遭外洩}=1{{COUNT} 組遭外洩的密碼}other{{COUNT} 組遭外洩的密碼}}</translation>
 <translation id="7102832101143475489">要求逾時</translation>
 <translation id="710640343305609397">開啟網路設定</translation>
 <translation id="7107609441453408294">透過所有揚聲器播放相同的音訊</translation>
@@ -6731,6 +6735,7 @@
 <translation id="7227458944009118910">下列應用程式也可以處理通訊協定連結。其他應用程式則會要求授權。</translation>
 <translation id="7228056665272655255">如要設定指紋,請讓孩子輕觸鍵盤右上角的指紋感應器。孩子的指紋資料會安全地儲存在這部「<ph name="DEVICE_TYPE" />」上,絕不會外洩。</translation>
 <translation id="7228523857728654909">螢幕鎖定和登入</translation>
+<translation id="7228854227189381547">不切換</translation>
 <translation id="7230222852462421043">還原視窗 (&amp;R)</translation>
 <translation id="7231260028442989757">查看、關閉及回覆手機的通知</translation>
 <translation id="7232750842195536390">無法重新命名</translation>
@@ -7064,6 +7069,7 @@
 <translation id="7545466883021407599">無法連上伺服器。請檢查網路連線,然後再試一次。如果問題仍然無法解決,請嘗試重新啟動 Chromebook。錯誤代碼:<ph name="ERROR_CODE" />。</translation>
 <translation id="7547317915858803630">警告:你的 <ph name="PRODUCT_NAME" /> 設定均儲存在網路硬碟中。這麼做可能導致速度變慢、當機,甚至資料遺失。</translation>
 <translation id="7548856833046333824">檸檬汁</translation>
+<translation id="7549434883223124329">要切換裝置語言嗎?</translation>
 <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432"><ph name="FILE_NAME" /> 下載失敗</translation>
 <translation id="7551643184018910560">固定至檔案櫃</translation>
@@ -8090,6 +8096,7 @@
 <translation id="8465444703385715657">需要你的授權才能執行「<ph name="PLUGIN_NAME" />」</translation>
 <translation id="8466417995783206254">這個分頁正在使用子母畫面模式播放影片。</translation>
 <translation id="8467326454809944210">選擇其他語言</translation>
+<translation id="8468087214092422866">不得尋找藍牙裝置</translation>
 <translation id="8470513973197838199">已儲存 <ph name="ORIGIN" /> 的密碼</translation>
 <translation id="8471525937465764768">網站通常會連線至 USB 裝置,以提供列印文件或儲存至裝置等功能</translation>
 <translation id="8471959340398751476">折扣搜尋功能已關閉。你可以在自訂選單中開啟這項功能</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index 82e374f..07a44d5 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -1249,6 +1249,7 @@
 <translation id="2104166991923847969">Vala ama-hotspot ngokuzenzakalela</translation>
 <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> okufihliwe</translation>
 <translation id="2108349519800154983">{COUNT,plural, =1{Inombolo yefoni}one{Izinombolo zefoni ezingu-#}other{Izinombolo zefoni ezingu-#}}</translation>
+<translation id="2110941575868943054">Ivunyelwe ukubheka amadivayisi e-Bluetooth</translation>
 <translation id="211144231511833662">Sula Izinhlobo</translation>
 <translation id="2111670510994270194">Ithebhu entsha kwesokudla</translation>
 <translation id="2112554630428445878">Siyakwamukela, <ph name="USERNAME" /></translation>
@@ -3044,6 +3045,7 @@
 <translation id="3756485814916578707">Isikrini sokusakaza</translation>
 <translation id="3756578970075173856">Setha iphinikhodi</translation>
 <translation id="3756795331760037744">Vumela Umsizi we-Google ukuthi asebenzise ulwazi oluseskrinini sika-<ph name="SUPERVISED_USER_NAME" /> ukuze asize</translation>
+<translation id="3756806135608816820">Amasayithi angacela ukubheka amadivayisi e-Bluetooth</translation>
 <translation id="3757733214359997190">Awekho amasayithi atholiwe</translation>
 <translation id="375841316537350618">Ilanda isikripthi sommeleli...</translation>
 <translation id="3758842566811519622">Amakhukhi asethiwe</translation>
@@ -3813,6 +3815,7 @@
 <translation id="4469762931504673593">I-<ph name="ORIGIN" /> ingahlela amafayela ku-<ph name="FOLDERNAME" /></translation>
 <translation id="4470957202018033307">Okuncanyelwayo kwesitoreji sangaphandle</translation>
 <translation id="4471354919263203780">Ilanda amafayela okubonwa kwengxoxo... <ph name="PERCENT" />%</translation>
+<translation id="4472298120638043495">Ungasebenzisa ulimi lwe-akhawunti yakho ye-Google oluncamelayo (<ph name="NEW_LOCALE_FROM_GAIA" />)</translation>
 <translation id="447252321002412580">Siza ukuthuthukisa izici ze-Chrome nokusebenza</translation>
 <translation id="4472575034687746823">Qalisa</translation>
 <translation id="4474155171896946103">Beka uphawu lokubekisa wonke amathebhu...</translation>
@@ -4543,7 +4546,6 @@
 <translation id="5158206172605340248">Imenyu yezimpawu zesigqi ichithiwe.</translation>
 <translation id="5159094275429367735">Setha i-Crostini</translation>
 <translation id="5159419673777902220">Umzali wakho ukhubaze izimvume zezandiso</translation>
-<translation id="5159643365935452998">Buyekeza ukusula idatha ngokuzenzekelayo</translation>
 <translation id="5160634252433617617">Ikhibhodi ephathekayo</translation>
 <translation id="5160857336552977725">Ngena ngemvume ku-<ph name="DEVICE_TYPE" /> yakho</translation>
 <translation id="5161251470972801814">Amadivayisi we-USB avela ku-<ph name="VENDOR_NAME" /></translation>
@@ -5020,6 +5022,7 @@
 <translation id="5600706100022181951">Isibuyekezo sizolandwa kusetshenziswa u-<ph name="UPDATE_SIZE_MB" /> MB wedatha yeselula. Ungathanda ukuqhubeka?</translation>
 <translation id="5601503069213153581">Iphinikhodi</translation>
 <translation id="5601823921345337195">Ayivumelekile ukuxhuma kumadivayisi e-MIDI</translation>
+<translation id="5601833336918638013">Ungavumeli amasayithi ukuthi abheke amadivayisi e-Bluetooth</translation>
 <translation id="5602765853043467355">Sula amabhukhimakhi, umlando, amaphasiwedi, nokuningi kusuka kule divayisi</translation>
 <translation id="5605758115928394442">Isaziso siye sathunyelwa kufoni yakho ukuze kuqinisekiswe ukuthi unguwe.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Lesi sandiso sivinjelwe}one{Lezi zandiso zivinjelwe}other{Lezi zandiso zivinjelwe}}</translation>
@@ -6480,6 +6483,7 @@
 <translation id="6960507406838246615">Kudingeka isibuyekezo se-Linux</translation>
 <translation id="6960648667961844909">Ayikwazanga ukudawuniloda amafayela wenkulumo ye-<ph name="LANGUAGE" />. Ukudawuniloda kuzozanywa kamuva. Inkulumo ithunyelwa ku-Google ukuze icubungulwe kuze kuqedwe ukudawuniloda.</translation>
 <translation id="696103774840402661">Wonke amafayela nedatha yendawo yabo bonke abasebenzisi kule <ph name="DEVICE_TYPE" /> kususwe ngunaphakade.</translation>
+<translation id="6961327401577924850">Amasayithi avame ukuxhuma kumadivayisi we-Bluetooth ngezakhi ezinjengokusetha noma ukuvumelanisa ibhekhoni lamandla amancane, isilandeleli sempilo noma ukufaneleka, noma isibani sokukhanya okusmathi</translation>
 <translation id="6963872466817251924">Isigqamisi se-cursor yombhalo</translation>
 <translation id="6964390816189577014">Iqhawe</translation>
 <translation id="6964760285928603117">Susa kusukela kuqembu</translation>
@@ -6756,6 +6760,7 @@
 <translation id="7227458944009118910">Ama-app asohlwini olungezansi angawabamba namalinki wephrothokholi. Amanye ama-app azocela imvume.</translation>
 <translation id="7228056665272655255">Ukuze usethe isigxivizo somunwe, cela ingane yakho ukuthi ithinte inzwa yesigxivizo sominwe ekhoneni eliphezulu kwesokudla sekhibhodi. Idatha yesigxivizo somunwe yengane yakho igcinwa ngokuvikelekile futhi ayishiyi le-<ph name="DEVICE_TYPE" />.</translation>
 <translation id="7228523857728654909">Ukukhiya isikrini nokungena ngemvume</translation>
+<translation id="7228854227189381547">Ungashintshi</translation>
 <translation id="7230222852462421043">&amp;Buyisela iwindi</translation>
 <translation id="7231260028442989757">Buka, chitha, futhi uphendule izaziso zefoni yakho</translation>
 <translation id="7232750842195536390">Ukuqamba kabusha kwehlulekile</translation>
@@ -7089,6 +7094,7 @@
 <translation id="7545466883021407599">Ayikwazanga ukuxhumana neseva. Hlola uxhumo lwakho lwenethiwekhi uphinde uzame futhi Uma usese nenkinga, zama ukuqala kabusha i-Chromebook yakho. Ikhodi yephutha: <ph name="ERROR_CODE" />.</translation>
 <translation id="7547317915858803630">Isexwayiso: izilungiselelo zakho ze-<ph name="PRODUCT_NAME" /> zigcinwa kudrayivu yenethiwekhi. Lokhu kungaholela ekuhambeni kancane, ukuphahlazeka, noma nokulahlekelwa yidatha.</translation>
 <translation id="7548856833046333824">Ilamula</translation>
+<translation id="7549434883223124329">Shintsha ulimi lwedivayisi?</translation>
 <translation id="7550830279652415241">amabhukhimakhi_<ph name="DATESTAMP" />.html</translation>
 <translation id="7551059576287086432">Ukulanda kwe-<ph name="FILE_NAME" /> akuphumelelanga</translation>
 <translation id="7551643184018910560">Phina kushelufu</translation>
@@ -8113,6 +8119,7 @@
 <translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> idinga imvume yakho ukuqalisa</translation>
 <translation id="8466417995783206254">Le thebhu idlala ividiyo kumodi yesithombe-esithombeni.</translation>
 <translation id="8467326454809944210">Khetha olunye ulimi</translation>
+<translation id="8468087214092422866">Ayivunyelwe ukubheka amadivayisi e-Bluetooth</translation>
 <translation id="8470513973197838199">Amaphasiwedi alondoloziwe e-<ph name="ORIGIN" /></translation>
 <translation id="8471525937465764768">Amasayithi avamise ukuxhuma amadivayisi e-USB kuzici ezifana nokuphrinta idokhumenti noma ukulondoloza kudivayisi yesitoreji</translation>
 <translation id="8471959340398751476">Izaphulelo zivaliwe. Ungazivula kumenyu engokwezifiso</translation>
diff --git a/chrome/app/resources/google_chrome_strings_af.xtb b/chrome/app/resources/google_chrome_strings_af.xtb
index 9e05d2d..6739c76 100644
--- a/chrome/app/resources/google_chrome_strings_af.xtb
+++ b/chrome/app/resources/google_chrome_strings_af.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Wag tans om te installeer...</translation>
 <translation id="3059710691562604940">Veiligblaai is afgeskakel. Chrome beveel aan dat jy dit aanskakel.</translation>
 <translation id="3065168410429928842">Chrome-oortjie</translation>
-<translation id="3069821012350118710">Werwe wat jy besoek, kan jou inligting onthou totdat jy Chrome toemaak</translation>
 <translation id="3080151273017101988">Hou aan om agtergrondprogramme te laat loop wanneer Google Chrome toe is</translation>
 <translation id="3089968997497233615">Daar is 'n nuwe, veiliger weergawe van Google Chrome beskikbaar.</translation>
 <translation id="3100998948628680988">Gee jou Chrome-profiel 'n naam</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Kon nie Chrome begin nie. Probeer weer.</translation>
 <translation id="5867197326698922595">Google Chrome probeer tans om wagwoorde te wysig.</translation>
 <translation id="5895138241574237353">Herbegin</translation>
-<translation id="5901850848447342934">Jy sal <ph name="BEGIN_BOLD" />by die meeste werwe afgemeld word<ph name="END_BOLD" /> wanneer jy Chrome toemaak. As sinkronisering af is, sal jy ook <ph name="BEGIN_BOLD" />by Google-dienste en Chrome afgemeld word<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Netwerkaanmelding</translation>
 <translation id="5924017743176219022">Koppel tans aan die internet …</translation>
 <translation id="5940385492829620908">Jou web, boekmerke en ander Chrome-goed woon hier.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome reageer nie. Herbegin nou?</translation>
 <translation id="861702415419836452">Chrome moet toestemming hê om toegang te kry tot jou kamera om 'n 3D-kaart van jou omgewing te skep</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome sal oor 1 minuut herbegin}other{Chrome sal oor # minute herbegin}}</translation>
-<translation id="8629311577791198377">Webkoekies en werfdata word outomaties uitgevee wanneer jy alle Chrome-vensters toemaak</translation>
 <translation id="8641606876632989680">Chrome sal jou in kennis stel wanneer jy met 'n gekompromitteerde wagwoord aanmeld</translation>
 <translation id="8649026945479135076">Dit is algemeen vir werwe wat jy besoek om dinge waarin jy belangstel te onthou en jou ervaring te personaliseer. Werwe kan ook inligting oor jou belangstellings in Chrome stoor.</translation>
 <translation id="8669527147644353129">Google Chrome-helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb
index 40fa4d03..b675ca9 100644
--- a/chrome/app/resources/google_chrome_strings_am.xtb
+++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">ለመጫን በመጠበቅ ላይ...</translation>
 <translation id="3059710691562604940">የጥንቃቄ አሰሳ ጠፍቷል። Chrome እንዲያበሩት ይመክራል።</translation>
 <translation id="3065168410429928842">የChrome ትር</translation>
-<translation id="3069821012350118710">እርስዎ የጎበኟቸው ጣቢያዎች Chromeን እስኪዘጉ ድረስ መረጃዎን ያስታውሳሉ</translation>
 <translation id="3080151273017101988">Google Chrome ሲዘጋ የጀርባ መተግበሪያዎችን ማሂዱን ይቀጥሉ</translation>
 <translation id="3089968997497233615">አዲስና ደህንነቱ ይበልጥ የተጠበቀ የGoogle Chrome ስሪት ይገኛል።</translation>
 <translation id="3100998948628680988">የChrome መገለጫዎን ይሰይሙ</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Chromeን ማስጀመር አልተቻለም። እንደገና ይሞክሩ።</translation>
 <translation id="5867197326698922595">Google Chrome የይለፍ ቃላትን ለማርትዕ እየሞከረ ነው።</translation>
 <translation id="5895138241574237353">እንደገና ጀምር</translation>
-<translation id="5901850848447342934">Chromeን ሲዘጉ <ph name="BEGIN_BOLD" />ከብዙ ጣቢያዎች ዘግተው እንዲወጡ<ph name="END_BOLD" /> ይደረጋሉ። ማስመር ጠፍቶ ከሆነ <ph name="BEGIN_BOLD" />ከGoogle አገልግሎቶች እና ከChrome ዘግተው እንዲወጡ<ph name="END_BOLD" /> ይደረጋሉ።</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - በአውታረ መረብ ወደ መለያ መግባት</translation>
 <translation id="5924017743176219022">ከበይነመረቡ ጋር በመገናኘት ላይ...</translation>
 <translation id="5940385492829620908">የእርስዎ ድር፣ ዕልባቶች እና ሌሎች የChrome ነገሮች እዚህ ይኖራሉ።</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome መልስ አይሰጥም። አሁን ዳግም ይጀምር?</translation>
 <translation id="861702415419836452">Chrome የዙሪያዎ 3ል ካርታ መፍጠር እንዲችል ካሜራዎን የመድረስ ፈቃድ ያስፈልገዋል</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome በ1 ደቂቃ ውስጥ ዳግም ይጀመራል}one{Chrome በ# ደቂቃዎች ውስጥ ዳግም ይጀመራል}other{Chrome በ# ደቂቃዎች ውስጥ ዳግም ይጀመራል}}</translation>
-<translation id="8629311577791198377">ሁሉንም የChrome መስኮቶች ሲዘጉ፣ ኩኪዎች እና የጣቢያ ውሂብ በራስሰር ይጸዳሉ</translation>
 <translation id="8641606876632989680">እርስዎ በተጠለፈ የይለፍ ቅቃል ሲገቡ Chrome ያሳውቀዎታል</translation>
 <translation id="8649026945479135076">የሚጎበኟቸው ጣቢያዎች ልምድዎን ግላዊነት ማላበስ እንዲችሉ እርስዎ የሚፈልጓቸውን ነገሮች ማስታወስ የተለመደ ነው። እንዲሁም ጣቢያዎች ስለዝንባሌዎችዎ መረጃን በChrome አማካኝነት ማከማቸት ይችላሉ።</translation>
 <translation id="8669527147644353129">Google Chrome አጋዥ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb
index 0eb1d529..4a4d447 100644
--- a/chrome/app/resources/google_chrome_strings_ar.xtb
+++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -119,7 +119,6 @@
 <translation id="3038232873781883849">في انتظار التثبيت...</translation>
 <translation id="3059710691562604940">‏تم إيقاف "التصفّح الآمن" ويقترح متصفّح Chrome تفعيله.</translation>
 <translation id="3065168410429928842">‏علامة تبويب Chrome</translation>
-<translation id="3069821012350118710">‏تحتفظ المواقع الإلكترونية التي تزورها بمعلوماتك إلى أن تغلق متصفّح Chrome.</translation>
 <translation id="3080151273017101988">‏استمرار تشغيل تطبيقات الخلفية عند إغلاق Google Chrome</translation>
 <translation id="3089968997497233615">‏يتوفر إصدار جديد وأكثر أمانًا لمتصفح Google Chrome.</translation>
 <translation id="3100998948628680988">‏تسمية ملفك الشخصى على Chrome</translation>
@@ -249,7 +248,6 @@
 <translation id="5804318322022881572">‏تعذَّر إطلاق Chrome. يُرجى إعادة المحاولة.</translation>
 <translation id="5867197326698922595">‏يحاول Google Chrome تعديل كلمات المرور.</translation>
 <translation id="5895138241574237353">إعادة التشغيل</translation>
-<translation id="5901850848447342934">‏سيتم <ph name="BEGIN_BOLD" />تسجيل خروجك من معظم المواقع الإلكترونية<ph name="END_BOLD" /> عند إغلاق متصفّح Chrome. إذا كانت المزامنة متوقّفة، سيتم أيضًا <ph name="BEGIN_BOLD" />تسجيل خروجك من خدمات Google ومتصفّح Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - تسجيل الدخول إلى الشبكة</translation>
 <translation id="5924017743176219022">جارٍ الاتصال بالإنترنت...</translation>
 <translation id="5940385492829620908">‏الويب والإشارات المرجعية وغيرها من عناصر Chrome توجد هنا.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">‏لا يستجيب Google Chrome. هل تريد إعادة التشغيل الآن؟</translation>
 <translation id="861702415419836452">‏يحتاج متصفِّح Chrome إلى إذن للوصول إلى الكاميرا من أجل إنشاء خريطة ثلاثية الأبعاد للبيئة المحيطة بك.</translation>
 <translation id="8625237574518804553">{0,plural, =1{‏ستتم إعادة تشغيل Chrome في غضون دقيقة واحدة}zero{‏ستتم إعادة تشغيل Chrome في غضون # دقيقة}two{‏ستتم إعادة تشغيل Chrome في غضون دقيقتين}few{‏ستتم إعادة تشغيل Chrome في غضون # دقائق}many{‏ستتم إعادة تشغيل Chrome في غضون # دقيقةً}other{‏ستتم إعادة تشغيل Chrome في غضون # دقيقة}}</translation>
-<translation id="8629311577791198377">‏عند إغلاق جميع نوافذ Chrome، يتم تلقائيًا محو ملفات تعريف الارتباط وبيانات المواقع الإلكترونية.</translation>
 <translation id="8641606876632989680">‏في حال تسجيل الدخول باستخدام كلمة مرور محتمَل تعرّضها للاختراق، سيرسل Chrome إشعارات إليك.</translation>
 <translation id="8649026945479135076">‏غالبًا ما تتذكّر المواقع الإلكترونية التي تزورها المحتوى الذي يهمك، وذلك من أجل تخصيص تجربتك. يمكن أيضًا أن تخزّن المواقع الإلكترونية معلومات عن اهتماماتك في متصفّح Chrome.</translation>
 <translation id="8669527147644353129">‏مساعد Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_as.xtb b/chrome/app/resources/google_chrome_strings_as.xtb
index b0c4403..9593ef3 100644
--- a/chrome/app/resources/google_chrome_strings_as.xtb
+++ b/chrome/app/resources/google_chrome_strings_as.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">ইনষ্টল কৰাৰ বাবে অপেক্ষা কৰি থকা হৈছে...</translation>
 <translation id="3059710691562604940">সুৰক্ষিত ব্ৰাউজিং অফ আছে। Chromeএ ইয়াক অন কৰাটো চুপাৰিছ কৰে।</translation>
 <translation id="3065168410429928842">Chrome টেব</translation>
-<translation id="3069821012350118710">আপুনি Chrome বন্ধ নকৰালৈকে আপুনি চোৱা ছাইটসমূহে আপোনাৰ তথ্য মনত ৰাখে</translation>
 <translation id="3080151273017101988">Google Chrome বন্ধ কৰাৰ পিছতো নেপথ্যত এপ্‌সমূহ চলি থাকিবলৈ দিয়ক</translation>
 <translation id="3089968997497233615">Google Chromeৰ এটি নতুন, অধিক সুৰক্ষিত সংস্কৰণ উপলব্ধ।</translation>
 <translation id="3100998948628680988">আপোনাৰ Chrome প্ৰ'ফাইলৰ নাম দিয়ক</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome লঞ্চ কৰিব পৰা নগ'ল। পুনৰ চেষ্টা কৰক।</translation>
 <translation id="5867197326698922595">Google Chromeএ পাছৱর্ডসমূহ সম্পাদনা কৰিবলৈ চেষ্টা কৰি আছে।</translation>
 <translation id="5895138241574237353">ৰিষ্টাৰ্ট কৰক</translation>
-<translation id="5901850848447342934">আপুনি Chrome বন্ধ কৰিলে আপোনাক <ph name="BEGIN_BOLD" />বেছিভাগ ছাইটৰ পৰা ছাইন আউট কৰোৱা হ’ব<ph name="END_BOLD" />। যদি ছিংক অফ কৰা থাকে, আপোনাক লগতে <ph name="BEGIN_BOLD" />Googleৰ সেৱা আৰু Chromeৰ পৰা ছাইন আউট কৰোৱা হ’ব<ph name="END_BOLD" />।</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - নেটৱর্কত ছাইন ইন</translation>
 <translation id="5924017743176219022">ইন্টাৰনেটৰ সৈতে সংযোগ কৰি থকা হৈছে...</translation>
 <translation id="5940385492829620908">আপোনাৰ ৱেব, বুকমার্ক আৰু Chromeৰ অন্য বস্তুবোৰ ইয়াত থাকে৷</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chromeএ সঁহাৰি জনোৱা নাই। এতিয়াই পুনৰ লঞ্চ কৰিবনে?</translation>
 <translation id="861702415419836452">আপোনাৰ চৌপাশৰ এখন 3D মেপ সৃষ্টি কৰিবলৈ Chromeক আপোনাৰ কেমেৰা এক্সেছ কৰাৰ অনুমতিৰ প্ৰয়োজন</translation>
 <translation id="8625237574518804553">{0,plural, =1{১ মিনিটত Chrome পুনৰ লঞ্চ হ’ব}one{# মিনিটত Chrome পুনৰ লঞ্চ হ’ব}other{# মিনিটত Chrome পুনৰ লঞ্চ হ’ব}}</translation>
-<translation id="8629311577791198377">আপুনি Chromeৰ আটাইবোৰ ৱিণ্ড’ বন্ধ কৰিলে কুকি আৰু ছাইটৰ ডেটা স্বয়ংক্ৰিয়ভাৱে মচা হয়</translation>
 <translation id="8641606876632989680">আপুনি কোনো হেক কৰা পাছৱৰ্ডৰ জৰিয়তে ছাইন ইন কৰিলে Chromeএ আপোনাক জাননী দিব</translation>
 <translation id="8649026945479135076">আপোনাৰ অভিজ্ঞতা ব্যক্তিগতকৃত কৰিবলৈ, আপুনি চোৱা ছাইটে আপোনাৰ আগ্ৰহৰ বিষয়সমূহ মনত ৰখাটো সাধাৰণ কথা। ছাইটে আপোনাৰ আগ্ৰহৰ বিষয়ে তথ্য Chromeৰ জৰিয়তে ষ্ট’ৰ কৰিবও পাৰে।</translation>
 <translation id="8669527147644353129">Google Chrome সহায়ক</translation>
diff --git a/chrome/app/resources/google_chrome_strings_az.xtb b/chrome/app/resources/google_chrome_strings_az.xtb
index d399153..c39b5c7 100644
--- a/chrome/app/resources/google_chrome_strings_az.xtb
+++ b/chrome/app/resources/google_chrome_strings_az.xtb
@@ -118,7 +118,6 @@
 <translation id="3038232873781883849">Quraşdırılması gözlənilir...</translation>
 <translation id="3059710691562604940">Təhlükəsiz Baxış deaktivdir. Chrome onu aktiv etməyi tövsiyə edir.</translation>
 <translation id="3065168410429928842">Chrome tabı</translation>
-<translation id="3069821012350118710">Ziyarət etdiyiniz saytlar Chrome'u bağlayana qədər məlumatlarınızı xatırlayır</translation>
 <translation id="3080151273017101988">Google Chrome bağlı olduqda arxa fon tətbiqləri davam etdirilsin</translation>
 <translation id="3089968997497233615">Google Chrome'un yeni, güvənli versiyası əlçatandır.</translation>
 <translation id="3100998948628680988">Chrome profilinizə ad verin</translation>
@@ -248,7 +247,6 @@
 <translation id="5804318322022881572">Chrome başlamadı. Yenidən sınayın.</translation>
 <translation id="5867197326698922595">Google Chrome parolları redaktə etməyə çalışır.</translation>
 <translation id="5895138241574237353">Yenidən başladın</translation>
-<translation id="5901850848447342934">Chrome'u bağladıqda <ph name="BEGIN_BOLD" />əksər saytlardan<ph name="END_BOLD" /> çıxacaqsınız. Sinxronizasiya deaktivdirsə <ph name="BEGIN_BOLD" />Google xidmətlərindən və Chrome'dan da çıxacaqsınız<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Şəbəkəyə Giriş</translation>
 <translation id="5924017743176219022">İnternetə qoşulur...</translation>
 <translation id="5940385492829620908">Veb, əlfəcinlər və Chrome'a aid hər şeyiniz buradadır.</translation>
@@ -385,7 +383,6 @@
 <translation id="8614913330719544658">Google Chrome cavab vermir. Yenidən başladılsın?</translation>
 <translation id="861702415419836452">Chrome ətrafınızın 3D xəritəsini yaratmaq üçün kameranıza giriş icazəsi tələb edir</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 1 dəqiqəyə yenidən başlayacaq}other{Chrome # dəqiqəyə yenidən başlayacaq}}</translation>
-<translation id="8629311577791198377">Bütün Chrome pəncərələrini bağladığınız zaman kukilər və sayt datası avtomatik olaraq silinir</translation>
 <translation id="8641606876632989680">Oğurlanmış parol ilə daxil olduqda Chrome sizə bildiriş göndərəcək</translation>
 <translation id="8649026945479135076">Ziyarət etdiyiniz saytların təcrübənizi fərdiləşdirmək üçün maraqlarınızı xatırlaması normaldır. Saytlar həmçinin maraqlarınız haqqında Chrome ilə məlumat saxlaya bilər.</translation>
 <translation id="8669527147644353129">Google Chrome Yardımçı</translation>
diff --git a/chrome/app/resources/google_chrome_strings_be.xtb b/chrome/app/resources/google_chrome_strings_be.xtb
index ec98188..36efc7e 100644
--- a/chrome/app/resources/google_chrome_strings_be.xtb
+++ b/chrome/app/resources/google_chrome_strings_be.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Чаканне ўсталявання...</translation>
 <translation id="3059710691562604940">"Бяспечны прагляд" выключаны. Chrome рэкамендуе ўключыць гэты рэжым.</translation>
 <translation id="3065168410429928842">Укладка Chrome</translation>
-<translation id="3069821012350118710">Сайты, якія вы наведваеце, захоўваюць вашы даныя, пакуль вы не закрыеце Chrome</translation>
 <translation id="3080151273017101988">Працягваць выконваць фонавыя праграмы, калі Google Chrome закрыты</translation>
 <translation id="3089968997497233615">Ёсць новая, больш бяспечная версія Google Chrome.</translation>
 <translation id="3100998948628680988">Дайце назву свайму профілю Chrome</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Не ўдалося запусціць Chrome. Паўтарыце спробу.</translation>
 <translation id="5867197326698922595">Google Chrome спрабуе змяніць паролі.</translation>
 <translation id="5895138241574237353">Перазапусціць</translation>
-<translation id="5901850848447342934">Калі вы закрыеце Chrome, вы <ph name="BEGIN_BOLD" />выйдзеце з большасці сайтаў<ph name="END_BOLD" />. Калі сінхранізацыя выключана, вы таксама <ph name="BEGIN_BOLD" />выйдзеце з сэрвісаў Google і браўзера Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Уваход у сетку</translation>
 <translation id="5924017743176219022">Ідзе падключэнне да інтэрнэту...</translation>
 <translation id="5940385492829620908">Тут знаходзяцца вашы вэб-старонкі, закладкі і іншыя даныя браўзера Chrome.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome не адказвае. Перазапусціць?</translation>
 <translation id="861702415419836452">Chrome запытвае дазвол на доступ да камеры, каб стварыць 3D-карту асяроддзя</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome будзе перазапушчаны праз 1 хвіліну}one{Chrome будзе перазапушчаны праз # хвіліну}few{Chrome будзе перазапушчаны праз # хвіліны}many{Chrome будзе перазапушчаны праз # хвілін}other{Chrome будзе перазапушчаны праз # хвіліны}}</translation>
-<translation id="8629311577791198377">Калі вы закрыеце ўсе вокны Chrome, файлы cookie і даныя сайтаў будуць аўтаматычна выдалены</translation>
 <translation id="8641606876632989680">Chrome адправіць вам апавяшчэнне, калі вы ўвойдзеце ва ўліковы запіс, выкарыстаўшы раскрыты пароль</translation>
 <translation id="8649026945479135076">Гэта звычайная практыка, калі сайты, якія вы наведваеце, запамінаюць, што іменна вас цікавіць, каб персаналізаваць для вас сваё змесціва. Сайты таксама могуць захоўваць звесткі пра вашы інтарэсы ў браўзеры Chrome.</translation>
 <translation id="8669527147644353129">Памочнік Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bg.xtb b/chrome/app/resources/google_chrome_strings_bg.xtb
index cbfde7f4..ba22c25 100644
--- a/chrome/app/resources/google_chrome_strings_bg.xtb
+++ b/chrome/app/resources/google_chrome_strings_bg.xtb
@@ -119,7 +119,6 @@
 <translation id="3038232873781883849">Изчаква се инсталирането да започне...</translation>
 <translation id="3059710691562604940">Функцията „Безопасно сърфиране“ е изключена. Chrome препоръчва да я включите.</translation>
 <translation id="3065168410429928842">Раздел в Chrome</translation>
-<translation id="3069821012350118710">Сайтовете, които посещавате, помнят информацията ви, докато затворите Chrome</translation>
 <translation id="3080151273017101988">Изпълняване на приложения на заден план при затворен браузър Google Chrome</translation>
 <translation id="3089968997497233615">Налице е нова, по-сигурна версия на Google Chrome.</translation>
 <translation id="3100998948628680988">Наименуване на потребителския ви профил в Chrome</translation>
@@ -247,7 +246,6 @@
 <translation id="5804318322022881572">Chrome не можа да се стартира. Опитайте отново.</translation>
 <translation id="5867197326698922595">Google Chrome се опитва да редактира паролите.</translation>
 <translation id="5895138241574237353">Рестартиране</translation>
-<translation id="5901850848447342934">Когато затворите Chrome, <ph name="BEGIN_BOLD" />ще излезете от повечето сайтове<ph name="END_BOLD" />. Ако синхронизирането е изключено, <ph name="BEGIN_BOLD" />ще излезете и от услугите на Google и Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Вход в мрежата</translation>
 <translation id="5924017743176219022">Установява се връзка с интернет...</translation>
 <translation id="5940385492829620908">Тук ще намерите посещаваните от вас места в мрежата, отметките и другите си неща в Chrome.</translation>
@@ -384,7 +382,6 @@
 <translation id="8614913330719544658">Google Chrome блокира. Да се стартира ли отново сега?</translation>
 <translation id="861702415419836452">Chrome се нуждае от разрешение за достъп до камерата ви, за да създаде триизмерна карта на заобикалящата ви среда</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome ще се стартира отново след 1 минута}other{Chrome ще се стартира отново след # минути}}</translation>
-<translation id="8629311577791198377">Когато затворите прозорците на Chrome, „бисквитките“ и данните за сайтовете автоматично се изчистват</translation>
 <translation id="8641606876632989680">Chrome ще ви уведоми, когато влизате в профил с компрометирана парола</translation>
 <translation id="8649026945479135076">Посещаваните от вас сайтове обикновено запомнят нещата, които ви интересуват, за да персонализират практическата ви работа. Те също така могат да съхраняват в Chrome информация за интересите ви.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb
index 99dd6fba..6fdfa5ea 100644
--- a/chrome/app/resources/google_chrome_strings_bn.xtb
+++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -119,7 +119,6 @@
 <translation id="3038232873781883849">ইনস্টল করার জন্য অপেক্ষা করা হচ্ছে...</translation>
 <translation id="3059710691562604940">'Safe Browsing'-এর সুবিধা বন্ধ করা আছে। তবে Chrome আপনাকে এটি চালু রাখার জন্য সাজেস্ট করছে।</translation>
 <translation id="3065168410429928842">Chrome ট্যাব</translation>
-<translation id="3069821012350118710">Chrome বন্ধ না করা পর্যন্ত আপনি যেসব সাইট ঘুরে দেখেন, সেগুলি আপনার তথ্য মনে রাখে</translation>
 <translation id="3080151273017101988">Google Chrome বন্ধ হলে পশ্চাদপট অ্যাপ্লিকেশানের চলা অবিরত রাখুন</translation>
 <translation id="3089968997497233615">Google Chrome-এর একটি নতুন, তুলনামূলক নিরাপদ ভার্সন উপলব্ধ৷</translation>
 <translation id="3100998948628680988">আপনার Chrome প্রোফাইলের নাম লিখুন</translation>
@@ -249,7 +248,6 @@
 <translation id="5804318322022881572">Chrome লঞ্চ করা যায়নি। আবার চেষ্টা করুন।</translation>
 <translation id="5867197326698922595">Google Chrome আপনার পাসওয়ার্ড এডিট করার অনুমতি চাইছে।</translation>
 <translation id="5895138241574237353">পুনর্সূচনা</translation>
-<translation id="5901850848447342934">Chrome বন্ধ করে দেওয়া হলে আপনাকে <ph name="BEGIN_BOLD" />বেশিরভাগ সাইট থেকে সাইন-আউট করে<ph name="END_BOLD" /> দেওয়া হবে। সিঙ্ক করার বিকল্প বন্ধ করা থাকলে আপনার অ্যাকাউন্ট <ph name="BEGIN_BOLD" />Google পরিষেবা এবং Chrome থেকে সাইন-আউট করে<ph name="END_BOLD" /> দেওয়া হবে।</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - নেটওয়ার্ক সাইন-ইন</translation>
 <translation id="5924017743176219022">ইন্টারনেটের সাথে কানেক্ট করা হচ্ছে...</translation>
 <translation id="5940385492829620908">আপনার ওয়েব, বুকমার্ক এবং Chrome-এর অন্যান্য জিনিস এখানে রয়েছে৷</translation>
@@ -386,7 +384,6 @@
 <translation id="8614913330719544658">Google Chrome প্রতিক্রিয়া করছে না৷ এখনই পুনঃলঞ্চ করবেন?</translation>
 <translation id="861702415419836452">আপনার আশেপাশের 3D ম্যাপ তৈরি করতে এই সাইটটির জন্য Chrome-কে আপনার ক্যামেরা অ্যাক্সেস করার অনুমতি দিতে হবে</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome ১ মিনিটের মধ্যে আবার লঞ্চ হবে}one{Chrome # মিনিটের মধ্যে আবার লঞ্চ হবে}other{Chrome # মিনিটের মধ্যে আবার লঞ্চ হবে}}</translation>
-<translation id="8629311577791198377">আপনি সব Chrome উইন্ডো বন্ধ করে দিলে, কুকি এবং সাইট ডেটা অটোমেটিক বন্ধ হয়ে যাবে</translation>
 <translation id="8641606876632989680">কোনও চুরি যাওয়া পাসওয়ার্ড দিয়ে সাইন-ইন করলে Chrome আপনাকে তা জানাবে</translation>
 <translation id="8649026945479135076">আপনার অভিজ্ঞতাকে পছন্দমতো করতে, আপনি যে সাইটগুলিতে যান সেগুলি আপনার আগ্রহের বিষয়গুলি মনে রাখা সাধারণ। এছাড়া Chrome-এর মাধ্যমে আপনার আগ্রহের বিষয়ে তথ্যগুলি সাইট স্টোর করতে পারে।</translation>
 <translation id="8669527147644353129">Google Chrome সহায়তাকারী</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bs.xtb b/chrome/app/resources/google_chrome_strings_bs.xtb
index 1cae4da..ac0cd3f 100644
--- a/chrome/app/resources/google_chrome_strings_bs.xtb
+++ b/chrome/app/resources/google_chrome_strings_bs.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Čekanje na instalaciju...</translation>
 <translation id="3059710691562604940">Sigurno pregledanje je isključeno. Chrome preporučuje da ga uključite.</translation>
 <translation id="3065168410429928842">Chromeova kartica</translation>
-<translation id="3069821012350118710">Web lokacije koje posjetite pamte vaše podatke dok ne zatvorite Chrome</translation>
 <translation id="3080151273017101988">Ostavi aplikacije da rade u pozadini kada se Google Chrome zatvori</translation>
 <translation id="3089968997497233615">Dostupna je nova, sigurnija verzija Google Chromea.</translation>
 <translation id="3100998948628680988">Dajte naziv Chrome profilu</translation>
@@ -251,7 +250,6 @@
 <translation id="5804318322022881572">Pokretanje Chromea nije uspjelo. Ponovite.</translation>
 <translation id="5867197326698922595">Google Chrome pokušava urediti lozinke.</translation>
 <translation id="5895138241574237353">Ponovo pokreni</translation>
-<translation id="5901850848447342934"><ph name="BEGIN_BOLD" />Odjavit ćete se s većine web lokacija<ph name="END_BOLD" /> kada zatvorite Chrome. Ako je sinhronizacija isključena, također ćete se <ph name="BEGIN_BOLD" />odjaviti s Googleovih usluga i Chromea<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – prijava na mrežu</translation>
 <translation id="5924017743176219022">Povezivanje s internetom...</translation>
 <translation id="5940385492829620908">Vaša aktivnost na webu, oznake i drugi sadržaji s Chromea se nalaze ovdje.</translation>
@@ -388,7 +386,6 @@
 <translation id="8614913330719544658">Google Chrome ne reagira. Ponovo pokrenuti sada?</translation>
 <translation id="861702415419836452">Chromeu je potrebno odobrenje da pristupi kameri radi kreiranja 3D mape vašeg okruženja</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome će se ponovo pokrenuti za 1 minutu}one{Chrome će se ponovo pokrenuti za # minutu}few{Chrome će se ponovo pokrenuti za # minute}other{Chrome će se ponovo pokrenuti za # minuta}}</translation>
-<translation id="8629311577791198377">Kada zatvorite sve prozore Chromea, kolačići i podaci web lokacija se automatski brišu</translation>
 <translation id="8641606876632989680">Chrome će vas obavijestiti kada se prijavite s ugroženom lozinkom</translation>
 <translation id="8649026945479135076">Uobičajeno je da web lokacije koje posjetite pamte stvari koje vas interesiraju radi personalizacije vašeg iskustva. Web lokacije mogu pohranjivati informacije o vašim interesovanjima i u Chromeu.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb
index b76ddda1..9aee773e 100644
--- a/chrome/app/resources/google_chrome_strings_ca.xtb
+++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">S'està esperant per instal·lar...</translation>
 <translation id="3059710691562604940">Navegació segura està desactivada. Chrome recomana activar-la.</translation>
 <translation id="3065168410429928842">Pestanya de Chrome</translation>
-<translation id="3069821012350118710">Els llocs web que visites recorden la teva informació fins que tanques Chrome.</translation>
 <translation id="3080151273017101988">Continua executant aplicacions de segon pla en tancar Google Chrome</translation>
 <translation id="3089968997497233615">Hi ha disponible una nova versió més segura de Google Chrome.</translation>
 <translation id="3100998948628680988">Posa nom al teu perfil de Chrome</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">No s'ha pogut iniciar Chrome. Torna-ho a provar.</translation>
 <translation id="5867197326698922595">Google Chrome està provant d'editar les contrasenyes.</translation>
 <translation id="5895138241574237353">Reinicia</translation>
-<translation id="5901850848447342934">Quan tanquis Chrome, se't <ph name="BEGIN_BOLD" />tancarà la sessió de la majoria de llocs web<ph name="END_BOLD" />. Si la sincronització està desactivada, també se't <ph name="BEGIN_BOLD" />tancarà la sessió de Chrome i dels serveis de Google<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Inici de sessió a la xarxa</translation>
 <translation id="5924017743176219022">S'està connectant a Internet...</translation>
 <translation id="5940385492829620908">El vostre web, les adreces d'interès i altres coses de Chrome resideixen aquí.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome no respon. Voleu tornar-lo a iniciar ara?</translation>
 <translation id="861702415419836452">Chrome necessita permís per accedir a la càmera i poder crear un mapa 3D del teu entorn</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome es reiniciarà d'aquí a 1 minut}other{Chrome es reiniciarà d'aquí a # minuts}}</translation>
-<translation id="8629311577791198377">Quan tanques totes les finestres de Chrome, les galetes i les dades de llocs web s'esborren automàticament.</translation>
 <translation id="8641606876632989680">Chrome t'enviarà una notificació quan iniciïs la sessió amb una contrasenya en perill</translation>
 <translation id="8649026945479135076">És habitual que els llocs web que visites recordin coses que t'interessen per personalitzar la teva experiència. Els llocs web també poden emmagatzemar informació a Chrome sobre els teus interessos.</translation>
 <translation id="8669527147644353129">Aplicació d'ajuda de Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb
index 6eec428..553764e 100644
--- a/chrome/app/resources/google_chrome_strings_cs.xtb
+++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Čekání na instalaci…</translation>
 <translation id="3059710691562604940">Bezpečné prohlížení je vypnuté. Chrome ho doporučuje zapnout.</translation>
 <translation id="3065168410429928842">Karta prohlížeče Chrome</translation>
-<translation id="3069821012350118710">Navštívené weby si pamatují vaše údaje, dokud Chrome nezavřete</translation>
 <translation id="3080151273017101988">Po ukončení prohlížeče Google Chrome nechat aplikace na pozadí spuštěné</translation>
 <translation id="3089968997497233615">K dispozici je nová, bezpečnější verze prohlížeče Google Chrome.</translation>
 <translation id="3100998948628680988">Zadejte název profilu Chrome</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome nelze spustit. Zkuste to znovu.</translation>
 <translation id="5867197326698922595">Google Chrome se pokouší upravit hesla.</translation>
 <translation id="5895138241574237353">Restartovat</translation>
-<translation id="5901850848447342934">Po zavření prohlížeče Chrome budete <ph name="BEGIN_BOLD" />odhlášeni z většiny webů<ph name="END_BOLD" />. Pokud je vypnutá synchronizace, budete také <ph name="BEGIN_BOLD" />odhlášeni ze služeb Google a z prohlížeče Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – přihlášení k síti</translation>
 <translation id="5924017743176219022">Připojování k internetu…</translation>
 <translation id="5940385492829620908">Zde jsou k dispozici vaše weby, záložky a další obsah Chromu.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome neodpovídá. Restartovat?</translation>
 <translation id="861702415419836452">Chrome potřebuje oprávnění k přístupu k fotoaparátu, aby mohl vytvořit 3D mapu vašeho okolí</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome se za 1 minutu restartuje}few{Chrome se za # minut restartuje}many{Chrome se za # minuty restartuje}other{Chrome se za # minut restartuje}}</translation>
-<translation id="8629311577791198377">Když zavřete všechna okna prohlížeče Chrome, automaticky se vymažou soubory cookie a data webů</translation>
 <translation id="8641606876632989680">Pokud se přihlásíte pomocí prolomeného hesla, Chrome vám to oznámí</translation>
 <translation id="8649026945479135076">Je běžné, že si navštívené weby pamatují, co vás zajímá, aby pro vás personalizovaly svůj obsah. Weby mohou v prohlížeči Chrome ukládat také informace o vašich zájmech.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cy.xtb b/chrome/app/resources/google_chrome_strings_cy.xtb
index a764ee5da..e324160 100644
--- a/chrome/app/resources/google_chrome_strings_cy.xtb
+++ b/chrome/app/resources/google_chrome_strings_cy.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Wrthi'n aros i osod...</translation>
 <translation id="3059710691562604940">Mae Pori'n Ddiogel wedi'i ddiffodd. Mae Chrome yn argymell ei droi ymlaen.</translation>
 <translation id="3065168410429928842">Tab Chrome</translation>
-<translation id="3069821012350118710">Mae gwefannau rydych yn ymweld â nhw yn cofio'ch gwybodaeth nes i chi gau Chrome</translation>
 <translation id="3080151273017101988">Parhau i redeg apiau cefndir pan fydd Google Chrome ar gau</translation>
 <translation id="3089968997497233615">Mae fersiwn newydd, fwy diogel o Google Chrome ar gael.</translation>
 <translation id="3100998948628680988">Enwch eich proffil Chrome</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Methu â lansio Chrome. Rhowch gynnig arall arni.</translation>
 <translation id="5867197326698922595">Mae Google Chrome yn ceisio golygu cyfrineiriau.</translation>
 <translation id="5895138241574237353">Ailgychwyn</translation>
-<translation id="5901850848447342934">Byddwch yn cael eich <ph name="BEGIN_BOLD" />allgofnodi o'r mwyafrif o wefannau<ph name="END_BOLD" /> pan fyddwch yn cau Chrome. Os yw cysoni wedi'i ddiffodd, byddwch hefyd yn cael eich <ph name="BEGIN_BOLD" />allgofnodi o wasanaethau Google a Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Mewngofnodi Rhwydwaith</translation>
 <translation id="5924017743176219022">Wrthi'n cysylltu â'r Rhyngrwyd...</translation>
 <translation id="5940385492829620908">Mae'ch gwe, nodau tudalen, a phethau Chrome eraill yn byw yma.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Nid yw Google Chrome yn ymateb. Ail-lansio nawr?</translation>
 <translation id="861702415419836452">Mae angen caniatâd ar Chrome i gael mynediad at eich camera i greu map 3D o'ch amgylchoedd</translation>
 <translation id="8625237574518804553">{0,plural, =1{Bydd Chrome yn ail-lansio mewn 1 funud}zero{Bydd Chrome yn ail-lansio mewn # munud}two{Bydd Chrome yn ail-lansio mewn # funud}few{Bydd Chrome yn ail-lansio mewn # munud}many{Bydd Chrome yn ail-lansio mewn # munud}other{Bydd Chrome yn ail-lansio mewn # munud}}</translation>
-<translation id="8629311577791198377">Pan fyddwch yn cau holl ffenestri Chrome, mae cwcis a data gwefan yn cael eu clirio'n awtomatig</translation>
 <translation id="8641606876632989680">Bydd Chrome yn eich hysbysu pan fyddwch yn mewngofnodi gyda chyfrinair sydd dan fygythiad</translation>
 <translation id="8649026945479135076">Mae'n gyffredin i wefannau y byddwch yn ymweld â nhw gofio pethau y mae gennych ddiddordeb ynddynt, i bersonoleiddio'ch profiad. Gall gwefannau hefyd storio gwybodaeth am eich diddordebau gyda Chrome.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb
index 751c393..670c20de 100644
--- a/chrome/app/resources/google_chrome_strings_da.xtb
+++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Venter på at installere…</translation>
 <translation id="3059710691562604940">Beskyttet browsing er deaktiveret. Chrome anbefaler, at du aktiverer funktionen.</translation>
 <translation id="3065168410429928842">Fanen Chrome</translation>
-<translation id="3069821012350118710">Websites, du besøger, husker dine oplysninger, indtil du lukker Chrome</translation>
 <translation id="3080151273017101988">Fortsæt med at køre baggrundsapps, når Google Chrome er lukket</translation>
 <translation id="3089968997497233615">Der findes en ny, sikker version af Google Chrome.</translation>
 <translation id="3100998948628680988">Navngiv din Chrome-profil</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Chrome kunne ikke startes. Prøv igen.</translation>
 <translation id="5867197326698922595">Google Chrome forsøger at redigere adgangskoder.</translation>
 <translation id="5895138241574237353">Genstart</translation>
-<translation id="5901850848447342934">Du <ph name="BEGIN_BOLD" />logges ud af de fleste websites<ph name="END_BOLD" />, når du lukker Chrome. Hvis synkronisering er deaktiveret, <ph name="BEGIN_BOLD" />logges du desuden ud af Googles tjenester og Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Login på netværk</translation>
 <translation id="5924017743176219022">Opretter forbindelse til internettet…</translation>
 <translation id="5940385492829620908">Dit webindhold, dine bogmærker og andre Chrome-ting kan findes her.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome svarer ikke. Vil du genstarte nu?</translation>
 <translation id="861702415419836452">Chrome skal have adgangstilladelse til dit kamera for at oprette et 3D-kort over dine omgivelser</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome genstarter om 1 minut}one{Chrome genstarter om # minut}other{Chrome genstarter om # minutter}}</translation>
-<translation id="8629311577791198377">Når du lukker alle Chrome-vinduer, ryddes cookies og websitedata automatisk</translation>
 <translation id="8641606876632989680">Chrome giver dig besked, når du logger ind med en kompromitteret adgangskode</translation>
 <translation id="8649026945479135076">Det er almindeligt, at de websites, du besøger, husker ting, du er interesseret i, så din oplevelse tilpasses. Websites kan også gemme oplysninger med Chrome om dine interesser.</translation>
 <translation id="8669527147644353129">Hjælp til Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb
index 9cf2770..4bdfa68 100644
--- a/chrome/app/resources/google_chrome_strings_de.xtb
+++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Warten auf Installation…</translation>
 <translation id="3059710691562604940">Safe Browsing ist deaktiviert. Es wird empfohlen, diese Funktion zu aktivieren.</translation>
 <translation id="3065168410429928842">Chrome-Tab</translation>
-<translation id="3069821012350118710">Websites, die du besuchst, speichern deine Daten, bis du Chrome schließt</translation>
 <translation id="3080151273017101988">Apps im Hintergrund ausführen, wenn Google Chrome geschlossen ist</translation>
 <translation id="3089968997497233615">Es gibt eine neue, sicherere Version von Google Chrome.</translation>
 <translation id="3100998948628680988">Chrome-Profil benennen</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Chrome konnte nicht gestartet werden. Versuche es noch einmal.</translation>
 <translation id="5867197326698922595">Google Chrome versucht, Passwörter zu bearbeiten.</translation>
 <translation id="5895138241574237353">Neu starten</translation>
-<translation id="5901850848447342934">Du wirst <ph name="BEGIN_BOLD" />auf den meisten Websites abgemeldet<ph name="END_BOLD" />, wenn du Chrome schließt. Wenn die Synchronisierung deaktiviert ist, wirst du auch <ph name="BEGIN_BOLD" />bei Google-Diensten und Chrome abgemeldet<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Netzwerkanmeldung</translation>
 <translation id="5924017743176219022">Internetverbindung wird hergestellt…</translation>
 <translation id="5940385492829620908">Hier kannst du im Web surfen und deine Lesezeichen und andere Chrome-Inhalte speichern.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome reagiert nicht. Jetzt neu starten?</translation>
 <translation id="861702415419836452">Chrome benötigt Zugriff auf die Kamera, um eine 3D-Karte deiner Umgebung zu erstellen</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome wird in einer Minute neu gestartet}other{Chrome wird in # Minuten neu gestartet}}</translation>
-<translation id="8629311577791198377">Wenn du alle Chrome-Fenster schließt, werden alle Cookies und Websitedaten automatisch gelöscht</translation>
 <translation id="8641606876632989680">Wenn du dich mit einem Passwort anmeldest, das gehackt wurde, benachrichtigt dich Chrome entsprechend.</translation>
 <translation id="8649026945479135076">Von dir besuchte Websites können deine Interessen speichern und zur Personalisierung verwenden. Websites können außerdem Daten zu deinen Interessen bei Chrome speichern.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb
index be182bc..efa7068c 100644
--- a/chrome/app/resources/google_chrome_strings_el.xtb
+++ b/chrome/app/resources/google_chrome_strings_el.xtb
@@ -119,7 +119,6 @@
 <translation id="3038232873781883849">Αναμονή για εγκατάσταση…</translation>
 <translation id="3059710691562604940">Η Ασφαλής περιήγηση είναι απενεργοποιημένη. Το Chrome συνιστά να την ενεργοποιήσετε.</translation>
 <translation id="3065168410429928842">Καρτέλα Chrome</translation>
-<translation id="3069821012350118710">Οι ιστότοποι που επισκέπτεστε απομνημονεύουν τις πληροφορίες σας έως ότου κλείσετε το Chrome.</translation>
 <translation id="3080151273017101988">Να συνεχίζεται η εκτέλεση εφαρμογών παρασκηνίου όταν το Google Chrome είναι κλειστό</translation>
 <translation id="3089968997497233615">Υπάρχει μια νέα, ασφαλέστερη έκδοση του Google Chrome.</translation>
 <translation id="3100998948628680988">Ονομάστε το προφίλ σας στο Chrome</translation>
@@ -249,7 +248,6 @@
 <translation id="5804318322022881572">Δεν ήταν δυνατή η εκκίνηση του Chrome. Προσπάθησε ξανά.</translation>
 <translation id="5867197326698922595">Το Google Chrome προσπαθεί να επεξεργαστεί κωδικούς πρόσβασης.</translation>
 <translation id="5895138241574237353">Επανεκκίνηση</translation>
-<translation id="5901850848447342934">Θα <ph name="BEGIN_BOLD" />αποσυνδέεστε από τους περισσότερους ιστοτόπους<ph name="END_BOLD" /> όταν κλείνετε το Chrome. Εάν ο συγχρονισμός είναι ανενεργός, θα <ph name="BEGIN_BOLD" />αποσυνδέεστε επίσης από τις υπηρεσίες Google και το Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Σύνδεση δικτύου</translation>
 <translation id="5924017743176219022">Γίνεται σύνδεση στο διαδίκτυο…</translation>
 <translation id="5940385492829620908">Εδώ μπορείτε να βρείτε τις ιστοσελίδες, τους σελιδοδείκτες σας και άλλα δεδομένα του Chrome.</translation>
@@ -386,7 +384,6 @@
 <translation id="8614913330719544658">Το Google Chrome δεν αποκρίνεται. Επανεκκίνηση τώρα;</translation>
 <translation id="861702415419836452">Το Chrome χρειάζεται άδεια πρόσβασης στην κάμερά σας, για να δημιουργήσει έναν τρισδιάστατο χάρτη του περιβάλλοντα χώρου σας.</translation>
 <translation id="8625237574518804553">{0,plural, =1{Η επανεκκίνηση του Chrome θα γίνει σε 1 λεπτό}other{Η επανεκκίνηση του Chrome θα γίνει σε # λεπτά}}</translation>
-<translation id="8629311577791198377">Όταν κλείνετε όλα τα παράθυρα του Chrome, τα cookie και τα δεδομένα ιστοτόπων διαγράφονται αυτόματα.</translation>
 <translation id="8641606876632989680">Το Chrome θα σας ειδοποιήσει όταν συνδεθείτε με έναν παραβιασμένο κωδικό πρόσβαση</translation>
 <translation id="8649026945479135076">Είναι σύνηθες οι ιστότοποι που επισκέπτεστε να απομνημονεύουν τα ενδιαφέροντά σας για να εξατομικεύουν την εμπειρία σας. Οι ιστότοποι μπορούν να αποθηκεύουν επίσης πληροφορίες σχετικά με τα ενδιαφέροντά σας στο Chrome.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb
index 5c6e1fc..4aaf8bbd 100644
--- a/chrome/app/resources/google_chrome_strings_en-GB.xtb
+++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Waiting to install…</translation>
 <translation id="3059710691562604940">Safe Browsing is off. Chrome recommends turning it on.</translation>
 <translation id="3065168410429928842">Chrome Tab</translation>
-<translation id="3069821012350118710">Sites that you visit remember your information until you close Chrome</translation>
 <translation id="3080151273017101988">Continue running background apps when Google Chrome is closed</translation>
 <translation id="3089968997497233615">There's a new, safer version of Google Chrome available.</translation>
 <translation id="3100998948628680988">Name your Chrome profile</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Couldn't launch Chrome. Try again.</translation>
 <translation id="5867197326698922595">Google Chrome is trying to edit passwords.</translation>
 <translation id="5895138241574237353">Restart</translation>
-<translation id="5901850848447342934">You will be <ph name="BEGIN_BOLD" />signed out of most sites<ph name="END_BOLD" /> when you close Chrome. If sync is off, you will also be <ph name="BEGIN_BOLD" />signed out of Google services and Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Network sign-in</translation>
 <translation id="5924017743176219022">Connecting to the Internet…</translation>
 <translation id="5940385492829620908">Your web, bookmarks and other Chrome stuff live here.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome is unresponsive. Relaunch now?</translation>
 <translation id="861702415419836452">Chrome needs permission to access your camera to create a 3D map of your surroundings</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome will relaunch in 1 minute}other{Chrome will relaunch in # minutes}}</translation>
-<translation id="8629311577791198377">When you close all Chrome windows, cookies and site data are automatically cleared</translation>
 <translation id="8641606876632989680">Chrome will notify you when you sign in with a compromised password</translation>
 <translation id="8649026945479135076">It's common for sites that you visit to remember things that you're interested in, to personalise your experience. Sites can also store information with Chrome about your interests.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb
index 07c93ff..28bd6d3 100644
--- a/chrome/app/resources/google_chrome_strings_es-419.xtb
+++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -51,13 +51,13 @@
 <translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome no está actualizado.</translation>
 <translation id="1919130412786645364">Permitir el acceso a Chrome</translation>
-<translation id="1952239763774043237">Para recibir las próximas actualizaciones de Google Chrome, necesitarás macOS 10.13 o versiones posteriores. Esta computadora usa macOS 10.12.</translation>
+<translation id="1952239763774043237">Para recibir las próximas actualizaciones de Google Chrome, necesitarás macOS 10.13 o o una versión posterior. Esta computadora usa macOS 10.12.</translation>
 <translation id="1953553007165777902">Descargando… Minutos restantes: <ph name="MINUTE" /></translation>
 <translation id="2018528049276128029">Cada perfil conserva su propia información de Chrome, como los favoritos, el historial, las contraseñas y más.</translation>
 <translation id="2018879682492276940">No se completó la instalación. Vuelve a intentarlo.</translation>
 <translation id="2071318482926839249">Ya accediste con otra cuenta. Para mantener separados los datos de navegación, Chrome puede crear un perfil individual para ti.</translation>
 <translation id="207902854391093810">Cuando comienzan las pruebas, la medición de anuncios les permite a los sitios que visitas solicitar información a Chrome a fin de medir el rendimiento de los anuncios. La medición de anuncios restringe el seguimiento entre sitios web, ya que se transfiere la menor cantidad de información posible entre sitios.</translation>
-<translation id="2091012649849228750">Para recibir las próximas actualizaciones de Google Chrome, necesitarás Windows 10 o versiones posteriores. Esta computadora usa Windows 8.</translation>
+<translation id="2091012649849228750">Para recibir las próximas actualizaciones de Google Chrome, necesitarás Windows 10 o una versión posterior. Esta computadora usa Windows 8.</translation>
 <translation id="2094648590148273905">Condiciones de Chrome OS Flex</translation>
 <translation id="2094919256425865063">¿Deseas salir de Chrome de todos modos?</translation>
 <translation id="2106831557840787829">Chrome OS Flex funciona gracias a <ph name="BEGIN_LINK_CROS_OSS" />software de código abierto<ph name="END_LINK_CROS_OSS" /> adicional, como <ph name="BEGIN_LINK_LINUX_OSS" />el entorno de desarrollo de Linux<ph name="END_LINK_LINUX_OSS" />.</translation>
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Esperando para instalar...</translation>
 <translation id="3059710691562604940">La Navegación segura está desactivada. Chrome recomienda activarla.</translation>
 <translation id="3065168410429928842">Pestaña de Chrome</translation>
-<translation id="3069821012350118710">Los sitios que visitas recordarán tu información hasta que cierres Chrome</translation>
 <translation id="3080151273017101988">Seguir ejecutando aplicaciones en segundo plano al cerrar Google Chrome</translation>
 <translation id="3089968997497233615">Hay disponible una versión de Google Chrome más nueva y más segura.</translation>
 <translation id="3100998948628680988">Asígnale un nombre a tu perfil de Chrome</translation>
@@ -213,7 +212,7 @@
 <translation id="4970880042055371251">Versión de Chrome OS</translation>
 <translation id="4970947549776831107">Chrome bloqueó este archivo porque este tipo de archivo es peligroso</translation>
 <translation id="4990567037958725628">Google Chrome Canario</translation>
-<translation id="5037581483200764584">Para recibir las próximas actualizaciones de Google Chrome, necesitarás macOS 10.13 o versiones posteriores. Esta computadora usa OS X 10.11.</translation>
+<translation id="5037581483200764584">Para recibir las próximas actualizaciones de Google Chrome, necesitarás macOS 10.13 o una versión posterior. Esta computadora usa OS X 10.11.</translation>
 <translation id="5098668839038261629">Si activas esta opción, saldrás de Chrome</translation>
 <translation id="5132929315877954718">Descubre aplicaciones, juegos, extensiones y temas geniales para Google Chrome.</translation>
 <translation id="5139423532931106058">Personaliza tu perfil de Chrome</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">No se pudo iniciar Chrome. Vuelve a intentarlo.</translation>
 <translation id="5867197326698922595">Google Chrome está intentando editar contraseñas.</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
-<translation id="5901850848447342934"><ph name="BEGIN_BOLD" />Saldrás de la mayoría de los sitios<ph name="END_BOLD" /> cuando cierres Chrome. Si la sincronización está desactivada, también <ph name="BEGIN_BOLD" />saldrás de los servicios de Google y Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" />: Acceso a la red</translation>
 <translation id="5924017743176219022">Conectando a Internet...</translation>
 <translation id="5940385492829620908">Aquí puedes encontrar tus páginas web, favoritos y otros contenidos de Chrome.</translation>
@@ -286,7 +284,7 @@
 <translation id="6881299373831449287">Actualizando Chrome</translation>
 <translation id="6885412569789873916">Apps de Chrome Beta</translation>
 <translation id="6933858244219479645">Sistema de Chrome OS</translation>
-<translation id="6938166777909186039">Para recibir las próximas actualizaciones de Google Chrome, necesitarás Windows 10 o versiones posteriores. Esta computadora usa Windows 8.1.</translation>
+<translation id="6938166777909186039">Para recibir las próximas actualizaciones de Google Chrome, necesitarás Windows 10 o una versión posterior. Esta computadora usa Windows 8.1.</translation>
 <translation id="6943584222992551122">Los datos de navegación de esta persona se borrarán de este dispositivo. Para recuperarlos, accede a Chrome como <ph name="USER_EMAIL" />.</translation>
 <translation id="6967962315388095737">Regla de entrada para que Google Chrome Beta permita el tráfico mDNS.</translation>
 <translation id="6989339256997917931">Google Chrome fue actualizado, pero no lo has utilizado en los últimos 30 días.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome no responde. ¿Quieres reiniciarlo ahora?</translation>
 <translation id="861702415419836452">Chrome necesita permiso para acceder a la cámara a fin de crear un mapa 3D de tu entorno</translation>
 <translation id="8625237574518804553">{0,plural, =1{Se reiniciará Chrome en 1 minuto}other{Se reiniciará Chrome en # minutos}}</translation>
-<translation id="8629311577791198377">Cuando cierres todas las ventanas de Chrome, se borrarán automáticamente las cookies y los datos de sitios</translation>
 <translation id="8641606876632989680">Chrome te notificará cuando accedas con una contraseña hackeada</translation>
 <translation id="8649026945479135076">Es normal que los sitios que visitas recuerden tus intereses, a fin de personalizar la experiencia. Los sitios también pueden almacenar información sobre tus intereses con Chrome.</translation>
 <translation id="8669527147644353129">Ayuda de Google Chrome</translation>
@@ -391,7 +388,7 @@
 <translation id="8686817260976772516">Con los perfiles de Chrome, puedes separar todo lo que tienes en Chrome. Crea perfiles para amigos y familiares o diferencia el trabajo de la diversión.</translation>
 <translation id="8712767363896337380">Ya casi completas la actualización. Reinicia Chrome para completar la actualización.</translation>
 <translation id="873133009373065397">Google Chrome no puede determinar ni establecer el navegador predeterminado</translation>
-<translation id="8821043148920470810">Para recibir las próximas actualizaciones de Google Chrome, necesitarás Windows 10 o versiones posteriores. Esta computadora usa Windows 7.</translation>
+<translation id="8821043148920470810">Para recibir las próximas actualizaciones de Google Chrome, necesitarás Windows 10 o una versión posterior. Esta computadora usa Windows 7.</translation>
 <translation id="8823341990149967727">Chrome no actualizado</translation>
 <translation id="8825634023950448068">Para proteger tu privacidad, quitamos los intereses automáticamente luego de 4 semanas. Es posible que, a medida que navegues, un interés vuelva a aparecer en la lista. Y si Chrome se equivoca o no quieres ver ciertos anuncios, puedes quitar un interés.</translation>
 <translation id="8834965163890861871">Google Chrome está intentando editar contraseñas. Para permitirlo, ingresa tu contraseña de Windows.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb
index 8082446..b34e666 100644
--- a/chrome/app/resources/google_chrome_strings_es.xtb
+++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Esperando para instalar...</translation>
 <translation id="3059710691562604940">La función Navegación segura está desactivada. Chrome recomienda activarla.</translation>
 <translation id="3065168410429928842">Pestaña de Chrome</translation>
-<translation id="3069821012350118710">Los sitios que visitas recuerdan tu información hasta que cierras Chrome</translation>
 <translation id="3080151273017101988">Seguir ejecutando aplicaciones en segundo plano al cerrar Google Chrome</translation>
 <translation id="3089968997497233615">Hay una nueva versión más segura de Google Chrome disponible.</translation>
 <translation id="3100998948628680988">Pon un nombre a tu perfil de Chrome</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">No se ha podido iniciar Chrome. Inténtalo de nuevo.</translation>
 <translation id="5867197326698922595">Google Chrome está intentando cambiar contraseñas.</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
-<translation id="5901850848447342934">Cuando cierres Chrome, <ph name="BEGIN_BOLD" />se cerrará tu sesión en la mayoría de los sitios<ph name="END_BOLD" />. Si la sincronización está desactivada, también <ph name="BEGIN_BOLD" />se cerrará tu sesión de los servicios de Google y de Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" />, inicio de sesión en la red</translation>
 <translation id="5924017743176219022">Conectando a Internet...</translation>
 <translation id="5940385492829620908">Aquí puedes encontrar tus páginas web, tus marcadores y otros contenidos de Chrome.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome no responde. ¿Quieres reiniciarlo ahora?</translation>
 <translation id="861702415419836452">Para crear un mapa 3D de tu entorno, Chrome necesita permiso para acceder a tu cámara</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome se reiniciará dentro de 1 minuto}other{Chrome se reiniciará dentro de # minutos}}</translation>
-<translation id="8629311577791198377">Cuando cierras todas las ventanas de Chrome, las cookies y los datos de sitios se borran automáticamente</translation>
 <translation id="8641606876632989680">Chrome te enviará una notificación cuando inicies sesión con una contraseña vulnerada</translation>
 <translation id="8649026945479135076">Es habitual que los sitios que visitas recuerden lo que te interesa para personalizar tu experiencia. Los sitios también pueden almacenar información con Chrome sobre tus intereses.</translation>
 <translation id="8669527147644353129">Ayudante de Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_et.xtb b/chrome/app/resources/google_chrome_strings_et.xtb
index 209306a..aea1032 100644
--- a/chrome/app/resources/google_chrome_strings_et.xtb
+++ b/chrome/app/resources/google_chrome_strings_et.xtb
@@ -118,7 +118,6 @@
 <translation id="3038232873781883849">Installimise ootamine …</translation>
 <translation id="3059710691562604940">Google'i ohutu sirvimine on välja lülitatud. Chrome soovitab selle sisse lülitada.</translation>
 <translation id="3065168410429928842">Chrome'i vaheleht</translation>
-<translation id="3069821012350118710">Külastatud saidid jätavad teie teabe meelde, kuni Chrome'i sulgete</translation>
 <translation id="3080151273017101988">Jätka taustal olevate rakenduste tööd, kui Google Chrome on suletud</translation>
 <translation id="3089968997497233615">Saadaval on uus ja turvalisem Google Chrome'i versioon.</translation>
 <translation id="3100998948628680988">Andke oma Chrome'i profiilile nimi</translation>
@@ -248,7 +247,6 @@
 <translation id="5804318322022881572">Chrome'i ei õnnestunud käivitada. Proovige uuesti.</translation>
 <translation id="5867197326698922595">Google Chrome püüab paroole muuta.</translation>
 <translation id="5895138241574237353">Taaskäivitamine</translation>
-<translation id="5901850848447342934">Kui Chrome'i sulgete, <ph name="BEGIN_BOLD" />logitakse teid enamikult saitidelt välja<ph name="END_BOLD" />. Kui sünkroonimine on välja lülitatud, <ph name="BEGIN_BOLD" />logitakse teid välja ka Google'i teenustest ja Chrome'ist<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – võrku sisselogimine</translation>
 <translation id="5924017743176219022">Internetiga ühenduse loomine …</translation>
 <translation id="5940385492829620908">Siin asuvad teie veeb, järjehoidjad ja muu Chrome'i kraam.</translation>
@@ -385,7 +383,6 @@
 <translation id="8614913330719544658">Google Chrome ei reageeri. Kas soovite kohe taaskäivitada?</translation>
 <translation id="861702415419836452">Chrome vajab luba teie kaamerale juurdepääsemiseks, et luua teid ümbritsevast 3D-kaart</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome käivitatakse uuesti 1 minuti pärast}other{Chrome käivitatakse uuesti # minuti pärast}}</translation>
-<translation id="8629311577791198377">Kui sulgete kõik Chrome'i aknad, kustutatakse küpsised ja saidi andmed automaatselt</translation>
 <translation id="8641606876632989680">Chrome teavitab teid, kui logite sisse ohustatud parooliga</translation>
 <translation id="8649026945479135076">On tavapärane, et teie külastatavad saidid jätavad meelde asju, mis teile huvi pakuvad, et teie kasutuskogemust isikupärastada. Saidid võivad ka talletada Chrome'i teavet teie huvide kohta.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_eu.xtb b/chrome/app/resources/google_chrome_strings_eu.xtb
index 6f9eae0d..f564f62 100644
--- a/chrome/app/resources/google_chrome_strings_eu.xtb
+++ b/chrome/app/resources/google_chrome_strings_eu.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Instalatzeko zain…</translation>
 <translation id="3059710691562604940">Arakatze segurua desaktibatuta dago. Aktibatzea gomendatzen du Chrome-k.</translation>
 <translation id="3065168410429928842">Chrome fitxa</translation>
-<translation id="3069821012350118710">Bisitatzen dituzun webguneek zure informazioa gogoratzen dute Chrome itxi arte</translation>
 <translation id="3080151273017101988">Mantendu atzeko planoko aplikazioak abian Google Chrome ixten denean</translation>
 <translation id="3089968997497233615">Google Chrome-ren bertsio berriagoa eta seguruagoa erabilgarri dago.</translation>
 <translation id="3100998948628680988">Eman izen bat Chrome-ko profilari</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Ezin izan da abiarazi Chrome. Saiatu berriro.</translation>
 <translation id="5867197326698922595">Pasahitzak editatzen saiatzen ari da Google Chrome.</translation>
 <translation id="5895138241574237353">Berrabiarazi</translation>
-<translation id="5901850848447342934"><ph name="BEGIN_BOLD" />Webgune gehienen saioa amaitu egingo da<ph name="END_BOLD" /> Chrome ixtean. Sinkronizazioa desaktibatuta badago, <ph name="BEGIN_BOLD" />Google-ren zerbitzuen eta Chrome-ren saioak ere amaituko<ph name="END_BOLD" /> dira.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Hasi saioa sarean</translation>
 <translation id="5924017743176219022">Internetera konektatzen…</translation>
 <translation id="5940385492829620908">Zure weba, laster-markak eta Chrome-n dituzun beste gauzak hemen bizi dira.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome-k ez du erantzuten. Berrabiarazi nahi duzu?</translation>
 <translation id="861702415419836452">Chrome-k kamera atzitzeko baimena behar du, ingurunearen hiru dimentsioko mapa bat sortzeko</translation>
 <translation id="8625237574518804553">{0,plural, =1{1 minutu barru berrabiaraziko da Chrome}other{# minutu barru berrabiaraziko da Chrome}}</translation>
-<translation id="8629311577791198377">Chrome-ko leiho guztiak ixten dituzunean, automatikoki garbituko dira cookieak eta webguneetako datuak</translation>
 <translation id="8641606876632989680">Chrome-k jakinarazpen bat bidaliko dizu arriskuan dagoen pasahitz batekin hasten duzunean saioa</translation>
 <translation id="8649026945479135076">Bisitatzen dituzun webguneek interesatzen zaizkizun gauzak gogoratu ohi dituzte zerbitzua pertsonalizatzeko. Webguneek zure interesei buruzko informazioa ere gorde dezakete Chrome-n.</translation>
 <translation id="8669527147644353129">Google Chrome laguntzailea</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb
index c28d9a7..5e667ee 100644
--- a/chrome/app/resources/google_chrome_strings_fa.xtb
+++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">درانتظار نصب…</translation>
 <translation id="3059710691562604940">‏«مرور ایمن» خاموش است. Chrome توصیه می‌کند آن را روشن کنید.</translation>
 <translation id="3065168410429928842">‏برگه Chrome</translation>
-<translation id="3069821012350118710">‏تا زمانی‌که Chrome بسته نشود، سایت‌هایی که بازدید می‌کنید اطلاعاتتان را به‌خاطر می‌سپارند</translation>
 <translation id="3080151273017101988">‏ادامه اجرای برنامه‌ها در پس‌زمینه هنگامیکه Google Chrome بسته می‌شود</translation>
 <translation id="3089968997497233615">‏نسخه جدید و امن تری از Google Chrome موجود است.</translation>
 <translation id="3100998948628680988">‏نام‌گذاری نمایه Chrome</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">‏Chrome راه‌اندازی نشد. دوباره امتحان کنید.</translation>
 <translation id="5867197326698922595">‏Google Chrome می‌خواهد گذرواژه‌ها را ویرایش کند.</translation>
 <translation id="5895138241574237353">راه‌اندازی مجدد</translation>
-<translation id="5901850848447342934">‏وقتی Chrome را می‌بندید، <ph name="BEGIN_BOLD" />از سیستم اکثر سایت‌ها خارج می‌شوید<ph name="END_BOLD" />. اگر همگام‌سازی خاموش باشد، از <ph name="BEGIN_BOLD" />از سیستم Chrome و سرویس‌های Google نیز خارج می‌شوید<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ورود به سیستم شبکه</translation>
 <translation id="5924017743176219022">درحال اتصال به اینترنت…</translation>
 <translation id="5940385492829620908">‏وب، نشانک‌ها و موارد دیگر Chrome شما در اینجا هستند.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">‏Google Chrome پاسخ نمی‌دهد. مجدداً راه‌اندازی شود؟</translation>
 <translation id="861702415419836452">‏Chrome برای دسترسی به دوربین به اجازه نیاز دارد تا بتواند نقشه سه‌بعدی محیط شما را ایجاد کند</translation>
 <translation id="8625237574518804553">{0,plural, =1{‏Chrome ‏۱ دقیقه دیگر راه‌اندازی مجدد می‌شود}one{‏Chrome ‏# دقیقه دیگر راه‌اندازی مجدد می‌شود}other{‏Chrome ‏# دقیقه دیگر راه‌اندازی مجدد می‌شود}}</translation>
-<translation id="8629311577791198377">‏با بستن همه پنجره‌های Chrome، کوکی‌ها و داده‌های سایت به‌طور خودکار پاک می‌شوند.</translation>
 <translation id="8641606876632989680">‏وقتی با گذرواژه‌ای لورفته به سیستم وارد شوید، Chrome به شما اطلاع می‌دهد</translation>
 <translation id="8649026945479135076">‏امری عادی است که سایت‌هایی که بازدید می‌کنید برای شخصی کردن تجربه‌تان، علایق شما را به‌خاطر آورند. به‌علاوه، سایت‌ها می‌توانند بااستفاده از Chrome اطلاعاتی درباره علایقتان ذخیره کنند.</translation>
 <translation id="8669527147644353129">‏راهنمای Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb
index 59cc1485..124d7537 100644
--- a/chrome/app/resources/google_chrome_strings_fi.xtb
+++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Asennetaan…</translation>
 <translation id="3059710691562604940">Selaussuoja on pois päältä. Chrome suosittelee laittamaan sen päälle.</translation>
 <translation id="3065168410429928842">Chrome-välilehti</translation>
-<translation id="3069821012350118710">Avaamasi sivustot muistavat tietosi, kunnes suljet Chromen</translation>
 <translation id="3080151273017101988">Jätä taustaohjelmat käyntiin, kun Google Chrome suljetaan</translation>
 <translation id="3089968997497233615">Google Chromesta on saatavillaa uusi, turvallisempi versio.</translation>
 <translation id="3100998948628680988">Nimeä Chrome-profiilisi</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Chromen käynnistäminen epäonnistui. Yritä uudelleen.</translation>
 <translation id="5867197326698922595">Google Chrome yrittää muuttaa salasanoja.</translation>
 <translation id="5895138241574237353">Käynnistä uudelleen</translation>
-<translation id="5901850848447342934">Kun suljet Chromen, sinut <ph name="BEGIN_BOLD" />kirjataan ulos useimmilta sivustoilta<ph name="END_BOLD" />. Jos synkronointi on pois päältä, sinut <ph name="BEGIN_BOLD" />kirjataan ulos myös Googlen palveluista ja Chromesta<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Kirjautuminen verkkoon</translation>
 <translation id="5924017743176219022">Muodostetaan internetyhteyttä…</translation>
 <translation id="5940385492829620908">Tämä on verkkosi, kirjanmerkkiesi ja muun Chrome-sisältösi koti.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome ei vastaa. Käynnistetäänkö uudelleen?</translation>
 <translation id="861702415419836452">Chrome tarvitsee luvan käyttää kameraasi ympäristön 3D-kartoittamiseen</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome käynnistetään uudelleen 1 minuutin kuluttua}other{Chrome käynnistetään uudelleen # minuutin kuluttua.}}</translation>
-<translation id="8629311577791198377">Kun suljet kaikki Chrome-ikkunat, evästeet ja sivustodata tyhjennetään automaattisesti</translation>
 <translation id="8641606876632989680">Chrome ilmoittaa, kun kirjaudut sisään vaarantuneella salasanalla</translation>
 <translation id="8649026945479135076">On tavallista, että avaamasi sivustot muistavat sinua kiinnostavat asiat personoidakseen käyttökokemustasi. Sivustot voivat myös tallentaa Chromeen tietoja kiinnostuksen kohteistasi.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb
index 18efc6b..e4dd686 100644
--- a/chrome/app/resources/google_chrome_strings_fil.xtb
+++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Naghihintay sa pag-install...</translation>
 <translation id="3059710691562604940">Naka-off ang Ligtas na Pag-browse. Inirerekomenda ng Chrome na i-on ito.</translation>
 <translation id="3065168410429928842">Tab ng Chrome</translation>
-<translation id="3069821012350118710">Naaalala ng mga site na binibisita mo ang iyong impormasyon hanggang sa isara mo ang Chrome</translation>
 <translation id="3080151273017101988">Magpatuloy sa pagpapatakbo ng mga app sa background kapag nakasara ang Google Chrome</translation>
 <translation id="3089968997497233615">May available na bago, mas ligtas na bersyon ng Google Chrome.</translation>
 <translation id="3100998948628680988">Pangalanan ang iyong profile sa Chrome</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Hindi mailunsad ang Chrome. Subukang muli.</translation>
 <translation id="5867197326698922595">Sinusubukan ng Google Chrome na i-edit ang mga password.</translation>
 <translation id="5895138241574237353">I-restart</translation>
-<translation id="5901850848447342934"><ph name="BEGIN_BOLD" />Masa-sign out ka sa karamihan ng mga site<ph name="END_BOLD" /> kapag isinara mo ang Chrome. Kung naka-off ang pag-sync, <ph name="BEGIN_BOLD" />masa-sign out ka sa mga serbisyo ng Google at Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Pag-sign in sa Network</translation>
 <translation id="5924017743176219022">Kumokonekta sa Internet...</translation>
 <translation id="5940385492829620908">Makikita dito ang iyong web, mga bookmark at iba pang mga bagay-bagay sa Chrome.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Hindi gumagana ang Google Chrome. Ilunsad muli ngayon?</translation>
 <translation id="861702415419836452">Kailangan ng Chrome ng pahintulot na i-access ang iyong camera para gumawa ng 3D na mapa ng kapaligiran mo</translation>
 <translation id="8625237574518804553">{0,plural, =1{Muling ilulunsad ang Chrome sa loob ng 1 minuto}one{Muling ilulunsad ang Chrome sa loob ng # minuto}other{Muling ilulunsad ang Chrome sa loob ng # na minuto}}</translation>
-<translation id="8629311577791198377">Kapag isinara mo ang lahat ng window ng Chrome, awtomatikong maki-clear ang cookies at data ng site</translation>
 <translation id="8641606876632989680">Aabisuhan ka ng Chrome kapag nag-sign in ka gamit ang nakompromisong password</translation>
 <translation id="8649026945479135076">Karaniwan para sa mga binibisita mong site na tandaan ang mga bagay na interesado ka, para ma-personalize ang iyong karanasan. Puwede ring mag-store ang mga site sa Chrome tungkol sa iyong mga interes.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr-CA.xtb b/chrome/app/resources/google_chrome_strings_fr-CA.xtb
index 0205b50..5b9cf4b 100644
--- a/chrome/app/resources/google_chrome_strings_fr-CA.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr-CA.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Installation en attente…</translation>
 <translation id="3059710691562604940">La navigation sécurisée est désactivée. Chrome vous recommande de l'activer.</translation>
 <translation id="3065168410429928842">Onglet Chrome</translation>
-<translation id="3069821012350118710">Les sites que vous consultez gardent vos informations en mémoire tant que vous ne fermez pas Chrome</translation>
 <translation id="3080151273017101988">Continuer l'exécution des applications en arrière-plan après la fermeture de Google Chrome</translation>
 <translation id="3089968997497233615">Une nouvelle version de Google Chrome encore plus sûre est maintenant offerte.</translation>
 <translation id="3100998948628680988">Nommer votre profil Chrome</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Impossible de lancer Chrome. Réessayez.</translation>
 <translation id="5867197326698922595">Google Chrome essaie de modifier des mots de passe.</translation>
 <translation id="5895138241574237353">Redémarrer</translation>
-<translation id="5901850848447342934">Vous serez <ph name="BEGIN_BOLD" />déconnecté de la plupart des sites<ph name="END_BOLD" /> lorsque vous fermerez Chrome. Si la synchronisation est désactivée, vous serez également <ph name="BEGIN_BOLD" />déconnecté des services Google et de Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Connexion au réseau</translation>
 <translation id="5924017743176219022">Connexion à Internet en cours…</translation>
 <translation id="5940385492829620908">Votre contenu Web, vos favoris et toutes vos données de Google Chrome sont conservés ici.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome ne répond pas. Voulez-vous le relancer maintenant?</translation>
 <translation id="861702415419836452">Chrome a besoin de votre autorisation pour accéder à votre appareil photo afin de créer une carte 3D de votre environnement</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome redémarrera dans 1 minute}one{Chrome redémarrera dans # minute}other{Chrome redémarrera dans # minutes}}</translation>
-<translation id="8629311577791198377">Lorsque vous fermez toutes les fenêtres de Chrome, les témoins et les données relatives aux sites sont automatiquement effacés</translation>
 <translation id="8641606876632989680">Chrome vous avisera lorsque vous utilisez un mot de passe compromis pour vous connecter</translation>
 <translation id="8649026945479135076">Les sites que vous visitez mémorisent couramment les sujets qui vous intéressent afin de personnaliser votre expérience. Les sites peuvent également stocker des renseignements sur vos centres d'intérêt dans Chrome.</translation>
 <translation id="8669527147644353129">Application d'aide de Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb
index ce41215..303f8ce 100644
--- a/chrome/app/resources/google_chrome_strings_fr.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">En attente d'installation...</translation>
 <translation id="3059710691562604940">La navigation sécurisée étant désactivée, Chrome vous recommande de l'activer.</translation>
 <translation id="3065168410429928842">Onglet Chrome</translation>
-<translation id="3069821012350118710">Les sites que vous consultez gardent vos informations en mémoire tant que vous ne fermez pas Chrome</translation>
 <translation id="3080151273017101988">Poursuivre l'exécution d'applications en arrière-plan après la fermeture de Google Chrome</translation>
 <translation id="3089968997497233615">Une nouvelle version de Google Chrome encore plus sûre est disponible.</translation>
 <translation id="3100998948628680988">Nommer votre profil Chrome</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Impossible de lancer Chrome. Réessayez.</translation>
 <translation id="5867197326698922595">Google Chrome tente de modifier les mots de passe.</translation>
 <translation id="5895138241574237353">Redémarrer</translation>
-<translation id="5901850848447342934">Vous serez <ph name="BEGIN_BOLD" />déconnecté de la plupart des sites<ph name="END_BOLD" /> lorsque vous fermerez Chrome. Si la synchronisation est désactivée, vous serez aussi <ph name="BEGIN_BOLD" />déconnecté des services Google et de Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Connexion au réseau</translation>
 <translation id="5924017743176219022">Connexion à Internet…</translation>
 <translation id="5940385492829620908">Votre contenu Web, vos favoris et toutes vos données Chrome sont conservés ici.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome ne répond pas. Voulez-vous le relancer maintenant ?</translation>
 <translation id="861702415419836452">Chrome a besoin de votre autorisation pour accéder à votre appareil photo afin de créer un plan 3D de votre environnement</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome va être relancé dans 1 minute}one{Chrome va être relancé dans # minute}other{Chrome va être relancé dans # minutes}}</translation>
-<translation id="8629311577791198377">Lorsque vous fermez toutes les fenêtres Chrome, les cookies et les données des sites sont effacés automatiquement</translation>
 <translation id="8641606876632989680">Chrome vous avertira si vous vous connectez avec un mot de passe compromis</translation>
 <translation id="8649026945479135076">Il est courant que les sites que vous consultez mémorisent ce qui vous intéresse, afin de personnaliser votre expérience. Les sites peuvent aussi stocker des informations sur vos centres d'intérêt dans Chrome.</translation>
 <translation id="8669527147644353129">Application d'aide de Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gl.xtb b/chrome/app/resources/google_chrome_strings_gl.xtb
index a301967f..a83e052 100644
--- a/chrome/app/resources/google_chrome_strings_gl.xtb
+++ b/chrome/app/resources/google_chrome_strings_gl.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Esperando para realizar a instalación…</translation>
 <translation id="3059710691562604940">A opción Navegación segura está desactivada. Chrome recomenda activala.</translation>
 <translation id="3065168410429928842">Pestana de Chrome</translation>
-<translation id="3069821012350118710">Os sitios que visites lembran a túa información ata que pechas Chrome</translation>
 <translation id="3080151273017101988">Continuar executando aplicacións en segundo plano cando se peche Google Chrome</translation>
 <translation id="3089968997497233615">Está dispoñible unha versión nova e máis segura de Google Chrome.</translation>
 <translation id="3100998948628680988">Asígnalle un nome ao teu perfil de Chrome</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Non se puido iniciar Chrome. Téntao de novo.</translation>
 <translation id="5867197326698922595">Google Chrome está tentando editar os contrasinais.</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
-<translation id="5901850848447342934"><ph name="BEGIN_BOLD" />Pecharase a túa sesión na maioría dos sitios<ph name="END_BOLD" /> cando cerres Chrome. Se a sincronización está desactivada, tamén se <ph name="BEGIN_BOLD" />pechará a túa sesión nos servizos de Google e en Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> (inicio de sesión de rede)</translation>
 <translation id="5924017743176219022">Conectando a Internet…</translation>
 <translation id="5940385492829620908">Aquí podes atopar as túas páxinas web, marcadores e outros contidos de Chrome.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome non responde. Queres volver inicialo agora?</translation>
 <translation id="861702415419836452">Chrome necesita permiso para acceder á cámara co fin de crear un mapa 3D do que te rodea</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome reiniciarase en 1 minuto}other{Chrome reiniciarase en # minutos}}</translation>
-<translation id="8629311577791198377">Cando pechas todas as ventás de Chrome, as cookies e os datos dos sitios bórranse automaticamente</translation>
 <translation id="8641606876632989680">Chrome enviarache unha notificación cando inicies sesión cun contrasinal vulnerado</translation>
 <translation id="8649026945479135076">É habitual que os sitios que visitas lembren o que che interesa para personalizar a experiencia que se che ofrece neles. Os sitios tamén poden almacenar con Chrome información sobre os teus intereses.</translation>
 <translation id="8669527147644353129">Axudante de Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb
index de7d5be..28ff789e 100644
--- a/chrome/app/resources/google_chrome_strings_gu.xtb
+++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">ઇન્સ્ટૉલ થવાની રાહ જોઈ રહ્યાં છીએ...</translation>
 <translation id="3059710691562604940">Safe Browsingની સુવિધા બંધ છે. Chrome તેને ચાલુ રાખવાનો સુઝાવ આપે છે.</translation>
 <translation id="3065168410429928842">Chrome ટૅબ</translation>
-<translation id="3069821012350118710">તમે મુલાકાત લો છો એ બધી સાઇટ તમે Chrome બંધ કરો નહીં, ત્યાં સુધી તમારી માહિતી યાદ રાખે છે</translation>
 <translation id="3080151273017101988">જ્યારે Google Chrome બંધ થાય ત્યારે બૅકગ્રાઉન્ડમાં ઍપ ચલાવવાનું ચાલુ રાખો</translation>
 <translation id="3089968997497233615">Google Chromeનું નવું, સુરક્ષિત વર્ઝન ઉપલબ્ધ છે.</translation>
 <translation id="3100998948628680988">તમારી Chrome પ્રોફાઇલને નામ આપો</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome લૉન્ચ કરી શકાયું નથી. ફરી પ્રયાસ કરો.</translation>
 <translation id="5867197326698922595">Google Chrome પાસવર્ડમાં ફેરફાર કરવાનો પ્રયાસ કરે છે.</translation>
 <translation id="5895138241574237353">પુનઃપ્રારંભ કરો</translation>
-<translation id="5901850848447342934">તમે Chrome બંધ કરશો, ત્યારે તમને <ph name="BEGIN_BOLD" />મોટાભાગની બધી સાઇટમાંથી સાઇન આઉટ<ph name="END_BOLD" /> કરવામાં આવશે. જો સિંક કરવાની સુવિધા બંધ હશે, તો તમને <ph name="BEGIN_BOLD" />Googleની સેવાઓ અને Chromeમાંથી પણ સાઇન આઉટ<ph name="END_BOLD" /> કરવામાં આવશે.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - નેટવર્ક સાઇન ઇન</translation>
 <translation id="5924017743176219022">ઇન્ટરનેટ સાથે કનેક્ટ કરી રહ્યાં છીએ...</translation>
 <translation id="5940385492829620908">તમારું વેબ, બુકમાર્ક અને અન્ય Chrome સામગ્રી અહીં હોય છે.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome પ્રતિસાદ આપતું નથી. હવે ફરીથી લોંચ કરીએ?</translation>
 <translation id="861702415419836452">તમારા આસપાસનો 3D નકશો બનાવવા માટે, Chromeને તમારા કૅમેરાના ઍક્સેસની પરવાનગી જરૂરી છે</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 1 મિનિટમાં ફરીથી લૉન્ચ થશે}one{Chrome # મિનિટમાં ફરીથી લૉન્ચ થશે}other{Chrome # મિનિટમાં ફરીથી લૉન્ચ થશે}}</translation>
-<translation id="8629311577791198377">જ્યારે તમે Chromeની બધી વિન્ડો બંધ કરશો, ત્યારે કુકી અને સાઇટનો ડેટા ઑટોમૅટિક રીતે સાફ થઈ જશે</translation>
 <translation id="8641606876632989680">જ્યારે તમે ચેડાં થયેલા પાસવર્ડ વડે સાઇન ઇન કરશો ત્યારે Chrome તમને સૂચિત કરશે</translation>
 <translation id="8649026945479135076">તમારા અનુભવને મનગમતો બનાવવા માટે તમે જે સાઇટની મુલાકાત લો છો તે બધી સાઇટ તમને જેમાં રુચિ હોય એવી તમામ વસ્તુઓ યાદ રાખી લે તે સામાન્ય બાબત છે. સાઇટ, Chrome પર તમારી રુચિના વિષયો વિશેની માહિતી પણ સ્ટોર કરી શકે છે.</translation>
 <translation id="8669527147644353129">Google Chrome સહાયક</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb
index 4c5993f..c06e0652 100644
--- a/chrome/app/resources/google_chrome_strings_hi.xtb
+++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">इंस्टॉल करने की प्रोसेस, कुछ देर में शुरू होगी...</translation>
 <translation id="3059710691562604940">सुरक्षित ब्राउज़िंग की सुविधा बंद है. Chrome इसे चालू करने का सुझाव देता है.</translation>
 <translation id="3065168410429928842">Chrome टैब</translation>
-<translation id="3069821012350118710">जिन साइटों पर जाया जाता है उनके पास आपकी जानकारी तब तक रहती है, जब तक आप Chrome को बंद न कर दें</translation>
 <translation id="3080151273017101988">Google Chrome के बंद होने पर पृष्ठभूमि ऐप्स  चलाना जारी रखें</translation>
 <translation id="3089968997497233615">Google Chrome का एक नया, सुरक्षित वर्शन उपलब्‍ध है.</translation>
 <translation id="3100998948628680988">अपनी Chrome प्रोफ़ाइल को नाम दें</translation>
@@ -249,7 +248,6 @@
 <translation id="5804318322022881572">Chrome लॉन्च नहीं किया जा सका. फिर से कोशिश करें.</translation>
 <translation id="5867197326698922595">Google Chrome, पासवर्ड में बदलाव करने की कोशिश कर रहा है.</translation>
 <translation id="5895138241574237353">फिर से प्रारंभ करें</translation>
-<translation id="5901850848447342934">Chrome को बंद करने पर, आपको <ph name="BEGIN_BOLD" />ज़्यादातर साइटों से साइन आउट<ph name="END_BOLD" /> कर दिया जाएगा. सिंक करने की सुविधा बंद होने पर, आपको <ph name="BEGIN_BOLD" />Google की सेवाओं और Chrome से भी साइन आउट<ph name="END_BOLD" /> कर दिया जाएगा.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - नेटवर्क में साइन इन करें</translation>
 <translation id="5924017743176219022">इंटरनेट से कनेक्ट हो रहा है…</translation>
 <translation id="5940385492829620908">आपके वेब, बुकमार्क और अन्य Chrome सामग्री यहां मौजूद रहती है.</translation>
@@ -386,7 +384,6 @@
 <translation id="8614913330719544658">Google Chrome निष्‍क्रिय है. अभी फिर से लॉन्च करें?</translation>
 <translation id="861702415419836452">Chrome को आपके आस-पास की जगह का 3D मैप बनाने के लिए, कैमरा ऐक्सेस करने की अनुमति चाहिए</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 1 मिनट में फिर से लॉन्च होगा}one{Chrome # मिनट में फिर से लॉन्च होगा}other{Chrome # मिनट में फिर से लॉन्च होगा}}</translation>
-<translation id="8629311577791198377">सभी Chrome विंडो बंद करने पर, कुकी और साइट डेटा अपने-आप मिट जाते हैं</translation>
 <translation id="8641606876632989680">जब आप किसी हैक या चोरी हो चुके पासवर्ड से साइन इन करेंगे, तो Chrome आपको इसकी सूचना देगा</translation>
 <translation id="8649026945479135076">आम तौर पर, आपने जिन साइटों को देखा है वे साइटें आपके पसंद के विषयों को सेव कर लेती हैं. ऐसा, आपकी पसंद के मुताबिक विज्ञापन दिखाने के लिए किया जाता है. साइटें, Chrome पर भी आपकी पसंद के विषयों की जानकारी सेव कर सकती हैं.</translation>
 <translation id="8669527147644353129">Google Chrome सहायक</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb
index 291fe50e..684be2d 100644
--- a/chrome/app/resources/google_chrome_strings_hr.xtb
+++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Čekanje na instaliranje...</translation>
 <translation id="3059710691562604940">Sigurno pregledavanje je isključeno. Chrome preporučuje da ga uključite.</translation>
 <translation id="3065168410429928842">Chromeova kartica</translation>
-<translation id="3069821012350118710">Web-lokacije koje posjećujete pamte vaše podatke dok ne zatvorite Chrome</translation>
 <translation id="3080151273017101988">Nastavi prikazivati ​​pozadinske aplikacije po zatvaranju preglednika Google Chrome</translation>
 <translation id="3089968997497233615">Dostupna je nova, sigurnija verzija preglednika Google Chrome.</translation>
 <translation id="3100998948628680988">Odaberite naziv profila za Chrome</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Pokretanje Chromea nije uspjelo. Pokušajte ponovo.</translation>
 <translation id="5867197326698922595">Google Chrome pokušava urediti zaporke.</translation>
 <translation id="5895138241574237353">Ponovno pokreni</translation>
-<translation id="5901850848447342934"><ph name="BEGIN_BOLD" />Odjavit ćete se s većine web-lokacija<ph name="END_BOLD" /> kad zatvorite Chrome. Ako je sinkronizacija isključena, <ph name="BEGIN_BOLD" />odjavit ćete se i s Googleovih usluga i Chromea<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Prijava na mrežu</translation>
 <translation id="5924017743176219022">Povezivanje s internetom...</translation>
 <translation id="5940385492829620908">Ovdje se nalaze vaš web, oznake i ostali sadržaji u Chromeu.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome ne reagira. Ponovo pokrenuti sada?</translation>
 <translation id="861702415419836452">Chrome treba dopuštenje za pristup kameri radi izrade 3D karte vašeg okruženja</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome će se ponovo pokrenuti za jednu minutu}one{Chrome će se ponovo pokrenuti za # min}few{Chrome će se ponovo pokrenuti za # min}other{Chrome će se ponovo pokrenuti za # min}}</translation>
-<translation id="8629311577791198377">Kad zatvorite sve Chromeove prozore, kolačići i podaci web-lokacija brišu se automatski</translation>
 <translation id="8641606876632989680">Chrome će vas obavijestiti kada se prijavite ugroženom zaporkom</translation>
 <translation id="8649026945479135076">Uobičajeno je da web-lokacije koje posjećujete pamte vaše interese radi prilagodbe vašeg doživljaja. Web-lokacije mogu i pohraniti podatke o vašim interesima u Chrome.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb
index b9820dd..49f2569 100644
--- a/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Várakozás a telepítésre…</translation>
 <translation id="3059710691562604940">A Biztonságos Böngészés ki van kapcsolva. A Chrome a szolgáltatás bekapcsolását javasolja.</translation>
 <translation id="3065168410429928842">Chrome-lap</translation>
-<translation id="3069821012350118710">A felkeresett webhelyek megjegyzik az Ön adatait a Chrome bezárásáig</translation>
 <translation id="3080151273017101988">A háttéralkalmazások továbbfuttatása, ha a Google Chrome-ot bezárják</translation>
 <translation id="3089968997497233615">Elérhető a Google Chrome új, biztonságosabb verziója.</translation>
 <translation id="3100998948628680988">Nevezze el Chrome-profilját</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Nem sikerült a Chrome elindítása. Próbálkozzon újra.</translation>
 <translation id="5867197326698922595">A Google Chrome szerkeszteni próbálja a jelszavakat.</translation>
 <translation id="5895138241574237353">Újraindítás</translation>
-<translation id="5901850848447342934">A <ph name="BEGIN_BOLD" />legtöbb webhelyről kijelentkezteti<ph name="END_BOLD" /> Önt a rendszer a Chrome bezárásakor. Ha pedig a szinkronizálás is ki van kapcsolva, akkor a <ph name="BEGIN_BOLD" />a Google-szolgáltatásokból és a Chrome-ból is megtörténik a kijelentkezés<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Hálózati bejelentkezés</translation>
 <translation id="5924017743176219022">Kapcsolódás az internethez…</translation>
 <translation id="5940385492829620908">Az Ön könyvjelzői, valamint az internetezéssel és a Chrome-mal kapcsolatos egyéb dolgai vannak itt.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">A Google Chrome nem válaszol. Újraindítja most?</translation>
 <translation id="861702415419836452">A Chrome-nak engedélyre van szüksége a kamerájához való hozzáféréshez annak érdekében, hogy 3D-s térképet készíthessen az Ön környezetéről.</translation>
 <translation id="8625237574518804553">{0,plural, =1{A Chrome 1 percen belül újraindul}other{A Chrome # percen belül újraindul}}</translation>
-<translation id="8629311577791198377">A Chrome ablakainak bezárásakor a cookie-kat és webhelyadatokat automatikusan törli a rendszer.</translation>
 <translation id="8641606876632989680">A Chrome figyelmezteti Önt, amikor olyan jelszóval jelentkezik be, amelyhez illetéktelenül hozzáfértek</translation>
 <translation id="8649026945479135076">A felkeresett webhelyek esetében megszokott dolog, hogy megjegyzik az Önt érdeklő dolgokat a felhasználói élmény személyre szabása érdekében. Emellett a webhelyek tárolhatnak az Ön érdeklődési köreivel kapcsolatos információkat a Chrome-ban.</translation>
 <translation id="8669527147644353129">Google Chrome segéd</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hy.xtb b/chrome/app/resources/google_chrome_strings_hy.xtb
index 5a57d18..49735f1 100644
--- a/chrome/app/resources/google_chrome_strings_hy.xtb
+++ b/chrome/app/resources/google_chrome_strings_hy.xtb
@@ -118,7 +118,6 @@
 <translation id="3038232873781883849">Սպասում ենք տեղադրմանը…</translation>
 <translation id="3059710691562604940">Անվտանգ դիտարկումն անջատված է։ Chrome-ը խորհուրդ է տալիս միացնել այն։</translation>
 <translation id="3065168410429928842">Chrome-ի ներդիր</translation>
-<translation id="3069821012350118710">Ձեր տվյալները կպահվեն այցելած կայքերում այնքան ժամանակ, մինչև կփակեք Chrome-ը։</translation>
 <translation id="3080151273017101988">Google Chrome-ը փակելուց հետո շարունակել հավելվածների աշխատանքը հետնաշերտում</translation>
 <translation id="3089968997497233615">Մատչելի է Google Chrome-ի նոր, ավելի ապահով տարբերակը:</translation>
 <translation id="3100998948628680988">Անվանեք ձեր Chrome պրոֆիլը</translation>
@@ -250,7 +249,6 @@
 <translation id="5804318322022881572">Չհաջողվեց գործարկել Chrome-ը։ Նորից փորձեք։</translation>
 <translation id="5867197326698922595">Google Chrome-ը փորձում է փոխել գաղտնաբառերը:</translation>
 <translation id="5895138241574237353">Վերագործարկել</translation>
-<translation id="5901850848447342934">Երբ փակեք Chrome-ը, դուք <ph name="BEGIN_BOLD" />դուրս կգաք կայքերի մեծամասնությունից<ph name="END_BOLD" />։ Եթե համաժամացումն անջատված է, դուք նաև <ph name="BEGIN_BOLD" />դուրս կգաք Google-ի ծառայություններից և Chrome-ից<ph name="END_BOLD" />։</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Ցանցի մուտք</translation>
 <translation id="5924017743176219022">Միացում համացանցին…</translation>
 <translation id="5940385492829620908">Ձեր վեբ էջերը, էջանիշները և Chrome-ի մնացած տվյալներն այստեղ են:</translation>
@@ -387,7 +385,6 @@
 <translation id="8614913330719544658">Google Chrome-ը չի պատասխանում: Վերագործարկե՞լ:</translation>
 <translation id="861702415419836452">Chrome-ին անհրաժեշտ է տեսախցիկն օգտագործելու թույլտվություն՝ ձեր շրջակայքի եռաչափ քարտեզը ստեղծելու համար։</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome-ը կվերագործարկվի 1 րոպեից}one{Chrome-ը կվերագործարկվի # րոպեից}other{Chrome-ը կվերագործարկվի # րոպեից}}</translation>
-<translation id="8629311577791198377">Երբ փակեք Chrome-ի բոլոր պատուհանները, քուքիները և կայքերի տվյալներն ավտոմատ կմաքրվեն։</translation>
 <translation id="8641606876632989680">Chrome-ը կտեղեկացնի ձեզ, երբ կոտրված գաղտնաբառ օգտագործեք։</translation>
 <translation id="8649026945479135076">Սովորաբար կայքերը, որոնք դուք այցելում եք, հիշում են, թե ձեզ ինչն է հետաքրքրում, որպեսզի անհատականացնեն գովազդը ձեզ համար։ Կայքերը կարող են նաև ձեր հետաքրքրությունների մասին տեղեկություններ պահել Chrome-ում։</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb
index fd18cfd..b3bd8b4 100644
--- a/chrome/app/resources/google_chrome_strings_id.xtb
+++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Menunggu untuk menginstal...</translation>
 <translation id="3059710691562604940">Safe Browsing nonaktif. Chrome merekomendasikan untuk mengaktifkannya.</translation>
 <translation id="3065168410429928842">Tab Chrome</translation>
-<translation id="3069821012350118710">Situs yang dibuka akan mengingat informasi Anda hingga Anda menutup Chrome</translation>
 <translation id="3080151273017101988">Terus jalankan apl latar belakang saat Google Chrome ditutup</translation>
 <translation id="3089968997497233615">Tersedia versi Google Chrome yang baru dan lebih aman.</translation>
 <translation id="3100998948628680988">Beri nama profil Chrome Anda</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Tidak dapat meluncurkan Chrome. Harap coba lagi.</translation>
 <translation id="5867197326698922595">Google Chrome mencoba mengedit sandi.</translation>
 <translation id="5895138241574237353">Mulai Ulang</translation>
-<translation id="5901850848447342934">Anda akan <ph name="BEGIN_BOLD" />logout dari sebagian besar situs<ph name="END_BOLD" /> saat Anda menutup Chrome. Jika sinkronisasi nonaktif, Anda juga akan <ph name="BEGIN_BOLD" />logout dari layanan Google dan Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Login Jaringan</translation>
 <translation id="5924017743176219022">Menghubungkan ke internet...</translation>
 <translation id="5940385492829620908">Web, bookmark, dan file Chrome Anda lainnya tersedia di sini.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome tidak merespons. Luncurkan ulang sekarang?</translation>
 <translation id="861702415419836452">Chrome memerlukan izin untuk mengakses kamera guna membuat peta 3D untuk area di sekeliling Anda.</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome akan diluncurkan ulang dalam 1 menit}other{Chrome akan diluncurkan ulang dalam # menit}}</translation>
-<translation id="8629311577791198377">Jika Anda menutup semua jendela Chrome, cookie dan data situs akan otomatis dihapus</translation>
 <translation id="8641606876632989680">Chrome akan memberi tahu Anda saat Anda login dengan sandi yang telah dibobol</translation>
 <translation id="8649026945479135076">Situs yang Anda buka biasanya mengingat hal-hal yang Anda minati agar dapat mempersonalisasi pengalaman Anda. Situs juga dapat menyimpan informasi tentang minat Anda ke Chrome.</translation>
 <translation id="8669527147644353129">Pembantu Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_is.xtb b/chrome/app/resources/google_chrome_strings_is.xtb
index ff60f87..2c8b330 100644
--- a/chrome/app/resources/google_chrome_strings_is.xtb
+++ b/chrome/app/resources/google_chrome_strings_is.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Bíður eftir uppsetningu...</translation>
 <translation id="3059710691562604940">Slökkt er á öruggri vefskoðun. Chrome mælir með því að kveikt sé á henni.</translation>
 <translation id="3065168410429928842">Chrome flipi</translation>
-<translation id="3069821012350118710">Vefsvæðin sem þú opnar muna upplýsingarnar þínar þar til þú lokar Chrome</translation>
 <translation id="3080151273017101988">Halda áfram að keyra forrit í bakgrunni þegar Google Chrome er lokað</translation>
 <translation id="3089968997497233615">Ný og öruggari útgáfa af Google Chrome er í boði.</translation>
 <translation id="3100998948628680988">Gefðu Chrome prófílnum þínum heiti</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Ekki var hægt að ræsa Chrome. Reyndu aftur.</translation>
 <translation id="5867197326698922595">Google Chrome er að reyna að breyta aðgangsorðum.</translation>
 <translation id="5895138241574237353">Endurræsa</translation>
-<translation id="5901850848447342934">Þú verður <ph name="BEGIN_BOLD" />skráð(ur) út af flestum vefsvæðum<ph name="END_BOLD" /> þegar þú lokar Chrome. Ef slökkt er á samstillingu verðurðu einnig <ph name="BEGIN_BOLD" />skráð(ur) út úr Google þjónustum og Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – innskráning á net</translation>
 <translation id="5924017743176219022">Tengist internetinu…</translation>
 <translation id="5940385492829620908">Hér er vefefnið þitt, bókamerkin og annað dót úr Chrome.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome svarar ekki. Endurræsa núna?</translation>
 <translation id="861702415419836452">Chrome þarf leyfi til að nota myndavélina til að búa til þrívíddarkort af umhverfinu</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome verður endurræst eftir 1 mínútu}one{Chrome verður endurræst eftir # mínútu}other{Chrome verður endurræst eftir # mínútur}}</translation>
-<translation id="8629311577791198377">Öll fótspor og vefsvæðagögn verða hreinsuð sjálfkrafa um leið og þú lokar öllum Chrome gluggum</translation>
 <translation id="8641606876632989680">Chrome lætur þig vita þegar þú skráir þig inn með aðgangsorði sem er í hættu</translation>
 <translation id="8649026945479135076">Algengt er að vefsvæði sem þú heimsækir muni atriði sem höfða til þín til að sérsníða upplifun þína. Vefsvæði geta einnig vistað upplýsingar um áhugasvið þín í Chrome.</translation>
 <translation id="8669527147644353129">Hjálparforrit Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb
index 9eade5d..65c0584e7 100644
--- a/chrome/app/resources/google_chrome_strings_it.xtb
+++ b/chrome/app/resources/google_chrome_strings_it.xtb
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">In attesa dell'installazione…</translation>
 <translation id="3059710691562604940">Navigazione sicura è disattivata. Chrome consiglia di attivarla.</translation>
 <translation id="3065168410429928842">Scheda Chrome</translation>
-<translation id="3069821012350118710">I siti visitati memorizzano le tue informazioni fino alla chiusura di Chrome</translation>
 <translation id="3080151273017101988">Continua a eseguire applicazioni in background dopo la chiusura di Google Chrome</translation>
 <translation id="3089968997497233615">È disponibile una nuova versione più sicura di Google Chrome.</translation>
 <translation id="3100998948628680988">Assegna un nome al tuo profilo Chrome</translation>
@@ -244,7 +243,6 @@
 <translation id="5804318322022881572">Impossibile avviare Chrome. Riprova.</translation>
 <translation id="5867197326698922595">Google Chrome sta cercando di modificare le password.</translation>
 <translation id="5895138241574237353">Riavvia</translation>
-<translation id="5901850848447342934">Quando chiudi Chrome, verrà <ph name="BEGIN_BOLD" />eseguita la disconnessione dalla maggior parte dei siti<ph name="END_BOLD" />. Se la sincronizzazione è disattivata, verrà anche <ph name="BEGIN_BOLD" />eseguita la disconnessione dai servizi Google e da Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Accesso rete</translation>
 <translation id="5924017743176219022">Connessione a Internet in corso…</translation>
 <translation id="5940385492829620908">Il tuoi siti web, i tuoi segnalibri e gli altri contenuti Chrome sempre disponibili e aggiornati qui.</translation>
@@ -381,7 +379,6 @@
 <translation id="8614913330719544658">Google Chrome non risponde. Riavviarlo ora?</translation>
 <translation id="861702415419836452">Chrome ha bisogno dell'autorizzazione ad accedere alla fotocamera per creare una mappa 3D dell'ambiente circostante</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome verrà riavviato tra 1 minuto}other{Chrome verrà riavviato tra # minuti}}</translation>
-<translation id="8629311577791198377">Quando chiudi tutte le finestre di Chrome, i cookie e i dati dei siti vengono cancellati automaticamente</translation>
 <translation id="8641606876632989680">Chrome ti invierà una notifica quando esegui l'accesso con una password compromessa</translation>
 <translation id="8649026945479135076">È normale che i siti che visiti memorizzino argomenti di tuo interesse per personalizzare la tua esperienza. I siti possono anche memorizzare su Chrome informazioni relative ai tuoi interessi.</translation>
 <translation id="8669527147644353129">Supporto Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb
index efc9e3d..7a7d990 100644
--- a/chrome/app/resources/google_chrome_strings_iw.xtb
+++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">בהמתנה להתקנה…</translation>
 <translation id="3059710691562604940">‏הגלישה הבטוחה כבויה. ההמלצה של Chrome היא להפעיל אותה.</translation>
 <translation id="3065168410429928842">‏כרטיסייה של Chrome</translation>
-<translation id="3069821012350118710">‏אתרים שביקרת בהם יזכרו את הפרטים שלך עד לסגירת Chrome</translation>
 <translation id="3080151273017101988">‏המשך הפעלת אפליקציות ברקע כאשר Google Chrome סגור</translation>
 <translation id="3089968997497233615">‏גרסה חדשה ובטוחה יותר של Google Chrome זמינה כעת</translation>
 <translation id="3100998948628680988">‏בחירת שם לפרופיל Chrome שלך</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">‏לא ניתן היה להפעיל את Chrome. יש לנסות שוב.</translation>
 <translation id="5867197326698922595">‏Google Chrome מנסה לערוך את הסיסמאות.</translation>
 <translation id="5895138241574237353">הפעלה מחדש</translation>
-<translation id="5901850848447342934">‏המערכת <ph name="BEGIN_BOLD" />תוציא אותך מהחשבון ברוב האתרים<ph name="END_BOLD" /> עם סגירת Chrome. אם הסנכרון כבוי, המערכת <ph name="BEGIN_BOLD" />תוציא אותך מהחשבון גם בשירותי Google וב-Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – כניסה לרשת</translation>
 <translation id="5924017743176219022">מתבצעת התחברות לאינטרנט…</translation>
 <translation id="5940385492829620908">‏היסטוריית האתרים, הסימניות ופריטים נוספים מ-Chrome נמצאים כאן.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">‏Google Chrome אינו מגיב. להפעיל מחדש עכשיו?</translation>
 <translation id="861702415419836452">‏Chrome זקוק להרשאת גישה למצלמה כדי ליצור מפה תלת-ממדית של הסביבה שלך</translation>
 <translation id="8625237574518804553">{0,plural, =1{‏Chrome יופעל מחדש בעוד דקה}one{‏Chrome יופעל מחדש בעוד # דקות}two{‏Chrome יופעל מחדש בעוד # דקות}other{‏Chrome יופעל מחדש בעוד # דקות}}</translation>
-<translation id="8629311577791198377">‏אחרי שסוגרים את כל החלונות של Chrome, קובצי cookie ונתוני אתרים נמחקים אוטומטית</translation>
 <translation id="8641606876632989680">‏אם מערכת Chrome תזהה שנכנסת עם סיסמה שנחשפה, היא תתריע לך על כך</translation>
 <translation id="8649026945479135076">‏באתרים רבים נהוג לשמור את תחומי העניין שלך כדי להתאים אישית את חוויית הגלישה בהם. בנוסף, אתרים יכולים לשמור מידע ב-Chrome לגבי תחומי העניין שלך.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb
index 400eefde..a2fe039f 100644
--- a/chrome/app/resources/google_chrome_strings_ja.xtb
+++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">インストールの待機中...</translation>
 <translation id="3059710691562604940">セーフ ブラウジングがオフになっています。Chrome はオンにすることをおすすめしています。</translation>
 <translation id="3065168410429928842">Chrome タブ</translation>
-<translation id="3069821012350118710">Chrome を閉じるまで、アクセスしたサイトにお客様の情報が保存されます</translation>
 <translation id="3080151273017101988">Google Chrome を閉じた際にバックグラウンド アプリの処理を続行する</translation>
 <translation id="3089968997497233615">Google クロームブラウザがより速く、さらに便利に。いますぐトライ!</translation>
 <translation id="3100998948628680988">Chrome プロフィールの名前を設定</translation>
@@ -244,7 +243,6 @@
 <translation id="5804318322022881572">Chrome を起動できませんでした。もう一度お試しください。</translation>
 <translation id="5867197326698922595">Google Chrome でパスワードを編集しようとしています。</translation>
 <translation id="5895138241574237353">再起動</translation>
-<translation id="5901850848447342934">Chrome を閉じると、<ph name="BEGIN_BOLD" />ほとんどのサイトからログアウト<ph name="END_BOLD" />します。同期がオフの場合は、<ph name="BEGIN_BOLD" />Google サービスと Chrome からもログアウト<ph name="END_BOLD" />します。</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ネットワークにログイン</translation>
 <translation id="5924017743176219022">インターネットに接続しています…</translation>
 <translation id="5940385492829620908">ウェブ、ブックマーク、その他の Chrome データを好みに設定できます。</translation>
@@ -381,7 +379,6 @@
 <translation id="8614913330719544658">Google Chrome が応答しません。今すぐ再起動しますか?</translation>
 <translation id="861702415419836452">周囲の 3D マップを作成するには、Chrome にカメラの使用を許可する必要があります</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome は 1 分後に再起動されます}other{Chrome は # 分後に再起動されます}}</translation>
-<translation id="8629311577791198377">Chrome のウィンドウをすべて閉じると、Cookie とサイトデータは自動的に削除されます</translation>
 <translation id="8641606876632989680">不正使用されたパスワードでログインした場合、Chrome で通知します</translation>
 <translation id="8649026945479135076">多くのサイトでは、アクセスしたユーザーの興味 / 関心を記憶して、エクスペリエンスをカスタマイズするのが一般的です。そうしたサイトでは、ユーザーの興味 / 関心についての情報を Chrome に保存する場合もあります。</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb
index ba0451b..31237e2f 100644
--- a/chrome/app/resources/google_chrome_strings_ka.xtb
+++ b/chrome/app/resources/google_chrome_strings_ka.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">ინსტალაციის მოლოდინში...</translation>
 <translation id="3059710691562604940">Safe Browsing გამორთულია. Chrome გირჩევთ მის ჩართვას.</translation>
 <translation id="3065168410429928842">Chrome-ის ჩანართი</translation>
-<translation id="3069821012350118710">თქვენ მიერ მონახულებული საიტები დაიმახსოვრებს თქვენს ინფორმაციას, სანამ Chrome-ს არ დახურავთ</translation>
 <translation id="3080151273017101988">გაგრძელება გაშვებული ფონური პროგრამებით Google Chrome-ის დახურვისას</translation>
 <translation id="3089968997497233615">ხელმისაწვდომია Google Chrome-ის უფრო ახალი და უსაფრთხო ვერსია.</translation>
 <translation id="3100998948628680988">დაასათაურეთ თქვენი Chrome პროფილი</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Chrome-ის გაშვება ვერ მოხერხდა. ცადეთ ხელახლა.</translation>
 <translation id="5867197326698922595">Google Chrome ცდილობს პაროლების რედაქტირებას.</translation>
 <translation id="5895138241574237353">გადატვირთვა</translation>
-<translation id="5901850848447342934">როცა Chrome-ს დახურავთ, <ph name="BEGIN_BOLD" />საიტების უმეტესობაზე სისტემიდან გახვალთ<ph name="END_BOLD" />. თუ სინქრონიზაცია გამორთულია, ასევე, <ph name="BEGIN_BOLD" />გახვალთ Google სერვისებისა და Chrome-ის სისტემიდან<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> — ქსელში შესვლა</translation>
 <translation id="5924017743176219022">მიმდინარეობს ინტერნეტთან დაკავშირება...</translation>
 <translation id="5940385492829620908">თქვენი ვები, სანიშნეები და Chrome-ის სხვა მასალა არის აქ.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome არ პასუხობს. გავუშვათ ხელახლა?</translation>
 <translation id="861702415419836452">Chrome საჭიროებს თქვენს კამერაზე წვდომის ნებართვას, თქვენი გარემოს 3-განზომილებიანი რუკის შექმნა რომ შეძლოს</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome ხელახლა გაეშვება 1 წუთში}other{Chrome ხელახლა გაეშვება # წუთში}}</translation>
-<translation id="8629311577791198377">როცა Chrome-ის ყველა ფანჯარას დახურავთ, ქუქი-ჩანაწერები და საიტების მონაცემები ავტომატურად გასუფთავდება</translation>
 <translation id="8641606876632989680">Chrome შეგატყობინებთ, როცა სისტემაში გატეხილი პაროლით შეხვალთ</translation>
 <translation id="8649026945479135076">თქვენ მიერ მონახულებული საიტები, როგორც წესი, ინახავს თქვენს ინტერესებს ფუნქციების თქვენზე მორგების მიზნით. საიტებს Chrome-ის მეშვეობითაც შეუძლია თქვენს ინტერესებთან დაკავშირებული ინფორმაციის შენახვა.</translation>
 <translation id="8669527147644353129">Google Chrome-ის დახმარება</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kk.xtb b/chrome/app/resources/google_chrome_strings_kk.xtb
index 2a57a9a..953f4aa2 100644
--- a/chrome/app/resources/google_chrome_strings_kk.xtb
+++ b/chrome/app/resources/google_chrome_strings_kk.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Сәлден соң орнатыла бастайды…</translation>
 <translation id="3059710691562604940">"Қауіпсіз шолу" функциясы өшірулі. Chrome браузері оны қосуды ұсынады.</translation>
 <translation id="3065168410429928842">Chrome қойындысы</translation>
-<translation id="3069821012350118710">Chrome браузерін жапқанға дейін, сіз кірген сайттар сіз туралы ақпаратты есте сақтайды.</translation>
 <translation id="3080151273017101988">Google Chrome жабылғанда, фондық қолданбаларды пайдалануды жалғастыру</translation>
 <translation id="3089968997497233615">Жаңа, қауіпсізірек Google Chrome нұсқасы қолжетімді.</translation>
 <translation id="3100998948628680988">Chrome профиліне ат қойыңыз</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Chrome браузері іске қосылмады. Қайталап көріңіз.</translation>
 <translation id="5867197326698922595">Google Chrome құпия сөздерді өзгерткісі келеді.</translation>
 <translation id="5895138241574237353">Қайта іске қосу</translation>
-<translation id="5901850848447342934">Chrome браузерін жапқанда, <ph name="BEGIN_BOLD" />көптеген сайттан шығып кетесіз.<ph name="END_BOLD" /> Егер синхрондау функциясы өшіп тұрса, <ph name="BEGIN_BOLD" />Google қызметтері мен Chrome браузерінен де шығып кетесіз.<ph name="END_BOLD" /></translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Желіге кіру</translation>
 <translation id="5924017743176219022">Интернетке қосылып жатыр…</translation>
 <translation id="5940385492829620908">Веб-сайттар, бетбелгілер және басқа Chrome материалдары осы жерде болады.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome жауап бермейді. Қазір қайта іске қосасыз ба?</translation>
 <translation id="861702415419836452">Chrome браузеріне айналаңыздың 3D картасын жасау үшін камераны пайдалану рұқсаты керек.</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome браузері 1 минуттан кейін қайта іске қосылады}other{Chrome браузері # минуттан кейін қайта іске қосылады}}</translation>
-<translation id="8629311577791198377">Chrome терезелерінің барлығын жапқанда, cookie файлдары мен сайт деректері автоматты түрде өшіріледі.</translation>
 <translation id="8641606876632989680">Ұрланған құпия сөзбен кірген кезде, Chrome сізге хабарлайды.</translation>
 <translation id="8649026945479135076">Әдетте кіретін сайттарыңыз тәжірибені жекелендіру үшін сізді қызықтыратын нәрселерді есте сақтайды. Сондай-ақ сайттар Chrome браузерінде қызығушылықтарыңыз туралы ақпаратты сақтай алады.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_km.xtb b/chrome/app/resources/google_chrome_strings_km.xtb
index 8a4839ff..3f940d1 100644
--- a/chrome/app/resources/google_chrome_strings_km.xtb
+++ b/chrome/app/resources/google_chrome_strings_km.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">កំពុងរង់ចាំដំឡើង...</translation>
 <translation id="3059710691562604940">បានបិទមុខងាររុករក​ដោយសុវត្ថិភាព​។ Chrome ណែនាំឱ្យបើក​មុខងារនេះ។</translation>
 <translation id="3065168410429928842">ផ្ទាំង Chrome</translation>
-<translation id="3069821012350118710">គេហទំព័រដែលអ្នកចូលមើល ចងចាំព័ត៌មានរបស់អ្នក រហូតទាល់តែអ្នកបិទ Chrome</translation>
 <translation id="3080151273017101988">បន្តដំណើរការកម្មវិធីផ្ទៃខាងក្រោយ នៅពេល Google Chrome ត្រូវបានបិទ</translation>
 <translation id="3089968997497233615">មានកំណែថ្មីដែលមានសុវត្ថិភាពជាងមុនសម្រាប់ Google Chrome។</translation>
 <translation id="3100998948628680988">ដាក់ឈ្មោះកម្រងព័ត៌មាន Chrome របស់អ្នក</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">មិន​អាច​ចាប់ផ្ដើម Chrome បានទេ។ សូមព្យាយាម​ម្ដង​ទៀត។</translation>
 <translation id="5867197326698922595">Google Chrome កំពុង​ព្យាយាម​កែ​ពាក្យសម្ងាត់​។</translation>
 <translation id="5895138241574237353">ចាប់ផ្តើមឡើងវិញ</translation>
-<translation id="5901850848447342934">អ្នកនឹងត្រូវបាន<ph name="BEGIN_BOLD" />នាំចេញពីគេហទំព័រភាគច្រើន<ph name="END_BOLD" /> នៅពេលអ្នកបិទ Chrome។ ប្រសិនបើ​សម​កាល​កម្មត្រូវបានបិទ អ្នកក៏នឹងត្រូវបាន<ph name="BEGIN_BOLD" />នាំចេញពីសេវាកម្ម Google និង Chrome<ph name="END_BOLD" /> ផងដែរ។</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ការចូល​បណ្ដាញ</translation>
 <translation id="5924017743176219022">កំពុងភ្ជាប់អ៊ីនធឺណិត...</translation>
 <translation id="5940385492829620908">គេហទំព័រ ចំណាំ និងរបស់ផ្សេងទៀតរបស់ Chrome របស់អ្នកនៅទីនេះ។</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome មិនឆ្លើយតប។ បើកដំណើរការឡើងវិញឥឡូវនេះ?</translation>
 <translation id="861702415419836452">Chrome ត្រូវការការអនុញ្ញាតចូលប្រើកាមេរ៉ារបស់អ្នក ដើម្បីបង្កើតផែនទី 3D នៃមជ្ឈដ្ឋានជុំវិញរបស់អ្នក</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome នឹង​ចាប់ផ្ដើមឡើងវិញ​ក្នុងរយៈពេល 1 នាទីទៀត}other{Chrome នឹង​ចាប់ផ្ដើមឡើងវិញ​ក្នុងរយៈពេល # នាទីទៀត}}</translation>
-<translation id="8629311577791198377">នៅពេលអ្នកបិទវិនដូ Chrome ទាំងអស់ នោះទិន្នន័យគេហទំព័រ និងខូគីត្រូវបានសម្អាតដោយស្វ័យប្រវត្តិ</translation>
 <translation id="8641606876632989680">Chrome នឹង​ជូនដំណឹងទៅអ្នក នៅពេលអ្នកចូល​គណនី​ដោយប្រើពាក្យសម្ងាត់ដែល​រងការលុកលុយ</translation>
 <translation id="8649026945479135076">ជាធម្មតា គេហទំព័រ​ដែលអ្នកចូលមើល​នឹងចងចាំអ្វីៗ​ដែលអ្នកចាប់អារម្មណ៍ ដើម្បីកំណត់​បទពិសោធន៍ប្រើប្រាស់​ឱ្យស្របនឹងអ្នក។ គេហទំព័រក៏អាច​រក្សាទុក​ព័ត៌មានជាមួយ Chrome អំពីចំណាប់អារម្មណ៍​របស់អ្នក​បានផងដែរ។</translation>
 <translation id="8669527147644353129">ជំនួួយការ Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index db591152..b7a833a 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -118,7 +118,6 @@
 <translation id="3038232873781883849">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="3059710691562604940">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ ಆಫ್ ಆಗಿದೆ. ಅದನ್ನು ಆನ್ ಮಾಡಲು Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="3065168410429928842">Chrome ಟ್ಯಾಬ್</translation>
-<translation id="3069821012350118710">ನೀವು ನೀಡುವ ಎಲ್ಲಾ ಸೈಟ್‌ಗಳು ನೀವು Chrome ಅನ್ನು ಮುಚ್ಚುವವರೆಗೆ ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುತ್ತವೆ</translation>
 <translation id="3080151273017101988">Google Chrome ಮುಚ್ಚಿದಾಗ ರನ್‌ ಆಗುತ್ತಿರುವ ಹಿನ್ನೆಲೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಮುಂದುವರಿಸು</translation>
 <translation id="3089968997497233615">ಹೊಸದಾದ, ಸುರಕ್ಷಿತವಾದ Google Chrome ನ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ.</translation>
 <translation id="3100998948628680988">ನಿಮ್ಮ Chrome ಪ್ರೊಫೈಲ್ ಅನ್ನು ಹೆಸರಿಸಿ</translation>
@@ -246,7 +245,6 @@
 <translation id="5804318322022881572">Chrome ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="5867197326698922595">Google Chrome, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation>
 <translation id="5895138241574237353">ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
-<translation id="5901850848447342934">ನೀವು Chrome ಅನ್ನು ಮುಚ್ಚಿದ ನಂತರ, ನಿಮ್ಮನ್ನು <ph name="BEGIN_BOLD" />ಎಲ್ಲಾ ಸೈಟ್‌ಗಳಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ<ph name="END_BOLD" />. ಸಿಂಕ್ ಆಫ್ ಆಗಿದ್ದರೆ, ನೀವು ಸಹ <ph name="BEGIN_BOLD" />Google ಸೇವೆಗಳು ಮತ್ತು Chrome ನಿಂದ ಸೈನ್ ಔಟ್ ಆಗುತ್ತೀರಿ<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್</translation>
 <translation id="5924017743176219022">ಇಂಟರ್ನೆಟ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="5940385492829620908">ನಿಮ್ಮ ವೆಬ್, ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು ಮತ್ತು ಇತರ Chrome ವಿಷಯವು ಇಲ್ಲಿ ಲೈವ್ ಆಗುತ್ತವೆ.</translation>
@@ -384,7 +382,6 @@
 </translation>
 <translation id="861702415419836452">ನಿಮ್ಮ ಸುತ್ತಮುತ್ತಲಿನ ಪರಿಸರದ 3D ನಕ್ಷೆಯನ್ನು ರಚಿಸುವುದಕ್ಕಾಗಿ ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು Chrome ಗೆ ಅನುಮತಿ ಬೇಕಾಗಿದೆ</translation>
 <translation id="8625237574518804553">{0,plural, =1{1 ನಿಮಿಷದಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ನಿಮಿಷಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ನಿಮಿಷಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation>
-<translation id="8629311577791198377">ನೀವು ಎಲ್ಲಾ Chrome ವಿಂಡೋಗಳನ್ನು ಮುಚ್ಚಿದ ನಂತರ, ಕುಕೀಗಳು ಮತ್ತು ಸೈಟ್ ಡೇಟಾವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆರವುಗೊಳಿಸಲಾಗುತ್ತದೆ</translation>
 <translation id="8641606876632989680">ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್ ಮೂಲಕ ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Chrome ನಿಮಗೆ ಸೂಚನೆ ನೀಡುತ್ತದೆ</translation>
 <translation id="8649026945479135076">ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್‌ಗಳು, ನಿಮ್ಮ ಅನುಭವವನ್ನು ವೈಯಕ್ತಿಕಗೊಳಿಸುವ ಸಲುವಾಗಿ ನಿಮಗೆ ಆಸಕ್ತಿಯಿರುವ ವಿಚಾರಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವುದು ಸಾಮಾನ್ಯ ಸಂಗತಿಯಾಗಿದೆ. ಸೈಟ್‌ಗಳು ನಿಮ್ಮ ಆಸಕ್ತಿಗಳ ಕುರಿತಾದ ಮಾಹಿತಿಯನ್ನು Chrome ನಲ್ಲಿ ಸಹ ಸಂಗ್ರಹಿಸಿಡಬಲ್ಲವು.</translation>
 <translation id="8669527147644353129">Google Chrome ಸಹಾಯಕ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb
index c2d8532..b6f4bf5 100644
--- a/chrome/app/resources/google_chrome_strings_ko.xtb
+++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">설치 대기 중...</translation>
 <translation id="3059710691562604940">세이프 브라우징이 사용 중지되어 있습니다. 사용 설정하는 것이 좋습니다.</translation>
 <translation id="3065168410429928842">Chrome 탭</translation>
-<translation id="3069821012350118710">내가 방문한 사이트에서는 Chrome을 종료할 때까지 내 정보를 기억합니다.</translation>
 <translation id="3080151273017101988">Chrome 종료 후에도 백그라운드 앱을 계속 실행</translation>
 <translation id="3089968997497233615">새롭고 안전한 Chrome의 새 버전을 사용할 수 있습니다.</translation>
 <translation id="3100998948628680988">Chrome 프로필 이름 지정</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome을 실행할 수 없습니다. 다시 시도해 보세요.</translation>
 <translation id="5867197326698922595">Chrome에서 비밀번호를 수정하려고 합니다.</translation>
 <translation id="5895138241574237353">다시 시작</translation>
-<translation id="5901850848447342934">Chrome을 종료하면 <ph name="BEGIN_BOLD" />대부분의 사이트에서 로그아웃<ph name="END_BOLD" />됩니다. 동기화를 사용 중지하면 <ph name="BEGIN_BOLD" />Google 서비스 및 Chrome에서도 로그아웃<ph name="END_BOLD" />됩니다.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 네트워크 로그인</translation>
 <translation id="5924017743176219022">인터넷에 연결 중...</translation>
 <translation id="5940385492829620908">웹, 북마크 및 기타 Chrome 콘텐츠가 여기에 저장됩니다.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Chrome이 응답하지 않습니다. 다시 시작하시겠습니까?</translation>
 <translation id="861702415419836452">Chrome에서 주변 3D 지도를 만들려면 카메라 액세스 권한이 필요합니다.</translation>
 <translation id="8625237574518804553">{0,plural, =1{1분 후 Chrome이 다시 시작됩니다}other{#분 후 Chrome이 다시 시작됩니다}}</translation>
-<translation id="8629311577791198377">모든 Chrome 창을 닫으면 쿠키와 사이트 데이터가 자동으로 삭제됩니다.</translation>
 <translation id="8641606876632989680">유출된 비밀번호로 로그인하면 Chrome에서 알림을 표시함</translation>
 <translation id="8649026945479135076">방문하는 사이트에서는 일반적으로 사용 경험을 개인화하기 위해 내가 관심을 보인 항목을 기억합니다. 또한 사이트에서는 내 관심분야에 관한 정보를 Chrome에 저장할 수 있습니다.</translation>
 <translation id="8669527147644353129">Chrome 도우미</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ky.xtb b/chrome/app/resources/google_chrome_strings_ky.xtb
index 7b3640e..6905fef 100644
--- a/chrome/app/resources/google_chrome_strings_ky.xtb
+++ b/chrome/app/resources/google_chrome_strings_ky.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Орнотулушу күтүлүүдө...</translation>
 <translation id="3059710691562604940">Коопсуз серептөө өчүк. Chrome аны күйгүзүүнү сунуштайт.</translation>
 <translation id="3065168410429928842">Chrome өтмөгү</translation>
-<translation id="3069821012350118710">Сиз баш баккан сайттарда маалыматыңыз Chrome жабылганга чейин сакталат</translation>
 <translation id="3080151273017101988">Google Chrome жабылганда фондук колдонмолор иштей берсин</translation>
 <translation id="3089968997497233615">Google Chrome'дун бир кыйла жаңы, коопсуз версиясы бар.</translation>
 <translation id="3100998948628680988">Chrome профилиңиздин аталышын коюңуз</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome иштетилбей койду. Кайталап көрүңүз.</translation>
 <translation id="5867197326698922595">Google Chrome сырсөздөрдү өзгөртүүгө аракет кылып жатат.</translation>
 <translation id="5895138241574237353">Өчүрүп күйгүзүү</translation>
-<translation id="5901850848447342934">Chrome жабылганда <ph name="BEGIN_BOLD" />көбүнчө сайттардан чыгып каласыз<ph name="END_BOLD" />. Эгер шайкештирүү өчүрүлсө, <ph name="BEGIN_BOLD" />Google кызматтары менен Chrome'дон чыгып каласыз<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Тармакка кирүү</translation>
 <translation id="5924017743176219022">Интернетке туташууда...</translation>
 <translation id="5940385492829620908">Веб, кыстармалар жана башка Chrome жеке дайын-даректериңиз ушул жерде жайгашкан.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome жооп бербей жатат. Азыр өчүрүп кайра ишке киргизесизби?</translation>
 <translation id="861702415419836452">Chrome айланаңыздын 3D картасын түзүү үчүн камераңызды колдонушу керек</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 1 мүнөттөн кийин кайра иштетилет}other{Chrome # мүнөттөн кийин кайра иштетилет}}</translation>
-<translation id="8629311577791198377">Chrome'догу бардык терезелер жабылса, cookie файлдары менен сайттагы маалымат автоматтык түрдө тазаланат</translation>
 <translation id="8641606876632989680">Chrome уурдалган сырсөз менен киргениңизде эскертет</translation>
 <translation id="8649026945479135076">Сиз баш баккан сайттар жалпысынан эле сиз кызыккан нерселерди тажрыйбаңызды жекелештирүү максатында эстеп калышат. Ошондой эле, сайттар кызыккан нерселериңиз тууралуу маалыматты Chrome'до сакташы мүмкүн.</translation>
 <translation id="8669527147644353129">Google Chrome Жардамчы</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lo.xtb b/chrome/app/resources/google_chrome_strings_lo.xtb
index 56a12a7d..d3cd780 100644
--- a/chrome/app/resources/google_chrome_strings_lo.xtb
+++ b/chrome/app/resources/google_chrome_strings_lo.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">ກຳ​ລັງ​ລໍ​ຖ້າ​ຕິດ​ຕັ້ງ...</translation>
 <translation id="3059710691562604940">Safe Browsing ປິດຢູ່. Chrome ແນະນຳໃຫ້ເປີດມັນ.</translation>
 <translation id="3065168410429928842">ແຖບ Chrome</translation>
-<translation id="3069821012350118710">ເວັບໄຊທີ່ທ່ານເຂົ້າເບິ່ງຈະຈື່ຂໍ້ມູນຂອງທ່ານໄວ້ຈົນກວ່າທ່ານຈະປິດ Chrome</translation>
 <translation id="3080151273017101988">ສືບຕໍ່ແລ່ນແອັບພື້ນຫຼັງ ເມື່ອ Google Chrome ປິດ</translation>
 <translation id="3089968997497233615">ມີ Google Chrome ລຸ້ນໃໝ່ປອດໄພກ່ວາຢູ່.</translation>
 <translation id="3100998948628680988">ຕັ້ງຊື່ໂປຣໄຟລ໌ Chrome ຂອງທ່ານ</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">ບໍ່ສາມາດເປີດໃຊ້ Chrome. ກະລຸນາລອງອີກຄັ້ງ.</translation>
 <translation id="5867197326698922595">Google Chrome ກໍາລັງພະຍາຍາມແກ້ໄຂລະຫັດຜ່ານ.</translation>
 <translation id="5895138241574237353">ເລີ່ມຕົ້ນໃໝ່</translation>
-<translation id="5901850848447342934">ທ່ານຈະຖືກ <ph name="BEGIN_BOLD" />ພາອອກຈາກລະບົບຂອງເວັບໄຊສ່ວນໃຫຍ່<ph name="END_BOLD" /> ເມື່ອທ່ານປິດ Chrome. ຫາກປິດການຊິ້ງຂໍ້ມູນໄວ້, ທ່ານຈະຖືກ <ph name="BEGIN_BOLD" />ພາອອກຈາກລະບົບຂອງບໍລິການ Google ແລະ Chrome<ph name="END_BOLD" /> ນຳ.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ການເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ</translation>
 <translation id="5924017743176219022">ກຳ​ລັງ​ເຊື່ອມ​ຕໍ່​ອິນ​ເຕີ​ເນັດ...</translation>
 <translation id="5940385492829620908">ເວັບຂອງທ່ານ, ບຸກມາກສ໌, ແລະ Chrome ອື່ນສົດຢູ່ທີ່ນີ້.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome ບໍ່ຕອບຮັບ. ເລີ່ມເປີດໃຊ້ໃໝ່ດຽວນີ້ບໍ?</translation>
 <translation id="861702415419836452">Chrome ຕ້ອງການການອະນຸຍາດເພື່ອເຂົ້າເຖິງກ້ອງຂອງທ່ານເພື່ອສ້າງແຜນທີ່ 3 ມິຕິຂອງສະພາບແວດລ້ອມອ້ອມຂ້າງຂອງທ່ານ</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome ຈະເປີດຄືນໃໝ່ໃນ 1 ນາທີ}other{Chrome ຈະເປີດຄືນໃໝ່ໃນ # ນາທີ}}</translation>
-<translation id="8629311577791198377">ເມື່ອທ່ານປິດໜ້າຈໍ Chrome ທັງໝົດ, ຄຸກກີ້ ແລະ ຂໍ້ມູນເວັບໄຊຈະຖືກລຶບລ້າງໂດຍອັດຕະໂນມັດ</translation>
 <translation id="8641606876632989680">Chrome ຈະແຈ້ງບອກທ່ານເມື່ອທ່ານເຂົ້າສູ່ລະບົບດ້ວຍລະຫັດຜ່ານທີ່ຖືກລະເມີດ</translation>
 <translation id="8649026945479135076">ມັນເປັນເລື່ອງປົກກະຕິສຳລັບເວັບໄຊທີ່ທ່ານເຂົ້າໃນການຈື່ສິ່ງຕ່າງໆທີ່ທ່ານສົນໃຈ, ເພື່ອປັບແຕ່ງປະສົບການຂອງທ່ານໃຫ້ເປັນແບບສ່ວນຕົວ. ເວັບໄຊສາມາດບັນທຶກຂໍ້ມູນກັບ Chrome ກ່ຽວກັບຄວາມສົນໃຈຂອງທ່ານໄດ້ນຳ.</translation>
 <translation id="8669527147644353129">ຕົວຊ່ວຍ Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index 6b11fa6e..c9b603e0 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Laukiama, kol bus įdiegta...</translation>
 <translation id="3059710691562604940">Saugaus naršymo funkcija išjungta. „Chrome“ rekomenduoja ją įjungti.</translation>
 <translation id="3065168410429928842">„Chrome“ skirtukas</translation>
-<translation id="3069821012350118710">Svetainės, kuriose apsilankote, prisimena jūsų informaciją, kol uždarote „Chrome“</translation>
 <translation id="3080151273017101988">Uždarius „Google Chrome“ toliau leisti fono programas</translation>
 <translation id="3089968997497233615">Galima nauja, saugesnė „Google Chrome“ versija.</translation>
 <translation id="3100998948628680988">Pavadinkite „Chrome“ profilį</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Nepavyko paleisti „Chrome“. Bandykite dar kartą.</translation>
 <translation id="5867197326698922595">„Google Chrome“ bando redaguoti slaptažodžius.</translation>
 <translation id="5895138241574237353">Paleisti iš naujo</translation>
-<translation id="5901850848447342934">Būsite <ph name="BEGIN_BOLD" />atjungti nuo daugumos svetainių<ph name="END_BOLD" />, kai uždarysite „Chrome“. Jei sinchronizavimas išjungtas, taip pat būsite <ph name="BEGIN_BOLD" />atjungti nuo „Google“ paslaugų ir „Chrome“<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592">„<ph name="PAGE_TITLE" />“ – prisijungimas prie tinklo</translation>
 <translation id="5924017743176219022">Prisijungiama prie interneto...</translation>
 <translation id="5940385492829620908">Čia saugoma žiniatinklio informacija, žymės ir kiti „Chrome“ duomenys.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">„Google Chrome“ neatsako. Paleisti iš naujo dabar?</translation>
 <translation id="861702415419836452">„Chrome“ reikia leidimo naudoti fotoaparatą jūsų aplinkos 3D žemėlapiui kurti</translation>
 <translation id="8625237574518804553">{0,plural, =1{„Chrome“ bus paleista iš naujo po 1 minutės}one{„Chrome“ bus paleista iš naujo po # minutės}few{„Chrome“ bus paleista iš naujo po # minučių}many{„Chrome“ bus paleista iš naujo po # minutės}other{„Chrome“ bus paleista iš naujo po # minučių}}</translation>
-<translation id="8629311577791198377">Kai uždarote visus „Chrome“ langus, slapukai ir svetainių duomenys automatiškai išvalomi</translation>
 <translation id="8641606876632989680">„Chrome“ praneš jums, kai prisijungsite naudodami pažeistą slaptažodį</translation>
 <translation id="8649026945479135076">Įprasta, kad svetainės, kuriose lankotės, įsimena, kuo domitės, kad galėtų suasmeninti jūsų patirtį. Svetainėse taip pat gali būti renkama su „Chrome“ susijusi informacija apie jūsų pomėgius.</translation>
 <translation id="8669527147644353129">„Google Chrome“ pagalbos priemonė</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb
index 5a5aa374..ebbd72e 100644
--- a/chrome/app/resources/google_chrome_strings_lv.xtb
+++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -118,7 +118,6 @@
 <translation id="3038232873781883849">Gaida, lai instalētu...</translation>
 <translation id="3059710691562604940">Droša pārlūkošana ir izslēgta. Pārlūkā Chrome tiek ieteikts to ieslēgt.</translation>
 <translation id="3065168410429928842">Chrome cilne</translation>
-<translation id="3069821012350118710">Apmeklētajās vietnēs jūsu informācija tiks iegaumēta, līdz jūs aizvērsiet pārlūku Chrome.</translation>
 <translation id="3080151273017101988">Turpināt lietotņu izpildi fonā, kad Google Chrome ir aizvērts</translation>
 <translation id="3089968997497233615">Ir pieejama jauna un drošāka Google Chrome versija.</translation>
 <translation id="3100998948628680988">Chrome profila nosaukšana</translation>
@@ -248,7 +247,6 @@
 <translation id="5804318322022881572">Neizdevās palaist Chrome. Mēģiniet vēlreiz.</translation>
 <translation id="5867197326698922595">Google Chrome mēģina rediģēt paroles.</translation>
 <translation id="5895138241574237353">Restartēt</translation>
-<translation id="5901850848447342934">Aizverot pārlūku Chrome, jūs tiksiet <ph name="BEGIN_BOLD" />izrakstīts no lielākās daļas vietņu<ph name="END_BOLD" />. Ja sinhronizācija ir izslēgta, jūs tiksiet arī <ph name="BEGIN_BOLD" />izrakstīts no Google pakalpojumiem un pārlūka Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> — pierakstīšanās tīklā</translation>
 <translation id="5924017743176219022">Notiek savienojuma izveide ar internetu...</translation>
 <translation id="5940385492829620908">Šeit atrodas jūsu tīmekļa saturs, grāmatzīmes un cits Chrome saturs.</translation>
@@ -385,7 +383,6 @@
 <translation id="8614913330719544658">Google Chrome nereaģē. Vai restartēt to tūlīt?</translation>
 <translation id="861702415419836452">Pārlūkam Chrome ir nepieciešama atļauja piekļūt jūsu kamerai, lai varētu izveidot jūsu apkārtnes 3D karti</translation>
 <translation id="8625237574518804553">{0,plural, =1{Pārlūks Chrome pēc 1 minūtes tiks restartēts}zero{Pārlūks Chrome pēc # minūtēm tiks restartēts}one{Pārlūks Chrome pēc # minūtes tiks restartēts}other{Pārlūks Chrome pēc # minūtēm tiks restartēts}}</translation>
-<translation id="8629311577791198377">Aizverot visus Chrome logus, sīkfaili un vietņu dati tiek automātiski notīrīti.</translation>
 <translation id="8641606876632989680">Ja pierakstīsieties ar uzlauztu paroli, pārlūkā Chrome tiks parādīts paziņojums.</translation>
 <translation id="8649026945479135076">Bieži vien jūsu apmeklētajās vietnēs tiek saglabāta informācija par jūs interesējošām lietām, lai personalizētu jūsu pieredzi. Vietnes var arī glabāt informāciju par jūsu interesēm pārlūkā Chrome.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mk.xtb b/chrome/app/resources/google_chrome_strings_mk.xtb
index d6b5bff..ca48ba4d 100644
--- a/chrome/app/resources/google_chrome_strings_mk.xtb
+++ b/chrome/app/resources/google_chrome_strings_mk.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Се чека инсталирање…</translation>
 <translation id="3059710691562604940">„Безбедното прелистување“ е исклучено. Chrome препорачува да го вклучите.</translation>
 <translation id="3065168410429928842">Картичка на Chrome</translation>
-<translation id="3069821012350118710">Сајтовите што ги посетувате ги помнат вашите податоци сѐ додека не го затворите Chrome</translation>
 <translation id="3080151273017101988">Продолжи со извршување апликации во заднина кога е затворен Google Chrome</translation>
 <translation id="3089968997497233615">Достапна е нова, побезбедна верзија на Google Chrome.</translation>
 <translation id="3100998948628680988">Именувајте го профилот на Chrome</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Не може да се стартува Chrome. Обидете се повторно.</translation>
 <translation id="5867197326698922595">Google Chrome се обидува да измени лозинки.</translation>
 <translation id="5895138241574237353">Рестартирај</translation>
-<translation id="5901850848447342934">Ќе ве <ph name="BEGIN_BOLD" />одјавиме од повеќето сајтови<ph name="END_BOLD" /> кога ќе го затворите Chrome. Ако е исклучена синхронизацијата, ќе ве <ph name="BEGIN_BOLD" />одјавиме и од услигите на Google и Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Мрежно најавување</translation>
 <translation id="5924017743176219022">Се поврзува на интернет…</translation>
 <translation id="5940385492829620908">Вебот, обележувачите и останатите работи на Chrome живеат тука.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome не реагира. Да се рестартира сега?</translation>
 <translation id="861702415419836452">На Chrome му треба дозвола за да пристапи до камерата и да создаде 3D-карта од вашето опкружување</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome ќе се рестартира по 1 минута}one{Chrome ќе се рестартира по # минута}other{Chrome ќе се рестартира по # минути}}</translation>
-<translation id="8629311577791198377">Кога ќе ги затворите сите прозорци на Chrome, колачињата и податоците од сајтовите автоматски се бришат</translation>
 <translation id="8641606876632989680">Chrome ќе ве извести кога ќе се најавите со компромитирана лозинка</translation>
 <translation id="8649026945479135076">Нормално е сајтовите што ги посетувате да ги помнат работите што ве интересираат за да го персонализираат вашето доживување. Сајтовите можат и да зачувуваат податоци со Chrome за вашите интереси.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index af8259c..7ee7dd24 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">ഇൻസ്റ്റാൾ ചെയ്യാൻ കാത്തിരിക്കുന്നു...</translation>
 <translation id="3059710691562604940">സുരക്ഷിത ബ്രൗസിംഗ് ഓഫാണ്. ഇത് ഓണാക്കാൻ Chrome നിർദ്ദേശിക്കുന്നു.</translation>
 <translation id="3065168410429928842">Chrome ടാബ്</translation>
-<translation id="3069821012350118710">Chrome അടയ്‌ക്കുന്നതുവരെ നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകൾക്ക് നിങ്ങളുടെ വിവരങ്ങൾ ഓർമ്മിക്കാനാകും</translation>
 <translation id="3080151273017101988">Google Chrome അടച്ചാലും പശ്ചാത്തല ആപ്ലിക്കേഷനുകള്‍ പ്രവര്‍ത്തിപ്പിക്കുന്നത് തുടരുക</translation>
 <translation id="3089968997497233615">Google Chrome-ന്റെ പുതിയതും സുരക്ഷിതവുമായ പതിപ്പ് ലഭ്യമാണ്.</translation>
 <translation id="3100998948628680988">നിങ്ങളുടെ Chrome പ്രൊഫൈലിന് പേര് നൽകുക</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome ലോഞ്ച് ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="5867197326698922595">പാസ്‌വേഡുകൾ Google Chrome എഡിറ്റ് ചെയ്യാൻ ശ്രമിക്കുന്നു.</translation>
 <translation id="5895138241574237353">പുനരാരംഭിക്കുക</translation>
-<translation id="5901850848447342934">നിങ്ങൾ Chrome അടയ്ക്കുമ്പോൾ <ph name="BEGIN_BOLD" />മിക്ക സൈറ്റുകളിൽ നിന്നും സൈൻ ഔട്ട് ചെയ്യും<ph name="END_BOLD" />. സമന്വയിപ്പിക്കൽ ഓഫാണെങ്കിൽ, നിങ്ങളും<ph name="BEGIN_BOLD" />Google സേവനങ്ങളിൽ നിന്നും Chrome-ൽ നിന്നും സൈൻ ഔട്ട് ചെയ്യും<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ</translation>
 <translation id="5924017743176219022">ഇന്റർനെറ്റിലേക്ക് കണക്റ്റ് ചെയ്യുന്നു...</translation>
 <translation id="5940385492829620908">നിങ്ങളുടെ വെബും ബുക്ക്മാർക്കുകളും മറ്റ് Chrome ഫയലും ഇവിടെ തത്സമയമാണ്.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome പ്രതികരിക്കുന്നില്ല. ഇപ്പോള്‍ വീണ്ടും സമാരംഭിക്കണോ?</translation>
 <translation id="861702415419836452">നിങ്ങളുടെ ചുറ്റുപാടിന്റെ 3D മാപ്പ് സൃഷ്ടിക്കുന്നതിന് നിങ്ങളുടെ ക്യാമറ ആക്സസ് ചെയ്യാൻ Chrome-ന് അനുമതി ആവശ്യമാണ്</translation>
 <translation id="8625237574518804553">{0,plural, =1{ഒരു മിനിറ്റിൽ Chrome വീണ്ടും സമാരംഭിക്കും}other{# മിനിറ്റിൽ Chrome വീണ്ടും സമാരംഭിക്കും}}</translation>
-<translation id="8629311577791198377">നിങ്ങൾ എല്ലാ Chrome വിൻഡോകളും അടയ്ക്കുമ്പോൾ, കുക്കികളും സൈറ്റ് ഡാറ്റയും സ്വയമേവ മായ്ക്കും</translation>
 <translation id="8641606876632989680">അപഹരിക്കപ്പെട്ട പാസ്‌വേഡ് ഉപയോഗിച്ച് നിങ്ങൾ സൈൻ ഇൻ ചെയ്യുമ്പോൾ Chrome നിങ്ങളെ അറിയിക്കും</translation>
 <translation id="8649026945479135076">നിങ്ങളുടെ അനുഭവം വ്യക്തിപരമാക്കുന്നതിന്, നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകൾ നിങ്ങൾക്ക് താൽപ്പര്യമുള്ള കാര്യങ്ങൾ ഓർമ്മിക്കുന്നത് സാധാരണമാണ്. സൈറ്റുകൾക്ക് നിങ്ങളുടെ താൽപ്പര്യങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ Chrome-ൽ സംഭരിക്കാനുമാകും.</translation>
 <translation id="8669527147644353129">Google Chrome സഹായി</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mn.xtb b/chrome/app/resources/google_chrome_strings_mn.xtb
index d1df006e7..c289ab3 100644
--- a/chrome/app/resources/google_chrome_strings_mn.xtb
+++ b/chrome/app/resources/google_chrome_strings_mn.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Суулгахыг хүлээж байна...</translation>
 <translation id="3059710691562604940">Аюулгүй үзэх онцлог унтраалттай байна. Chrome түүнийг асаахыг зөвлөж байна.</translation>
 <translation id="3065168410429928842">Chrome-н таб</translation>
-<translation id="3069821012350118710">Таны зочилсон сайтууд таныг Chrome-г хаах хүртэл мэдээллийг тань санадаг</translation>
 <translation id="3080151273017101988">Google Chrome хаагдсан үед үндсэн аппликйешнуудыг үргэлжлүүлэн ажиллуул</translation>
 <translation id="3089968997497233615">Google Chrome-ийн шинэ, илүү аюулгүй хувилбар бэлэн боллоо.</translation>
 <translation id="3100998948628680988">Chrome-н профайлаа нэрлэнэ үү</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome-г эхлүүлж чадсангүй. Дахин оролдоно уу.</translation>
 <translation id="5867197326698922595">Google Chrome нь нууц үгсийг засах гэж оролдож байна.</translation>
 <translation id="5895138241574237353">Дахин асаах</translation>
-<translation id="5901850848447342934">Таныг Chrome-г хаах үед <ph name="BEGIN_BOLD" />ихэнх сайтаас гаргана<ph name="END_BOLD" />. Хэрэв синк хийх унтраалттай бол таныг мөн <ph name="BEGIN_BOLD" />Google-н үйлчилгээнүүд болон Chrome<ph name="END_BOLD" />-с гаргана.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Сүлжээнд нэвтрэх</translation>
 <translation id="5924017743176219022">Интернэтэд холбогдож байна...</translation>
 <translation id="5940385492829620908">Таны веб, хавчуурга, болон Chrome-ийн бусад зүйлс энд хадгалагддаг.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome ажиллахгүй байна. Дахин эхүүлэх үү?</translation>
 <translation id="861702415419836452">Орчин тойрны тань 3D газрын зургийг үүсгэхийн тулд таны камерт хандах зөвшөөрөл Chrome-д шаардлагатай</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome-г 1 минутын дотор дахин ажиллуулна}other{Chrome-г # минутын дотор дахин ажиллуулна}}</translation>
-<translation id="8629311577791198377">Таныг Chrome-н бүх цонхыг хаах үед күүки болон сайтын өгөгдлийг автоматаар арилгана</translation>
 <translation id="8641606876632989680">Chrome нь таныг алдагдсан нууц үгээр нэвтрэх үед танд мэдэгдэнэ</translation>
 <translation id="8649026945479135076">Таны зочилсон сайтууд таны сонирхдог зүйлсийг таны туршлагыг хувийн болгохын тулд санах нь түгээмэл юм. Сайтууд мөн Chrome-р таны сонирхлын талаарх мэдээллийг хадгалах боломжтой.</translation>
 <translation id="8669527147644353129">Google Chrome Туслагч</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index a3eb237..8e3df4d8 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">इंस्टॉल करण्यासाठी प्रतीक्षा करत आहे...</translation>
 <translation id="3059710691562604940">सुरक्षित ब्राउझिंग बंद आहे. Chrome ते सुरू करण्याची शिफारस करते.</translation>
 <translation id="3065168410429928842">Chrome टॅब</translation>
-<translation id="3069821012350118710">तुम्ही Chrome बंद करेपर्यंत तुम्ही भेट दिलेल्या साइट तुमची माहिती लक्षात ठेवतात</translation>
 <translation id="3080151273017101988">जेव्हा Google Chrome बंद असेल तेव्हा पार्श्वभूमीत ॲप्लिकेशन चालणे सुरू ठेवा</translation>
 <translation id="3089968997497233615">Google Chrome ची नवीन, सुरक्षित आवृत्ती उपलब्ध आहे.</translation>
 <translation id="3100998948628680988">तुमच्या Chrome प्रोफाइलला नाव द्या</translation>
@@ -251,7 +250,6 @@
 <translation id="5804318322022881572">Chrome लाँच करता आले नाही. पुन्हा प्रयत्न करा.</translation>
 <translation id="5867197326698922595">Google Chrome पासवर्ड संपादित करण्याचा प्रयत्न करत आहे.</translation>
 <translation id="5895138241574237353">रीस्टार्ट करा</translation>
-<translation id="5901850848447342934">तुम्ही Chrome बंद कराल तेव्हा, तुम्हाला <ph name="BEGIN_BOLD" />बहुतांश साइटवरून साइन आउट केले<ph name="END_BOLD" /> जाईल. सिंक बंद असल्यास, तुम्हाला <ph name="BEGIN_BOLD" />Google सेवा आणि Chrome मधूनदेखील साइन आउट<ph name="END_BOLD" /> करता येईल.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन</translation>
 <translation id="5924017743176219022">इंटरनेटशी कनेक्ट करत आहे...</translation>
 <translation id="5940385492829620908">तुमचे वेब, बुकमार्क आणि अन्य Chrome आशय येथे थेट आहे.</translation>
@@ -388,7 +386,6 @@
 <translation id="8614913330719544658">Google Chrome प्रतिसाद देत नाही. त्वरित पुन्हा लाँच करायचा?</translation>
 <translation id="861702415419836452">तुमच्या आसपासचा 3D नकाशा तयार करण्यासाठी Chrome ला तुमचा कॅमेरा अ‍ॅक्सेस करण्याची परवानगी हवी आहे</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome एका मिनिटामध्ये पुन्हा लॉंच होईल}other{Chrome # मिनिटांमध्ये पुन्हा लॉंच होईल}}</translation>
-<translation id="8629311577791198377">तुम्ही Chrome च्या सर्व विंडो बंद करता तेव्हा, कुकी आणि साइट डेटा आपोआप साफ केला जातो</translation>
 <translation id="8641606876632989680">तुम्ही धोक्यात असलेल्या पासवर्डने साइन इन केल्यावर Chrome तुम्हाला सूचित करेल</translation>
 <translation id="8649026945479135076">सर्वसाधारणपणे, तुम्ही भेट देता त्या साइट तुमचा अनुभव पर्सनलाइझ करण्यासाठी, तुम्हाला स्वारस्य असलेल्या गोष्टी लक्षात ठेवतात. साइट तुमच्या स्वारस्यांबद्दलची माहिती Chrome वापरून स्टोअरदेखील करू शकतात.</translation>
 <translation id="8669527147644353129">Google Chrome मदतनीस</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index 68b9dc8..9d11ffa 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Menunggu untuk memasang...</translation>
 <translation id="3059710691562604940">Penyemakan Imbas Selamat dimatikan. Chrome mengesyorkan agar ciri ini dihidupkan.</translation>
 <translation id="3065168410429928842">Tab Chrome</translation>
-<translation id="3069821012350118710">Laman yang anda lawati mengingati maklumat anda sehingga anda menutup Chrome</translation>
 <translation id="3080151273017101988">Terus menjalankan apl latar belakang apabila Google Chrome ditutup</translation>
 <translation id="3089968997497233615">Terdapat versi Google Chrome baharu yang lebih selamat tersedia.</translation>
 <translation id="3100998948628680988">Namakan profil Chrome anda</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Tidak dapat melancarkan Chrome. Cuba lagi.</translation>
 <translation id="5867197326698922595">Google Chrome cuba mengedit kata laluan.</translation>
 <translation id="5895138241574237353">Mulakan Semula</translation>
-<translation id="5901850848447342934">Anda akan <ph name="BEGIN_BOLD" />dilog keluar daripada kebanyakan laman<ph name="END_BOLD" /> apabila anda menutup Chrome. Jika penyegerakan dimatikan, anda juga akan <ph name="BEGIN_BOLD" />dilog keluar daripada perkhidmatan Google dan Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Log Masuk Rangkaian</translation>
 <translation id="5924017743176219022">Menyambung ke Internet...</translation>
 <translation id="5940385492829620908">Web, penanda halaman dan barangan Chrome anda yang lain tinggal di sini.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome tidak responsif. Lancarkan semula sekarang?</translation>
 <translation id="861702415419836452">Chrome memerlukan kebenaran untuk mengakses kamera anda untuk membuat peta 3D persekitaran anda</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome akan dilancarkan semula dalam masa seminit}other{Chrome akan dilancarkan semula dalam masa # minit}}</translation>
-<translation id="8629311577791198377">Apabila anda menutup semua tetingkap Chrome, kuki dan data laman akan dikosongkan secara automatik</translation>
 <translation id="8641606876632989680">Chrome akan memaklumkan kepada anda apabila anda log masuk menggunakan kata laluan yang terjejas</translation>
 <translation id="8649026945479135076">Menjadi kebiasaan bagi laman yang anda lawati mengingati perkara yang anda minati, untuk memeribadikan pengalaman anda. Laman boleh menyimpan maklumat tentang minat anda menggunakan Chrome.</translation>
 <translation id="8669527147644353129">Pembantu Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_my.xtb b/chrome/app/resources/google_chrome_strings_my.xtb
index 981fe709..d5d370c 100644
--- a/chrome/app/resources/google_chrome_strings_my.xtb
+++ b/chrome/app/resources/google_chrome_strings_my.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">ထည့်သွင်းရန်စောင့်နေသည်…</translation>
 <translation id="3059710691562604940">'လုံခြုံစွာ ကြည့်ရှုခြင်း' ပိတ်ထားသည်။ ၎င်းကိုဖွင့်ရန် Chrome က အကြံပြုပါသည်။</translation>
 <translation id="3065168410429928842">Chrome တဘ်</translation>
-<translation id="3069821012350118710">Chromium ကို သင်မပိတ်ခင်အထိ ဝဘ်ဆိုက်များသည် သင့်အချက်အလက်များကို မှတ်ထားပါသည်</translation>
 <translation id="3080151273017101988">Google Chrome ကို ပိတ်လိုက်ချိန်မှာ နောက်ခံအက်ပ်များကို ဆက်ဖွင့် ထားရန်</translation>
 <translation id="3089968997497233615">ပိုသစ်သော၊ ပိုလုံခြုံသော Google Chrome ရနိုင်ပါသည်။</translation>
 <translation id="3100998948628680988">သင်၏ Chrome ပရိုဖိုင်ကို အမည်ပေးပါ</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome ကို ဖွင့်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="5867197326698922595">Google Chrome က စကားဝှက်များ တည်းဖြတ်ရန် ကြိုးပမ်းနေသည်။</translation>
 <translation id="5895138241574237353">ပြန်စတင်မည</translation>
-<translation id="5901850848447342934">Chromium ကို ပိတ်လိုက်ချိန်တွင် <ph name="BEGIN_BOLD" />ဝဘ်ဆိုက်အများစုမှ သင်ထွက်သွားလိမ့်မည်<ph name="END_BOLD" />။ စင့်ခ်လုပ်ခြင်း ပိတ်ထားလျှင်လည်း <ph name="BEGIN_BOLD" />Google ဝန်ဆောင်မှုများနှင့် Chromium မှ သင်ထွက်သွားလိမ့်မည်<ph name="END_BOLD" />။</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ကွန်ရက် လက်မှတ်ထိုးဝင်ခြင်း</translation>
 <translation id="5924017743176219022">အင်တာနက် ချိတ်ဆက်နေသည်…</translation>
 <translation id="5940385492829620908">သင်၏ ဝဘ်၊ စာညှပ်များ၊ နှင့် အခြားသော Chrome အရာများဟာ ဒီမှာ နေထိုင်ကြပါသည်။</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome သည် မတုံ့ပြန်ပါ။ ယခု ပြန်ပြီးဖွင့်တင်ရမလား?</translation>
 <translation id="861702415419836452">သင့်ပတ်ဝန်းကျင်၏ 3D မြေပုံ ပြုလုပ်ရန် Chrome က သင့်ကင်မရာကို အသုံးပြုခွင့် လိုအပ်သည်</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome ကို ၁ မိနစ်အကြာတွင် ပြန်လည်စတင်ပါမည်}other{Chrome ကို # မိနစ်အကြာတွင် ပြန်လည်စတင်ပါမည်}}</translation>
-<translation id="8629311577791198377">Chromium ဝင်းဒိုးများအားလုံးကို သင်ပိတ်လိုက်ချိန်တွင် ကွတ်ကီးနှင့် ဝဘ်ဆိုက် ဒေတာများသည် အလိုလို ရှင်းထုတ်ပြီးဖြစ်သည်</translation>
 <translation id="8641606876632989680">ကျိုးပေါက်ထားသည့် စကားဝှက်ဖြင့် လက်မှတ်ထိုးဝင်သည့်အခါ Chrome က သင့်ကို အကြောင်းကြားပါမည်</translation>
 <translation id="8649026945479135076">သင်ဝင်ကြည့်သောဝဘ်ဆိုက်များအနေနှင့် သင့်အသုံးပြုမှုကို ပုဂ္ဂိုလ်ရေးသီးသန့်ပြုလုပ်ရန် သင်စိတ်ဝင်စားသောအရာများကို မှတ်သားခြင်းက ပုံမှန်ဖြစ်သည်။ ဝဘ်ဆိုက်များသည် သင်၏စိတ်ဝင်စားမှုများကိုလည်း Chrome တွင် သိမ်းနိုင်သည်။</translation>
 <translation id="8669527147644353129">Google Chrome ကူညီပေးသူ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ne.xtb b/chrome/app/resources/google_chrome_strings_ne.xtb
index c2e43b4..34c0801 100644
--- a/chrome/app/resources/google_chrome_strings_ne.xtb
+++ b/chrome/app/resources/google_chrome_strings_ne.xtb
@@ -119,7 +119,6 @@
 <translation id="3038232873781883849">इन्स्टल गर्ने प्रतीक्षा गरिँदै छ...</translation>
 <translation id="3059710691562604940">सुरक्षित ब्राउजिङ निष्क्रिय छ। Chrome ले यो सेवा सक्रिय गर्न सिफारिस गर्छ।</translation>
 <translation id="3065168410429928842">Chrome को ट्याब</translation>
-<translation id="3069821012350118710">तपाईंले खोल्ने साइटहरूले तपाईंले Chrome बन्द नगरुन्जेल तपाईंको जानकारी याद राख्छन्</translation>
 <translation id="3080151273017101988">Google Chrome बन्दा हुँदा पृष्ठभूमि एपहरू चालू हुन जारी राख्नुहोस्</translation>
 <translation id="3089968997497233615">Google Chrome खो नयाँ, सुरक्षित संस्करण उपलब्ध छ।</translation>
 <translation id="3100998948628680988">आफ्नो Chrome प्रोफाइलको नाम राख्नुहोस्</translation>
@@ -249,7 +248,6 @@
 <translation id="5804318322022881572">Chrome सुरु गर्न सकिएन। फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="5867197326698922595">Google Chrome ले पासवर्डहरू बदल्ने प्रयास गरिरहेको छ।</translation>
 <translation id="5895138241574237353">पुन: शुरू गर्नुहोस्</translation>
-<translation id="5901850848447342934">तपाईंले Chrome बन्द गरेपछि तपाईंलाई <ph name="BEGIN_BOLD" />अधिकांश साइटहरूबाट साइन आउट<ph name="END_BOLD" /> गरिने छ। तपाईंले सिंक गर्ने सुविधा अफ गर्नुभएको छ भने तपाईंलाई <ph name="BEGIN_BOLD" />Google का सेवाहरू र Chrome बाट पनि साइन आउट गरिने छ<ph name="END_BOLD" />।</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन</translation>
 <translation id="5924017743176219022">इन्टरनेटमा कनेक्ट गरिँदै छ...</translation>
 <translation id="5940385492829620908">तपाईंको वेब, बुकमार्कहरू, र अन्य Chrome सामान यहाँ रहन्छन्।</translation>
@@ -386,7 +384,6 @@
 <translation id="8614913330719544658">Google Chrome ले प्रतिक्रिया जनाइरहेको छैन। अहिले नै पुन: लन्च गर्ने?</translation>
 <translation id="861702415419836452">Chrome लाई तपाईं वरपरको ठाउँको 3D नक्सा बनाउन तपाईंको क्यामेरा प्रयोग गर्ने अनुमति चाहिन्छ</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome १ मिनेटमा पुनः सुरु हुने छ}other{Chrome # मिनेटमा पुनः सुरु हुने छ}}</translation>
-<translation id="8629311577791198377">तपाईंले Chrome मा खोल्नुभएका सबै विन्डो बन्द गर्दा कुकीहरू र साइट डेटा स्वतः मेटाइन्छन्</translation>
 <translation id="8641606876632989680">तपाईंले अरूले देखेको पासवर्ड प्रयोग गरी साइन इन गर्दा Chrome ले तपाईंलाई त्यसबारे जानकारी दिने छ</translation>
 <translation id="8649026945479135076">तपाईंले खोल्ने साइटहरूले तपाईंलाई उपलब्ध गराइने सुविधा पर्सनलाइज गर्ने प्रयोजनका लागि तपाईंको रुचि भएका कुराहरू याद राख्नु सामान्य कुरा हो। साइटहरूले Chrome मा तपाईंका रुचिसम्बन्धी जानकारी भण्डारण गर्न पनि सक्छन्।</translation>
 <translation id="8669527147644353129">Google Chrome सहायक</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb
index b40ef6c..1928065 100644
--- a/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Wachten op installatie...</translation>
 <translation id="3059710691562604940">Safe Browsing staat uit. Chrome raadt je aan deze functie aan te zetten.</translation>
 <translation id="3065168410429928842">Chrome-tabblad</translation>
-<translation id="3069821012350118710">Sites die je bezoekt, onthouden je informatie totdat je Chrome sluit</translation>
 <translation id="3080151273017101988">Achtergrondapps blijven uitvoeren wanneer Google Chrome is gesloten</translation>
 <translation id="3089968997497233615">Er is een nieuwere, veiligere versie van Google Chrome beschikbaar.</translation>
 <translation id="3100998948628680988">Je Chrome-profiel een naam geven</translation>
@@ -250,7 +249,6 @@
 <translation id="5804318322022881572">Kan Chrome niet starten. Probeer het opnieuw.</translation>
 <translation id="5867197326698922595">Google Chrome probeert wachtwoorden te bewerken.</translation>
 <translation id="5895138241574237353">Opnieuw starten</translation>
-<translation id="5901850848447342934">Je wordt <ph name="BEGIN_BOLD" />uitgelogd van de meeste sites<ph name="END_BOLD" /> als je Chrome sluit. Als synchronisatie uitstaat, word je ook <ph name="BEGIN_BOLD" />uitgelogd van Google-services en Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Inloggen bij netwerk</translation>
 <translation id="5924017743176219022">Verbinding maken met internet...</translation>
 <translation id="5940385492829620908">Hier vind je internet, bookmarks en andere Chrome-instellingen.</translation>
@@ -387,7 +385,6 @@
 <translation id="8614913330719544658">Google Chrome reageert niet meer. Nu opnieuw starten?</translation>
 <translation id="861702415419836452">Chrome heeft toegangsrechten voor de camera nodig om een 3D-kaart van je omgeving te maken.</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome wordt over één minuut opnieuw gestart}other{Chrome wordt over # minuten opnieuw gestart}}</translation>
-<translation id="8629311577791198377">Als je alle Chrome-vensters sluit, worden de cookies en sitegegevens automatisch gewist</translation>
 <translation id="8641606876632989680">Chrome laat het je weten als je inlogt met een gehackt wachtwoord</translation>
 <translation id="8649026945479135076">Door jou bezochte sites onthouden over het algemeen informatie over je interesses om zo de functionaliteit te personaliseren. Sites kunnen ook informatie over je interesses in Chrome opslaan.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb
index 3f20f1f..ef4d3cea 100644
--- a/chrome/app/resources/google_chrome_strings_no.xtb
+++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">Venter på installering</translation>
 <translation id="3059710691562604940">Safe Browsing er slått av. Chrome anbefaler at du slår det på.</translation>
 <translation id="3065168410429928842">Chrome-fane</translation>
-<translation id="3069821012350118710">Nettsteder du besøker, husker informasjonen din til du lukker Chrome</translation>
 <translation id="3080151273017101988">Fortsett kjøringen av bakgrunnsprogrammer når Google Chrome er lukket</translation>
 <translation id="3089968997497233615">En ny, sikrere versjon av Google Chrome er tilgjengelig</translation>
 <translation id="3100998948628680988">Gi navn til Chrome-profilen din</translation>
@@ -244,7 +243,6 @@
 <translation id="5804318322022881572">Kunne ikke starte Chrome. Prøv på nytt.</translation>
 <translation id="5867197326698922595">Google Chrome prøver å redigere passord.</translation>
 <translation id="5895138241574237353">Start på nytt</translation>
-<translation id="5901850848447342934">Du blir <ph name="BEGIN_BOLD" />logget av de fleste nettsteder<ph name="END_BOLD" /> når du lukker Chrome. Hvis synkronisering er av, blir du også <ph name="BEGIN_BOLD" />logget av Google-tjenester og Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – nettverkspålogging</translation>
 <translation id="5924017743176219022">Kobler til internett …</translation>
 <translation id="5940385492829620908">Her finner du nettinnholdet, bokmerkene og de andre Chrome-tingene dine.</translation>
@@ -381,7 +379,6 @@
 <translation id="8614913330719544658">Google Chrome svarer ikke. Vil du starte på nytt nå?</translation>
 <translation id="861702415419836452">Chrome trenger tilgang til kameraet for å lage et 3D-kart av omgivelsene</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome startes på nytt om 1 minutt}other{Chrome startes på nytt om # minutter}}</translation>
-<translation id="8629311577791198377">Når du lukker alle Chrome-vinduer, blir informasjonskapsler og nettstedsdata slettet automatisk</translation>
 <translation id="8641606876632989680">Chrome varsler deg når du logger på med passord som er utsatt for sikkerhetsbrudd</translation>
 <translation id="8649026945479135076">Det er vanlig at nettsteder du besøker, husker ting du er interessert i, for å gi opplevelsen din personlig preg. Nettsteder kan også lagre informasjon om interessene dine i Chrome.</translation>
 <translation id="8669527147644353129">Google Chrome-hjelper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_or.xtb b/chrome/app/resources/google_chrome_strings_or.xtb
index d92690a..547150d 100644
--- a/chrome/app/resources/google_chrome_strings_or.xtb
+++ b/chrome/app/resources/google_chrome_strings_or.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">ଇନଷ୍ଟଲ କରିବା ପାଇଁ ଅପେକ୍ଷା କରାଯାଉଛି...</translation>
 <translation id="3059710691562604940">ସେଫ୍ ବ୍ରାଉଜିଂ ବନ୍ଦ ଅଛି। Chrome ଏହାକୁ ଚାଲୁ କରିବାକୁ ସୁପାରିଶ କରେ।</translation>
 <translation id="3065168410429928842">Chrome ଟାବ୍</translation>
-<translation id="3069821012350118710">ଆପଣ Chromeକୁ ବନ୍ଦ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଆପଣ ଭିଜିଟ କରିଥିବା ସାଇଟଗୁଡ଼ିକ ଆପଣଙ୍କ ସୂଚନାକୁ ମନେ ରଖିଥାଏ</translation>
 <translation id="3080151273017101988">ଯେତେବେଳେ Google Chrome ବନ୍ଦ ଅଛି, ସେତେବେଳେ ପୃଷ୍ଠପଟରେ ଥିବା ଆପ୍ସ ଚାଲିବା ଜାରି ରଖନ୍ତୁ।</translation>
 <translation id="3089968997497233615">Google Chromeର ଏକ ନୂଆ, ସୁରକ୍ଷିତ ସଂସ୍କରଣ ଉପଲବ୍ଧ ଅଛି।</translation>
 <translation id="3100998948628680988">ଆପଣଙ୍କ Chrome ପ୍ରୋଫାଇଲର ନାମ ଦିଅନ୍ତୁ</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome ଲଞ୍ଚ କରାଯାଇପାରିଲା ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="5867197326698922595">Google Chrome ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଏଡିଟ୍ କରିବାକୁ ଚେଷ୍ଟା କରୁଛି।</translation>
 <translation id="5895138241574237353">ପୁନଃଆରମ୍ଭ</translation>
-<translation id="5901850848447342934">ଆପଣ Chromeକୁ ବନ୍ଦ କଲେ <ph name="BEGIN_BOLD" />ଅଧିକାଂଶ ସାଇଟରୁ ସାଇନ ଆଉଟ<ph name="END_BOLD" /> ହୋଇଯିବେ। ଯଦି ସିଙ୍କ ବନ୍ଦ ଅଛି, ତେବେ ଆପଣ <ph name="BEGIN_BOLD" />Google ସେବାଗୁଡ଼ିକ ଏବଂ Chromeରୁ ସାଇନ ଆଉଟ<ph name="END_BOLD" /> ମଧ୍ୟ ହୋଇଯିବେ।</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ନେଟୱାର୍କ ସାଇନ୍-ଇନ୍</translation>
 <translation id="5924017743176219022">ଇଣ୍ଟରନେଟ ସହ କନେକ୍ଟ କରୁଛି...</translation>
 <translation id="5940385492829620908">ଆପଣଙ୍କର ୱେବ୍, ବୁକ୍‌ମାର୍କ ଏବଂ ଅନ୍ୟାନ୍ୟ Chrome ଷ୍ଟଫ୍ ଏଠାରେ ଅଛି।</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome କୌଣସି ପ୍ରତିକ୍ରିୟା ଦେଉନାହିଁ। ପୁଣିଥରେ ଲଞ୍ଚ କରିବେ?</translation>
 <translation id="861702415419836452">Chrome ଆପଣଙ୍କ ପରିପାର୍ଶ୍ୱର ଏକ 3D ମ୍ୟାପ୍ ତିଆରି କରିବା ପାଇଁ ଆପଣଙ୍କ କ୍ୟାମେରା ଆକ୍ସେସ୍ କରିବାକୁ ଅନୁମତି ଆବଶ୍ୟକ କରେ</translation>
 <translation id="8625237574518804553">{0,plural, =1{1 ମିନିଟ୍‌ରେ Chrome ପୁଣି ଲଞ୍ଚ ହେବ}other{# ମିନିଟ୍‌ରେ Chrome ପୁଣି ଲଞ୍ଚ ହେବ}}</translation>
-<translation id="8629311577791198377">ଯେତେବେଳେ ଆପଣ ସମସ୍ତ Chrome ୱିଣ୍ଡୋକୁ ବନ୍ଦ କରନ୍ତି, ସେତେବେଳେ କୁକୀ ଏବଂ ସାଇଟଗୁଡ଼ିକର ଡାଟା ସ୍ୱଚାଳିତ ଭାବେ ଖାଲି ହୋଇଯାଏ</translation>
 <translation id="8641606876632989680">ଆପଣ ଏକ ଚୋରି ହୋଇଯାଇଥିବା ପାସୱାର୍ଡ ମାଧ୍ୟମରେ ସାଇନ୍ ଇନ୍ କଲେ Chrome ଆପଣଙ୍କୁ ସୂଚିତ କରିବ</translation>
 <translation id="8649026945479135076">ଆପଣଙ୍କ ଅନୁଭୂତିକୁ ପର୍ସନାଲାଇଜ କରିବା ପାଇଁ, ଆପଣ ଭିଜିଟ କରୁଥିବା ସାଇଟଗୁଡ଼ିକ ସାଧାରଣତଃ ଆପଣଙ୍କ ରୁଚି ଥିବା ଜିନିଷଗୁଡ଼ିକୁ ମନେ ରଖେ। ସାଇଟଗୁଡ଼ିକ ମଧ୍ୟ ଆପଣଙ୍କ ରୁଚିଗୁଡ଼ିକ ବିଷୟରେ Chrome ସହ ସୂଚନା ଷ୍ଟୋର କରିପାରିବ।</translation>
 <translation id="8669527147644353129">Google Chrome ସାହାଯ୍ୟକାରୀ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb
index 70cb6b8..261ce2b 100644
--- a/chrome/app/resources/google_chrome_strings_pa.xtb
+++ b/chrome/app/resources/google_chrome_strings_pa.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">ਸਥਾਪਤ ਕਰਨ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ...</translation>
 <translation id="3059710691562604940">ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਬੰਦ ਹੈ। Chrome ਇਸਨੂੰ ਚਾਲੂ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।</translation>
 <translation id="3065168410429928842">Chrome ਟੈਬ</translation>
-<translation id="3069821012350118710">ਜਿਨ੍ਹਾਂ ਸਾਈਟਾਂ 'ਤੇ ਤੁਸੀਂ ਜਾਂਦੇ ਹੋ, ਉਹ ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ ਨੂੰ ਉਦੋਂ ਤੱਕ ਯਾਦ ਰੱਖਦੀਆਂ ਹਨ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ Chrome ਨੂੰ ਬੰਦ ਨਹੀਂ ਕਰਦੇ</translation>
 <translation id="3080151273017101988">Google Chrome ਬੰਦ ਹੋਣ 'ਤੇ ਵੀ ਬੈਕਗ੍ਰਾਊਂਡ ਐਪਾਂ ਨੂੰ ਚਲਦੇ ਰਹਿਣ ਦਿਓ</translation>
 <translation id="3089968997497233615">Google Chrome ਦਾ ਇੱਕ ਨਵਾਂ, ਵੱਧ ਸੁਰੱਖਿਅਤ ਵਰਜਨ ਉਪਲਬਧ ਹੈ।</translation>
 <translation id="3100998948628680988">ਆਪਣੇ Chrome ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਨਾਮ ਦਿਓ</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chrome ਨੂੰ ਲਾਂਚ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="5867197326698922595">Google Chrome ਪਾਸਵਰਡਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ।</translation>
 <translation id="5895138241574237353">ਰੀਸਟਾਰਟ ਕਰੋ</translation>
-<translation id="5901850848447342934">Chrome ਨੂੰ ਬੰਦ ਕਰਨ 'ਤੇ <ph name="BEGIN_BOLD" />ਤੁਸੀਂ ਜ਼ਿਆਦਾਤਰ ਸਾਈਟਾਂ ਤੋਂ ਸਾਈਨ-ਆਊਟ ਹੋ ਜਾਓਗੇ।<ph name="END_BOLD" /> ਜੇ ਸਿੰਕ ਬੰਦ ਹੈ, ਤਾਂ ਤੁਸੀਂ <ph name="BEGIN_BOLD" />Google ਸੇਵਾਵਾਂ ਅਤੇ Chrome ਤੋਂ ਵੀ ਸਾਈਨ-ਆਊਟ<ph name="END_BOLD" /> ਹੋ ਜਾਓਗੇ।</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ਨੈੱਟਵਰਕ ਸਾਈਨ-ਇਨ</translation>
 <translation id="5924017743176219022">ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...</translation>
 <translation id="5940385492829620908">ਤੁਹਾਡੀ ਵੈੱਬ, ਬੁੱਕਮਾਰਕ ਅਤੇ ਹੋਰ Chrome ਸਮੱਗਰੀ ਇੱਥੇ ਲਾਈਵ ਹੈ।</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome ਜਵਾਬ ਨਹੀਂ ਦੇ ਰਿਹਾ ਹੈ। ਕੀ ਹੁਣੇ ਮੁੜ-ਲਾਂਚ ਕਰਨਾ ਹੈ?</translation>
 <translation id="861702415419836452">Chrome ਨੂੰ ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਦਾ 3D ਨਕਸ਼ਾ ਬਣਾਉਣ ਵਾਸਤੇ ਤੁਹਾਡੇ ਕੈਮਰੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 1 ਮਿੰਟ ਵਿੱਚ ਮੁੜ-ਲਾਂਚ ਹੋਵੇਗਾ}one{Chrome # ਮਿੰਟ ਵਿੱਚ ਮੁੜ-ਲਾਂਚ ਹੋਵੇਗਾ}other{Chrome # ਮਿੰਟਾਂ ਵਿੱਚ ਮੁੜ-ਲਾਂਚ ਹੋਵੇਗਾ}}</translation>
-<translation id="8629311577791198377">ਜਦੋਂ ਤੁਸੀਂ ਸਾਰੀਆਂ Chrome ਵਿੰਡੋਆਂ ਨੂੰ ਬੰਦ ਕਰਦੇ ਹੋ, ਤਾਂ ਕੁਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਡਾਟਾ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਲੀਅਰ ਹੋ ਜਾਂਦਾ ਹੈ</translation>
 <translation id="8641606876632989680">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਛੇੜਛਾੜ ਵਾਲੇ ਪਾਸਵਰਡ ਨਾਲ ਸਾਈਨ-ਇਨ ਕਰਨ 'ਤੇ Chrome ਤੁਹਾਨੂੰ ਸੂਚਿਤ ਕਰੇਗਾ</translation>
 <translation id="8649026945479135076">ਤੁਹਾਡੇ ਅਨੁਭਵ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ, ਤੁਹਾਡੀ ਦਿਲਚਸਪੀ ਵਾਲੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਯਾਦ ਰੱਖਣਾ ਉਨ੍ਹਾਂ ਸਾਈਟਾਂ ਲਈ ਆਮ ਗੱਲ ਹੈ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ ਜਾਂਦੇ ਹੋ। ਸਾਈਟਾਂ ਤੁਹਾਡੀਆਂ ਦਿਲਚਸਪੀਆਂ ਬਾਰੇ Chrome ਵਿੱਚ ਜਾਣਕਾਰੀ ਵੀ ਸਟੋਰ ਕਰ ਸਕਦੀਆਂ ਹਨ।</translation>
 <translation id="8669527147644353129">Google Chrome ਸਹਾਇਕ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb
index 6c01bbb..964eb0a 100644
--- a/chrome/app/resources/google_chrome_strings_pl.xtb
+++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">Czekam na instalację…</translation>
 <translation id="3059710691562604940">Bezpieczne przeglądanie jest wyłączone. Chrome zaleca jego włączenie.</translation>
 <translation id="3065168410429928842">Karta Chrome</translation>
-<translation id="3069821012350118710">Strony, na które wchodzisz, pamiętają Cię, dopóki nie zamkniesz Chrome</translation>
 <translation id="3080151273017101988">Kontynuuj działanie aplikacji w tle po zamknięciu przeglądarki Google Chrome</translation>
 <translation id="3089968997497233615">Dostępna jest nowa, bezpieczniejsza wersja przeglądarki Google Chrome.</translation>
 <translation id="3100998948628680988">Nadaj nazwę swojemu profilowi Chrome</translation>
@@ -244,7 +243,6 @@
 <translation id="5804318322022881572">Nie udało się uruchomić Chrome. Spróbuj ponownie.</translation>
 <translation id="5867197326698922595">Google Chrome próbuje edytować hasła.</translation>
 <translation id="5895138241574237353">Uruchom ponownie</translation>
-<translation id="5901850848447342934">Gdy zamkniesz Chrome, nastąpi <ph name="BEGIN_BOLD" />wylogowanie z większości stron<ph name="END_BOLD" />. Jeśli wyłączona jest synchronizacja, dojdzie też do <ph name="BEGIN_BOLD" />wylogowania z usług Google i Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – logowanie do sieci</translation>
 <translation id="5924017743176219022">Łączę z internetem…</translation>
 <translation id="5940385492829620908">Tu są Twoje strony, zakładki i inne dane z Chrome.</translation>
@@ -381,7 +379,6 @@
 <translation id="8614913330719544658">Przeglądarka Google Chrome nie odpowiada. Uruchomić ją teraz ponownie?</translation>
 <translation id="861702415419836452">Aby utworzyć mapę 3D Twojego otoczenia, Chrome potrzebuje uprawnień dostępu do kamery</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome uruchomi się ponownie za minutę}few{Chrome uruchomi się ponownie za # minuty}many{Chrome uruchomi się ponownie za # minut}other{Chrome uruchomi się ponownie za # minuty}}</translation>
-<translation id="8629311577791198377">Gdy zamkniesz wszystkie okna Chrome, zostaną automatycznie wyczyszczone pliki cookie i dane witryn</translation>
 <translation id="8641606876632989680">Chrome powiadomi Cię w razie logowania za pomocą przejętego hasła</translation>
 <translation id="8649026945479135076">Odwiedzane witryny często zapamiętują rzeczy, które Cię interesują, żeby spersonalizować Twoje doświadczenia. Informacje o Twoich zainteresowaniach witryny mogą również przechowywać w Chrome.</translation>
 <translation id="8669527147644353129">Pomoc Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
index a5c75c7..2ddd069 100644
--- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Aguardando instalação...</translation>
 <translation id="3059710691562604940">O "Navegação segura" está desativado. O Chrome recomenda ativá-lo.</translation>
 <translation id="3065168410429928842">Guia do Chrome</translation>
-<translation id="3069821012350118710">Os sites que você acessar armazenarão suas informações até que o Chrome seja fechado</translation>
 <translation id="3080151273017101988">Executar aplicativos em segundo plano quando o Google Chrome estiver fechado</translation>
 <translation id="3089968997497233615">Há uma versão nova e mais segura do Google Chrome disponível.</translation>
 <translation id="3100998948628680988">Nomear seu perfil do Chrome</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Não foi possível iniciar o Chrome. Tente novamente.</translation>
 <translation id="5867197326698922595">O Google Chrome está tentando editar senhas.</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
-<translation id="5901850848447342934">Sua conta será <ph name="BEGIN_BOLD" />desconectada da maioria dos sites<ph name="END_BOLD" /> quando você fechar o Chrome. Se a sincronização estiver desativada, a conta também será <ph name="BEGIN_BOLD" />desconectada dos Serviços do Google e do navegador<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Login na rede</translation>
 <translation id="5924017743176219022">Conectando-se à Internet...</translation>
 <translation id="5940385492829620908">Sua Web, seus favoritos e demais conteúdo do Chrome estão aqui.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">O Google Chrome não responde. Reiniciar agora?</translation>
 <translation id="861702415419836452">O Chrome precisa de permissão para acessar sua câmera e criar um mapa 3D do ambiente a sua volta</translation>
 <translation id="8625237574518804553">{0,plural, =1{O Chrome será reiniciado em 1 minuto}one{O Chrome será reiniciado em # minuto}other{O Chrome será reiniciado em # minutos}}</translation>
-<translation id="8629311577791198377">Quando você fechar todas as janelas do Chrome, os cookies e os dados dos sites serão apagados automaticamente</translation>
 <translation id="8641606876632989680">O Chrome enviará uma notificação quando você fizer login com uma senha comprometida</translation>
 <translation id="8649026945479135076">É comum os sites que você visita lembrarem dos seus interesses para personalizar sua experiência. Sites também podem armazenar informações sobre seus interesses com o Chrome.</translation>
 <translation id="8669527147644353129">Auxiliar do Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
index e0f5ba7..ed87b7d 100644
--- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">A aguardar a instalação…</translation>
 <translation id="3059710691562604940">A Navegação segura está desativada. O Chrome recomenda que a ative.</translation>
 <translation id="3065168410429928842">Separador do Chrome</translation>
-<translation id="3069821012350118710">Os sites que visita memorizam as suas informações até fechar o Chrome</translation>
 <translation id="3080151273017101988">Continuar a executar aplicações em segundo plano quando o Google Chrome está fechado</translation>
 <translation id="3089968997497233615">Está disponível uma versão nova e mais segura do Google Chrome.</translation>
 <translation id="3100998948628680988">Atribua um nome ao seu perfil do Chrome</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Não foi possível iniciar o Chrome. Tente novamente.</translation>
 <translation id="5867197326698922595">O Google Chrome está a tentar editar palavras-passe.</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
-<translation id="5901850848447342934">A sua <ph name="BEGIN_BOLD" />sessão será terminada na maioria dos sites<ph name="END_BOLD" /> quando fecha o Chrome. Se a sincronização estiver desativada, a sua <ph name="BEGIN_BOLD" />sessão também será terminada nos serviços Google e no Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Início de sessão na rede</translation>
 <translation id="5924017743176219022">A ligar à Internet…</translation>
 <translation id="5940385492829620908">A sua Web, os seus marcadores e os seus outros itens do Chrome estão aqui.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">O Google Chrome não responde. Reiniciar agora?</translation>
 <translation id="861702415419836452">O Chrome necessita de autorização de acesso à câmara para criar um mapa 3D do ambiente à sua volta.</translation>
 <translation id="8625237574518804553">{0,plural, =1{O Chrome será reiniciado dentro de 1 minuto}other{O Chrome será reiniciado dentro de # minutos}}</translation>
-<translation id="8629311577791198377">Quando fecha todas as janelas do Chrome, os cookies e os dados de sites são automaticamente limpos</translation>
 <translation id="8641606876632989680">O Chrome envia-lhe uma notificação quando iniciar sessão com uma palavra-passe comprometida.</translation>
 <translation id="8649026945479135076">É comum que os sites que visita se lembrem de assuntos que lhe interessam para personalizar a sua experiência. Os sites também podem armazenar informações no Chrome sobre os seus interesses.</translation>
 <translation id="8669527147644353129">Ajudante do Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb
index b5591ca..219d849 100644
--- a/chrome/app/resources/google_chrome_strings_ro.xtb
+++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">Se așteaptă instalarea…</translation>
 <translation id="3059710691562604940">Navigarea sigură este dezactivată. Chrome îți recomandă să o activezi.</translation>
 <translation id="3065168410429928842">Fila Chrome</translation>
-<translation id="3069821012350118710">Site-urile pe care le accesezi rețin informațiile tale până când închizi Chrome</translation>
 <translation id="3080151273017101988">Rulează în continuare aplicații în fundal când Google Chrome este închis</translation>
 <translation id="3089968997497233615">Google Chrome este disponibil într-o versiune nouă și mai sigură.</translation>
 <translation id="3100998948628680988">Denumește profilul Chrome</translation>
@@ -244,7 +243,6 @@
 <translation id="5804318322022881572">Chrome nu a putut fi lansat. Încearcă din nou.</translation>
 <translation id="5867197326698922595">Google Chrome încearcă să modifice parolele.</translation>
 <translation id="5895138241574237353">Reîncepe</translation>
-<translation id="5901850848447342934">Vei fi <ph name="BEGIN_BOLD" />deconectat(ă) de pe majoritatea site-urilor<ph name="END_BOLD" /> când închizi Chrome. Dacă sincronizarea este dezactivată, vei fi <ph name="BEGIN_BOLD" />deconectat(ă) și de la serviciile Google și de la Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – conectare la rețea</translation>
 <translation id="5924017743176219022">Se conectează la internet…</translation>
 <translation id="5940385492829620908">Experiența web personalizată, marcajele și celelalte date Chrome chiar aici.</translation>
@@ -381,7 +379,6 @@
 <translation id="8614913330719544658">Google Chrome nu mai răspunde. Îl repornești acum?</translation>
 <translation id="861702415419836452">Chrome are nevoie de permisiunea de a accesa camera foto pentru a crea o hartă 3D a lucrurilor din jurul tău</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome se va relansa într-un minut}few{Chrome se va relansa în # minute}other{Chrome se va relansa în # de minute}}</translation>
-<translation id="8629311577791198377">Când închizi toate ferestrele Chrome, cookie-urile și datele privind site-urile sunt șterse automat</translation>
 <translation id="8641606876632989680">Chrome te va anunța dacă te conectezi folosind o parolă compromisă</translation>
 <translation id="8649026945479135076">Se întâmplă frecvent ca site-urile pe care le accesezi să rețină lucrurile care te interesează, pentru a-ți personaliza experiența. În plus, site-urile pot stoca informații în Chrome despre interesele tale.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb
index 7eb5b638..b7dd89f 100644
--- a/chrome/app/resources/google_chrome_strings_ru.xtb
+++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -50,13 +50,13 @@
 <translation id="1874309113135274312">Google Chrome (бета, mDNS-In)</translation>
 <translation id="1877026089748256423">Версия Chrome устарела</translation>
 <translation id="1919130412786645364">Разрешить вход в Chrome</translation>
-<translation id="1952239763774043237">На вашем компьютере используется macOS 10.12. Чтобы получать обновления Google Chrome, установите на устройство macOS 10.13 или более поздней версии.</translation>
+<translation id="1952239763774043237">Чтобы обновлять Google Chrome, нужна macOS 10.13 или более поздней версии. У вас установлена macOS 10.12.</translation>
 <translation id="1953553007165777902">Скачивание… Осталось: <ph name="MINUTE" /> мин.</translation>
 <translation id="2018528049276128029">В каждом профиле отдельно хранятся данные пользователей Chrome, такие как закладки, история просмотров и пароли.</translation>
 <translation id="2018879682492276940">Ошибка установки. Повторите попытку.</translation>
 <translation id="2071318482926839249">Вход уже выполнен в другой аккаунт. Вы можете создать свой профиль, чтобы использовать браузер Chrome отдельно.</translation>
 <translation id="207902854391093810">Если пробные функции включены, сайты, которые вы посещаете, смогут проводить оценку эффективности рекламы, запрашивая информацию у Chrome. Оценка эффективности рекламы ограничивает межсайтовое отслеживание, сокращая объем информации, передаваемой между сайтами, до минимума.</translation>
-<translation id="2091012649849228750">На вашем компьютере используется Windows 8. Чтобы получать обновления Google Chrome, установите на устройство Windows 10 или более поздней версии.</translation>
+<translation id="2091012649849228750">Чтобы обновлять Google Chrome, нужна Windows 10 или более поздней версии. У вас установлена Windows 8.</translation>
 <translation id="2094648590148273905">Условия использования Chrome OS Flex</translation>
 <translation id="2094919256425865063">Завершить работу Chrome?</translation>
 <translation id="2106831557840787829">Chrome OS Flex, как и <ph name="BEGIN_LINK_LINUX_OSS" />среда разработки Linux<ph name="END_LINK_LINUX_OSS" />, работает благодаря дополнительному <ph name="BEGIN_LINK_CROS_OSS" />программному обеспечению с открытым исходным кодом<ph name="END_LINK_CROS_OSS" />.</translation>
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">Ожидание установки…</translation>
 <translation id="3059710691562604940">Безопасный просмотр отключен. Chrome рекомендует включить его.</translation>
 <translation id="3065168410429928842">Вкладка Chrome</translation>
-<translation id="3069821012350118710">Ваши данные сохраняются на посещенных сайтах, пока вы не закроете браузер Chrome.</translation>
 <translation id="3080151273017101988">Не отключать работающие в фоновом режиме сервисы при закрытии браузера</translation>
 <translation id="3089968997497233615">Доступна новая, более безопасная версия Google Chrome.</translation>
 <translation id="3100998948628680988">Введите название профиля Chrome</translation>
@@ -212,7 +211,7 @@
 <translation id="4970880042055371251">Версия Chrome OS</translation>
 <translation id="4970947549776831107">Chrome заблокировал файл с опасным расширением.</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
-<translation id="5037581483200764584">На вашем компьютере используется OS X 10.11. Чтобы получать обновления Google Chrome, установите на устройство macOS 10.13 или более поздней версии.</translation>
+<translation id="5037581483200764584">Чтобы обновлять Google Chrome, нужна macOS 10.13 или более поздней версии. У вас установлена OS X 10.11.</translation>
 <translation id="5098668839038261629">Также выполняется выход из Chrome</translation>
 <translation id="5132929315877954718">Широкий выбор приложений, игр, расширений и тем для Google Chrome.</translation>
 <translation id="5139423532931106058">Настройте профиль Chrome</translation>
@@ -244,7 +243,6 @@
 <translation id="5804318322022881572">Не удалось запустить Chrome. Повторите попытку.</translation>
 <translation id="5867197326698922595">Google Chrome пытается изменить пароли</translation>
 <translation id="5895138241574237353">Перезапустить</translation>
-<translation id="5901850848447342934">Когда вы закроете Chrome, вы <ph name="BEGIN_BOLD" />выйдете с большинства сайтов<ph name="END_BOLD" />. Если синхронизация отключена, вы также <ph name="BEGIN_BOLD" />выйдете из сервисов Google и браузера Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592">"<ph name="PAGE_TITLE" />" – вход в сеть</translation>
 <translation id="5924017743176219022">Подключение к интернету…</translation>
 <translation id="5940385492829620908">Все веб-страницы, закладки и другие данные Chrome можно найти здесь.</translation>
@@ -285,7 +283,7 @@
 <translation id="6881299373831449287">Обновление Chrome</translation>
 <translation id="6885412569789873916">Приложения Chrome (бета)</translation>
 <translation id="6933858244219479645">Chrome OS</translation>
-<translation id="6938166777909186039">На вашем компьютере используется Windows 8.1. Чтобы получать обновления Google Chrome, установите на устройство Windows 10 или более поздней версии.</translation>
+<translation id="6938166777909186039">Чтобы обновлять Google Chrome, нужна Windows 10 или более поздней версии. У вас установлена Windows 8.1.</translation>
 <translation id="6943584222992551122">Данные о работе этого пользователя в браузере будут удалены с устройства. Чтобы восстановить их, войдите в Chrome как <ph name="USER_EMAIL" />.</translation>
 <translation id="6967962315388095737">Разрешить в Google Chrome (бета) передачу входящего трафика по протоколу mDNS</translation>
 <translation id="6989339256997917931">Google Chrome был обновлен, однако вы не использовали его в течение последних 30 дней.</translation>
@@ -381,7 +379,6 @@
 <translation id="8614913330719544658">Google Chrome не отвечает. Перезапустить сейчас?</translation>
 <translation id="861702415419836452">Chrome запрашивает доступ к камере, чтобы создать 3D-карту места, в котором вы находитесь.</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome перезапустится через 1 минуту}one{Chrome перезапустится через # минуту}few{Chrome перезапустится через # минуты}many{Chrome перезапустится через # минут}other{Chrome перезапустится через # минуты}}</translation>
-<translation id="8629311577791198377">Когда вы закроете все окна браузера Chrome, файлы cookie и данные сайтов будут автоматически удалены.</translation>
 <translation id="8641606876632989680">Вы получите уведомление от Chrome, если войдете в аккаунт с паролем, который был раскрыт.</translation>
 <translation id="8649026945479135076">Обычно сайты, которые вы посещаете, запоминают ваши интересы, чтобы показывать персонализированную рекламу. В том числе они могут хранить об этом информацию в Chrome.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
@@ -390,7 +387,7 @@
 <translation id="8686817260976772516">Профили Chrome нужны для раздельного использования браузера, например разными людьми или в разных целях.</translation>
 <translation id="8712767363896337380">Почти готово! Чтобы завершить обновление, перезапустите Chrome.</translation>
 <translation id="873133009373065397">Google Chrome не удалось определить или задать браузер по умолчанию</translation>
-<translation id="8821043148920470810">На вашем компьютере используется Windows 7. Чтобы получать обновления Google Chrome, установите на устройство Windows 10 или более поздней версии.</translation>
+<translation id="8821043148920470810">Чтобы обновлять Google Chrome, нужна Windows 10 или более поздней версии. У вас установлена Windows 7.</translation>
 <translation id="8823341990149967727">Версия Chrome устарела</translation>
 <translation id="8825634023950448068">Для защиты вашей конфиденциальности интересы автоматически удаляются через 4 недели с момента создания. Если после этого вы продолжите использовать браузер, то удаленные интересы могут вновь появиться в списке. Если вы не хотите видеть на сайтах конкретную рекламу или выводы Chrome не соответствуют действительности, можно удалить связанный интерес.</translation>
 <translation id="8834965163890861871">Google Chrome пытается изменить пароли. Чтобы разрешить это действие, введите свой пароль Windows.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_si.xtb b/chrome/app/resources/google_chrome_strings_si.xtb
index e687772..3cb61fc 100644
--- a/chrome/app/resources/google_chrome_strings_si.xtb
+++ b/chrome/app/resources/google_chrome_strings_si.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">ස්ථාපනය කිරීමට පොරොත්තුවෙන්...</translation>
 <translation id="3059710691562604940">සුරක්ෂිත පිරික්සුම ක්‍රියාවිරහිතයි. එය ක්‍රියාත්මක කිරීමට Chrome නිර්දේශ කරයි.</translation>
 <translation id="3065168410429928842">Chrome පටිත්ත</translation>
-<translation id="3069821012350118710">ඔබ පිවිසෙන අඩවි ඔබ Chrome වසන තෙක් ඔබේ තොරතුරු මතක තබා ගනියි</translation>
 <translation id="3080151273017101988">Google Chrome වසා ඇති විට පසුබිම් යෙදුම් ධාවනය අඛණ්ඩව කරන්න</translation>
 <translation id="3089968997497233615">Google Chrome හි නව, වඩා ආරක්ෂිත සංස්කරණයක් පවතී.</translation>
 <translation id="3100998948628680988">ඔබගේ Chrome පැතිකඩ නම් කරන්න</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Chrome දියත් කළ නොහැකි විය. නැවත උත්සාහ කරන්න.</translation>
 <translation id="5867197326698922595">Google Chrome මුරපද සංස්කරණ කිරීමට උත්සහ කරයි.</translation>
 <translation id="5895138241574237353">යළි අරඹන්න</translation>
-<translation id="5901850848447342934">ඔබ Chrome වසන විට ඔබව <ph name="BEGIN_BOLD" />බොහොමයක් අඩවිවලින්<ph name="END_BOLD" /> වරනු ඇත. සමමුහුර්ත කිරීම ක්‍රියාවිරහිත නම්, ඔබව <ph name="BEGIN_BOLD" />Google සේවා සහ Chrome වෙතින්ද වරනු ඇත<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ජාල පුරනය</translation>
 <translation id="5924017743176219022">අන්තර්ජාලය වෙත සම්බන්ධ වෙමින්...</translation>
 <translation id="5940385492829620908">ඔබේ වෙබ් අඩවි, පිටු සලකුණු සහ වෙනත් Chrome උපකරණ මෙහි ඇත.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome ප්‍රතිචාර නොදක්වයි. යළි දියත් කරන්නද?</translation>
 <translation id="861702415419836452">Chrome හට ඔබේ වටපිටාවේ ත්‍රිමාන සිතියමක් සෑදීමට ඔබේ කැමරාවට ප්‍රවේශ වීමට අවසර අවශ්‍යයි</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 1 විනාඩියකින් යළි දියත් වෙයි}one{Chrome විනාඩි # කින් යළි දියත් වෙයි}other{Chrome විනාඩි # කින් යළි දියත් වෙයි}}</translation>
-<translation id="8629311577791198377">ඔබ සියලු Chrome කවුළු වැසූ විට, කුකි සහ අඩවි දත්ත ස්වයංක්‍රියව ඉවත් කෙරේ</translation>
 <translation id="8641606876632989680">ඔබ සමථයට පත් වූ මුරපදයක් සමඟ පුරන විට Chrome ඔබට දැනුම් දෙයි</translation>
 <translation id="8649026945479135076">ඔබ පිවිසෙන අඩවිවලට ඔබ ලැදිකමක් දක්වන දේවල්, ඔබගේ අත්දැකීම පුද්ගලිකකරණය කිරීමට මතක තබා ගැනීම සාමාන්‍ය දෙයකි. ඔබගේ ලැදිකම් පිළිබඳ තොරතුරු අඩවිවලට Chrome සමග ගබඩා කිරීමටද හැකිය.</translation>
 <translation id="8669527147644353129">Google Chrome උදව් කරන්නා</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb
index 013a1ad..45f23f6 100644
--- a/chrome/app/resources/google_chrome_strings_sk.xtb
+++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -119,7 +119,6 @@
 <translation id="3038232873781883849">Čaká sa na inštaláciu…</translation>
 <translation id="3059710691562604940">Bezpečné prehliadanie je vypnuté. Chrome ho odporúča zapnúť.</translation>
 <translation id="3065168410429928842">Karta Chrome</translation>
-<translation id="3069821012350118710">Navštevované weby si pamätajú vaše informácie, dokým nezavriete Chrome</translation>
 <translation id="3080151273017101988">Po zatvorení prehliadača Google Chrome nechať aplikácie na pozadí spustené</translation>
 <translation id="3089968997497233615">K dispozícii je nová, bezpečnejšia verzia prehliadača Google Chrome.</translation>
 <translation id="3100998948628680988">Pomenujte svoj profil Chromu</translation>
@@ -251,7 +250,6 @@
 <translation id="5804318322022881572">Chrome sa nepodarilo spustiť. Skúste to znova.</translation>
 <translation id="5867197326698922595">Google Chrome sa pokúša upraviť heslá.</translation>
 <translation id="5895138241574237353">Reštartovať</translation>
-<translation id="5901850848447342934">Keď zavriete Chrome, systém vás <ph name="BEGIN_BOLD" />odhlási z väčšiny webov<ph name="END_BOLD" />. Ak je synchronizácia vypnutá, <ph name="BEGIN_BOLD" />odhlási vás aj zo služieb Googlu a Chromu<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – prihlásenie do siete</translation>
 <translation id="5924017743176219022">Pripája sa k internetu…</translation>
 <translation id="5940385492829620908">Tu nájdete svoj obsah na webe, záložky a ďalšie položky prehliadača Chrome.</translation>
@@ -388,7 +386,6 @@
 <translation id="8614913330719544658">Google Chrome nereaguje. Chcete ho spustiť znova?</translation>
 <translation id="861702415419836452">Chrome potrebuje povolenie použiť fotoaparát, aby mohol vytvoriť 3D mapu vášho okolia</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome sa reštartuje o 1 minútu}few{Chrome sa reštartuje o # minúty}many{Chrome sa reštartuje o # minúty}other{Chrome sa reštartuje o # minút}}</translation>
-<translation id="8629311577791198377">Keď zavriete všetky okná Chromu, súbory cookie a dáta webov budú automaticky vymazané</translation>
 <translation id="8641606876632989680">Chrome vás upozorní, keď sa prihlásite pomocou prelomeného hesla</translation>
 <translation id="8649026945479135076">Je bežné, že navštívené weby si pamätajú veci, ktoré vás zaujímajú, aby vám mohli prispôsobiť prostredie. Weby môžu v Chrome ukladať aj údaje o vašich záujmoch.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb
index 5782aec..b5285fd 100644
--- a/chrome/app/resources/google_chrome_strings_sl.xtb
+++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Čakanje na namestitev …</translation>
 <translation id="3059710691562604940">Varno brskanje je izklopljeno. Chrome priporoča, da ga vklopite.</translation>
 <translation id="3065168410429928842">Zavihek v Chromu</translation>
-<translation id="3069821012350118710">Spletna mesta, ki jih obiščete, si zapomnijo vaše podatke, dokler ne zaprete Chroma.</translation>
 <translation id="3080151273017101988">Nadaljuj izvajanje programov v ozadju, ko je Google Chrome zaprt</translation>
 <translation id="3089968997497233615">Na voljo je nova, varnejša različica Google Chroma.</translation>
 <translation id="3100998948628680988">Poimenujte profil v Chromu</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Chroma ni bilo mogoče zagnati. Poskusite znova.</translation>
 <translation id="5867197326698922595">Google Chrome poskuša urejati gesla.</translation>
 <translation id="5895138241574237353">Znova zaženi</translation>
-<translation id="5901850848447342934">Ko zaprete Chrome, boste <ph name="BEGIN_BOLD" />odjavljeni z večine spletnih mest<ph name="END_BOLD" />. Če je sinhronizacija izklopljena, boste prav tako <ph name="BEGIN_BOLD" />odjavljeni iz Googlovih storitev in Chroma<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Prijava v omrežje</translation>
 <translation id="5924017743176219022">Vzpostavljanje povezave z internetom …</translation>
 <translation id="5940385492829620908">Tu so shranjeni vaš splet, zaznamki in druge stvari v Chromu.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome se ne odziva. Ga želite znova zagnati?</translation>
 <translation id="861702415419836452">Chrome potrebuje dovoljenje za dostop do fotoaparata zaradi ustvarjanja tridimenzionalnega zemljevida okolice.</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome se bo znova zagnal čez eno minuto}one{Chrome se bo znova zagnal čez # minuto}two{Chrome se bo znova zagnal čez # minuti}few{Chrome se bo znova zagnal čez # minute}other{Chrome se bo znova zagnal čez # minut}}</translation>
-<translation id="8629311577791198377">Ko zaprete vsa okna Chroma, so piškotki in podatki spletnih mest samodejno izbrisani.</translation>
 <translation id="8641606876632989680">Chrome vas bo obvestil, če se prijavite z ogroženim geslom</translation>
 <translation id="8649026945479135076">Spletna mesta, ki jih obiščete, si zaradi osebnega prilagajanja vaše izkušnje pogosto zapomnijo, kaj vas zanima. Spletna mesta lahko v Chromu prav tako shranjujejo podatke o vaših zanimanjih.</translation>
 <translation id="8669527147644353129">Pomočnik za Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sq.xtb b/chrome/app/resources/google_chrome_strings_sq.xtb
index a4446df..1d800e8 100644
--- a/chrome/app/resources/google_chrome_strings_sq.xtb
+++ b/chrome/app/resources/google_chrome_strings_sq.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">Në pritje të instalimit...</translation>
 <translation id="3059710691562604940">"Shfletimi i sigurt" është joaktiv. Chrome rekomandon aktivizimin e tij.</translation>
 <translation id="3065168410429928842">Skeda Chrome</translation>
-<translation id="3069821012350118710">Sajtet që ti viziton i kujtojnë informacionet e tua derisa ti mbyll Chrome</translation>
 <translation id="3080151273017101988">Vazhdo ekzekutimin e aplikacioneve në sfond kur Google Chrome është i mbyllur</translation>
 <translation id="3089968997497233615">Ofrohet një version i ri dhe më i sigurt i Google Chrome.</translation>
 <translation id="3100998948628680988">Emërto profilin tënd të Chrome</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">Chrome nuk mund të hapej. Provo përsëri.</translation>
 <translation id="5867197326698922595">Google Chrome po përpiqet t'i modifikojë fjalëkalimet.</translation>
 <translation id="5895138241574237353">Rinis</translation>
-<translation id="5901850848447342934">Do të <ph name="BEGIN_BOLD" />dalësh nga shumica e sajteve<ph name="END_BOLD" /> kur të mbyllësh Chrome. Nëse sinkronizimi është joaktiv, do të <ph name="BEGIN_BOLD" />dalësh gjithashtu nga shërbimet e Google dhe nga Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - identifikimi në rrjet</translation>
 <translation id="5924017743176219022">Po lidhet me internetin...</translation>
 <translation id="5940385492829620908">Këtu janë materialet e tua të uebit, të faqeshënuesve dhe të tjera nga Chrome.</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome nuk përgjigjet. Dëshiron ta hapësh sërish tani?</translation>
 <translation id="861702415419836452">Chrome ka nevojë për leje për t'u qasur te kamera jote për të krijuar një hartë 3D të ambientit tënd rrethues</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome do të hapet përsëri për 1 minutë}other{Chrome do të hapet përsëri për # minuta}}</translation>
-<translation id="8629311577791198377">Kur të mbyllësh të gjitha dritaret e Chrome, kukit dhe të dhënat e sajtit do të pastrohen automatikisht</translation>
 <translation id="8641606876632989680">Chrome do të të njoftojë kur të identifikohesh me një fjalëkalim të komprometuar</translation>
 <translation id="8649026945479135076">Zakonisht, sajtet që ti viziton i kujtojnë gjërat që të interesojnë për të personalizuar përvojën tënde. Gjithashtu, sajtet mund të ruajnë informacione për interesat e tua në Chrome.</translation>
 <translation id="8669527147644353129">Ndihmësi i Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
index f83e0ef7..9cf11c94 100644
--- a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Čeka se instaliranje...</translation>
 <translation id="3059710691562604940">Bezbedno pregledanje je isključeno. Chrome preporučuje da ga uključite.</translation>
 <translation id="3065168410429928842">Chrome kartica</translation>
-<translation id="3069821012350118710">Sajtovi koje posećujete pamte vaše informacije dok ne zatvorite Chrome</translation>
 <translation id="3080151273017101988">Nastavi sa pokretanjem aplikacija u pozadini kada se Google Chrome zatvori</translation>
 <translation id="3089968997497233615">Dostupna je nova, bezbednija verzija Google Chrome pregledača.</translation>
 <translation id="3100998948628680988">Dajte naziv Chrome profilu</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Nije moguće pokrenuti Chrome. Pokušajte ponovo.</translation>
 <translation id="5867197326698922595">Google Chrome pokušava da izmeni lozinke.</translation>
 <translation id="5895138241574237353">Pokreni ponovo</translation>
-<translation id="5901850848447342934">Bićete <ph name="BEGIN_BOLD" />odjavljeni sa većine sajtova<ph name="END_BOLD" /> kada zatvorite Chrome. Ako je sinhronizacija isključena, takođe ćete biti <ph name="BEGIN_BOLD" />odjavljeni iz Google usluga i Chrome-a<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – prijavljivanje na mrežu</translation>
 <translation id="5924017743176219022">Povezujete se sa internetom…</translation>
 <translation id="5940385492829620908">Veb, obeleživači i drugi Chrome sadržaj se ovde uživo prikazuju.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome ne reaguje. Želite li da ga odmah ponovo pokrenete?</translation>
 <translation id="861702415419836452">Chrome traži dozvolu da pristupi kameri da bi napravio 3D mapu okruženja</translation>
 <translation id="8625237574518804553">{0,plural, =1{Ponovo ćemo pokrenuti Chrome za 1 minut}one{Ponovo ćemo pokrenuti Chrome za # minut}few{Ponovo ćemo pokrenuti Chrome za # minuta}other{Ponovo ćemo pokrenuti Chrome za # minuta}}</translation>
-<translation id="8629311577791198377">Kada zatvorite sve Chrome prozore, podaci o kolačićima i sajtovima se automatski brišu</translation>
 <translation id="8641606876632989680">Chrome će vas obavestiti kada se prijavite pomoću ugrožene lozinke</translation>
 <translation id="8649026945479135076">Uobičajeno je da sajtovi koje posećujete pamte stvari koje vas zanimaju radi personalizacije doživljaja. Sajtovi mogu i da čuvaju informacije o vašim interesovanjima u Chrome-u.</translation>
 <translation id="8669527147644353129">Google Chrome pomoćnik</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb
index 14fa195c..f4c9cd10 100644
--- a/chrome/app/resources/google_chrome_strings_sr.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Чека се инсталирање...</translation>
 <translation id="3059710691562604940">Безбедно прегледање је искључено. Chrome препоручује да га укључите.</translation>
 <translation id="3065168410429928842">Chrome картица</translation>
-<translation id="3069821012350118710">Сајтови које посећујете памте ваше информације док не затворите Chrome</translation>
 <translation id="3080151273017101988">Настави са покретањем апликација у позадини када се Google Chrome затвори</translation>
 <translation id="3089968997497233615">Доступна је нова, безбеднија верзија Google Chrome прегледача.</translation>
 <translation id="3100998948628680988">Дајте назив Chrome профилу</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Није могуће покренути Chrome. Покушајте поново.</translation>
 <translation id="5867197326698922595">Google Chrome покушава да измени лозинке.</translation>
 <translation id="5895138241574237353">Покрени поново</translation>
-<translation id="5901850848447342934">Бићете <ph name="BEGIN_BOLD" />одјављени са већине сајтова<ph name="END_BOLD" /> када затворите Chrome. Ако је синхронизација искључена, такође ћете бити <ph name="BEGIN_BOLD" />одјављени из Google услуга и Chrome-а<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – пријављивање на мрежу</translation>
 <translation id="5924017743176219022">Повезујете се са интернетом…</translation>
 <translation id="5940385492829620908">Веб, обележивачи и други Chrome садржај се овде уживо приказују.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome не реагује. Желите ли да га одмах поново покренете?</translation>
 <translation id="861702415419836452">Chrome тражи дозволу да приступи камери да би направио 3D мапу окружења</translation>
 <translation id="8625237574518804553">{0,plural, =1{Поново ћемо покренути Chrome за 1 минут}one{Поново ћемо покренути Chrome за # минут}few{Поново ћемо покренути Chrome за # минута}other{Поново ћемо покренути Chrome за # минута}}</translation>
-<translation id="8629311577791198377">Када затворите све Chrome прозоре, подаци о колачићима и сајтовима се аутоматски бришу</translation>
 <translation id="8641606876632989680">Chrome ће вас обавестити када се пријавите помоћу угрожене лозинке</translation>
 <translation id="8649026945479135076">Уобичајено је да сајтови које посећујете памте ствари које вас занимају ради персонализације доживљаја. Сајтови могу и да чувају информације о вашим интересовањима у Chrome-у.</translation>
 <translation id="8669527147644353129">Google Chrome помоћник</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb
index 9b06170c..f8f56a4c 100644
--- a/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Väntar på installation …</translation>
 <translation id="3059710691562604940">Säker webbsökning har inaktiverats. Du rekommenderas att aktivera funktionen i Chrome.</translation>
 <translation id="3065168410429928842">Chrome-flik</translation>
-<translation id="3069821012350118710">Webbplatser du besöker kommer ihåg dina uppgifter tills du stänger Chrome</translation>
 <translation id="3080151273017101988">Fortsätt köra bakgrundsappar när Google Chrome avslutas</translation>
 <translation id="3089968997497233615">Det finns en ny, ännu säkrare version av Google Chrome.</translation>
 <translation id="3100998948628680988">Ge Chrome-profilen ett namn</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Det gick inte att starta Chrome. Försök igen.</translation>
 <translation id="5867197326698922595">Lösenorden i Google Chrome redigeras.</translation>
 <translation id="5895138241574237353">Starta om</translation>
-<translation id="5901850848447342934">Du <ph name="BEGIN_BOLD" />loggas ut från de flesta webbplatser<ph name="END_BOLD" /> när du stänger Chrome. Om synkronisering har inaktiverats <ph name="BEGIN_BOLD" />loggas du även ut från Googles tjänster och Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – nätverksinloggning</translation>
 <translation id="5924017743176219022">Ansluter till internet …</translation>
 <translation id="5940385492829620908">Här finns webben, bokmärken och allt annat du använder Chrome till.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome svarar inte. Vill du starta om nu?</translation>
 <translation id="861702415419836452">Du behöver ge Chrome behörighet att använda kameran om du vill skapa en 3D-karta över dina omgivningar</translation>
 <translation id="8625237574518804553">{0,plural, =1{Om en minut startas Chrome om}other{Om # minuter startas Chrome om}}</translation>
-<translation id="8629311577791198377">När du stänger alla öppna fönster i Chrome rensas cookies och webbplatsdata automatiskt</translation>
 <translation id="8641606876632989680">Chrome aviserar dig om du loggar in med ett utsatt lösenord</translation>
 <translation id="8649026945479135076">Det är vanligt att webbplatser du besöker kommer ihåg sådant som intresserar dig för att anpassa din upplevelse. Webbplatser kan även lagra information om dina intressen i Chrome.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb
index c2cb733..7de63a38 100644
--- a/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Inasubiri kusakinisha...</translation>
 <translation id="3059710691562604940">Kipengele cha Kuvinjari Salama kimezimwa. Chrome inapendekeza ukiwashe.</translation>
 <translation id="3065168410429928842">Kichupo cha Chrome</translation>
-<translation id="3069821012350118710">Tovuti unazotembelea hukumbuka maelezo yako hadi utakapofunga Chrome</translation>
 <translation id="3080151273017101988">Endelea kuendesha programu zinazofanya kazi chini chini wakati Google Chrome imefungwa</translation>
 <translation id="3089968997497233615">Kuna toleo jipya na salama la Google Chrome.</translation>
 <translation id="3100998948628680988">Upe wasifu wako wa Chrome jina</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Imeshindwa kuanzisha Chrome. Jaribu tena.</translation>
 <translation id="5867197326698922595">Google Chrome inajaribu kubadilisha manenosiri.</translation>
 <translation id="5895138241574237353">Zzima na uwashe</translation>
-<translation id="5901850848447342934"><ph name="BEGIN_BOLD" />Utaondolewa katika akaunti kwenye tovuti nyingi<ph name="END_BOLD" /> unapofunga Chrome. Ikiwa kipengele cha kusawazisha kimezimwa, pia <ph name="BEGIN_BOLD" />utaondolewa katika akaunti kwenye huduma za Google na Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Kuingia katika Akaunti ya Mtandao</translation>
 <translation id="5924017743176219022">Inaunganisha kwenye Intaneti...</translation>
 <translation id="5940385492829620908">Wavuti, alamisho, na vitu vyako vingine vya Chrome vinapatikana hapa.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">Google Chrome imelemazwa. Izindue upya sasa?</translation>
 <translation id="861702415419836452">Chrome inahitaji ruhusa ya kufikia kamera yako ili iunde ramani ya 3D ya mazingira yako</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome itafunguka upya ndani ya dakika 1}other{Chrome itafunguka upya ndani ya dakika #}}</translation>
-<translation id="8629311577791198377">Unapofunga madirisha yote ya Chrome, vidakuzi na data ya tovuti hufutwa kiotomatiki</translation>
 <translation id="8641606876632989680">Chrome itakuarifu ukiingia katika akaunti ukitumia nenosiri lililoathiriwa</translation>
 <translation id="8649026945479135076">Ni kawaida kwa tovuti unazotembelea kukumbuka mambo yanayokuvutia, ili kuweka mapendeleo kwenye matumizi yako. Tovuti zinaweza pia kuhifadhi maelezo kuhusu mambo yanayokuvutia kwa kutumia Chrome.</translation>
 <translation id="8669527147644353129">Msaidizi wa Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb
index 7db5c11..9534068 100644
--- a/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">நிறுவக் காத்திருக்கிறது...</translation>
 <translation id="3059710691562604940">’பாதுகாப்பு உலாவல்‘ அம்சம் முடக்கப்பட்டுள்ளது. அதை இயக்குமாறு Chrome பரிந்துரைக்கிறது.</translation>
 <translation id="3065168410429928842">Chrome தாவல்</translation>
-<translation id="3069821012350118710">நீங்கள் Chromeமை மூடும் வரை உங்கள் தகவல்கள் நீங்கள் பார்வையிட்ட தளங்களில் இருந்து அழிக்கப்படாது</translation>
 <translation id="3080151273017101988">Google Chrome மூடப்பட்டிருக்கும்போது பின்புல ஆப்ஸை இயக்க அனுமதி</translation>
 <translation id="3089968997497233615">புதிய, இன்னும் பாதுகாப்பான Google Chrome பதிப்பு தற்போது கிடைக்கிறது.</translation>
 <translation id="3100998948628680988">உங்கள் Chrome சுயவிவரத்திற்குப் பெயரிடுங்கள்</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Chromeஐத் தொடங்க முடியவில்லை. மீண்டும் முயலவும்.</translation>
 <translation id="5867197326698922595">Google Chrome கடவுச்சொற்களைத் திருத்த முயல்கிறது.</translation>
 <translation id="5895138241574237353">மறுதொடக்கம்</translation>
-<translation id="5901850848447342934">Chromeமை மூடும்போது <ph name="BEGIN_BOLD" />பெரும்பாலான தளங்களில் இருந்து வெளியேற்றப்படுவீர்கள்<ph name="END_BOLD" />. ஒத்திசைவு முடக்கத்தில் இருந்தால் <ph name="BEGIN_BOLD" />Google சேவைகள், Chrome ஆகியவற்றில் இருந்தும் வெளியேற்றப்படுவீர்கள்<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - நெட்வொர்க் உள்நுழைவு</translation>
 <translation id="5924017743176219022">இணையத்துடன் இணைக்கிறது...</translation>
 <translation id="5940385492829620908">உங்களின் இணையம், புக்மார்க்குகள் மற்றும் பிற Chrome உருப்படிகள் இங்கே உள்ளன.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome பதிலளிக்கவில்லை. இப்போது மீண்டும் தொடங்கவா?</translation>
 <translation id="861702415419836452">உங்களைச் சுற்றியுள்ள இடங்களின் 3D வரைபடத்தை உருவாக்க, Chromeமுக்கு உங்கள் கேமராவை அணுக அனுமதி தேவை</translation>
 <translation id="8625237574518804553">{0,plural, =1{ஒரு நிமிடத்தில் Chrome மீண்டும் தொடங்கும்}other{# நிமிடங்களில் Chrome மீண்டும் தொடங்கும்}}</translation>
-<translation id="8629311577791198377">அனைத்து Chrome சாளரங்களையும் மூடும்போது, குக்கீகளும் தளத் தரவுகளும் தானாகவே அழிக்கப்படும்</translation>
 <translation id="8641606876632989680">களவாடப்பட்ட கடவுச்சொல் முலம் நீங்கள் உள்நுழையும்போது Chrome உங்களுக்குத் தெரியப்படுத்தும்</translation>
 <translation id="8649026945479135076">உங்கள் அனுபவத்தைப் பிரத்தியேகமாக்க, நீங்கள் ஆர்வங்காட்டும் விஷயங்களை நீங்கள் பார்வையிடும் தளங்கள் நினைவில் வைத்துக்கொள்வது பொதுவான ஒன்றாகும். உங்கள் ஆர்வங்கள் குறித்த தகவல்களை Chrome மூலமும் தளங்கள் சேமிக்கலாம்.</translation>
 <translation id="8669527147644353129">Google Chrome உதவி</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index e023e94..806fc06 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">ఇన్‌స్టాల్ చేయడానికి వేచి ఉంది...</translation>
 <translation id="3059710691562604940">సురక్షిత బ్రౌజింగ్ ఆఫ్ చేయబడింది. దాన్ని ఆన్ చేయమని Chrome సిఫార్సు చేస్తోంది.</translation>
 <translation id="3065168410429928842">Chrome ట్యాబ్</translation>
-<translation id="3069821012350118710">మీరు సందర్శించే సైట్‌లు మీ సమాచారాన్ని మీరు Chromeను మూసేవరకూ గుర్తు పెట్టుకుంటాయి</translation>
 <translation id="3080151273017101988">Google Chromeను మూసివేసినపుడు, యాప్‌లను బ్యాక్‌గ్రౌండ్‌లో రన్ చేయడాన్ని కొనసాగించండి</translation>
 <translation id="3089968997497233615">Google Chrome యొక్క కొత్తదైన, మరింత సురక్షిత వెర్షన్ అందుబాటులో ఉంది.</translation>
 <translation id="3100998948628680988">మీ Chrome ప్రొఫైల్‌కు పేరు పెట్టండి</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Chromeను ప్రారంభించడం సాధ్యపడలేదు. మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="5867197326698922595">పాస్‌వర్డ్‌లను ఎడిట్ చేయడానికి Google Chrome ప్రయత్నిస్తోంది.</translation>
 <translation id="5895138241574237353">మళ్ళీ ప్రారంభించండి</translation>
-<translation id="5901850848447342934">మీరు Chromeను మూసివేసినప్పుడు మీరు <ph name="BEGIN_BOLD" />చాలా వరకు సైట్‌ల నుండి సైన్ అవుట్ అవుతారు.<ph name="END_BOLD" /> సింక్ ఆఫ్‌లో ఉంటే, మీరు <ph name="BEGIN_BOLD" />Google సర్వీస్‌లు, అలాగే Chrome నుండి కూడా సైన్ అవుట్ అవుతారు<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - నెట్‌వర్క్ సైన్ ఇన్</translation>
 <translation id="5924017743176219022">ఇంటర్నెట్‌కు కనెక్ట్ చేస్తోంది...</translation>
 <translation id="5940385492829620908">మీ వెబ్, బుక్‌మార్క్‌లు మరియు ఇతర Chrome అంశాలు ఇక్కడ చూపబడతాయి.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome స్పందించడం లేదు. ఇప్పుడే పునఃప్రారంభించాలా?</translation>
 <translation id="861702415419836452">మీ పరిసరాల 3D మ్యాప్‌ను క్రియేట్ చేయడానికి Chromeకు మీ కెమెరాను యాక్సెస్ చేసే అనుమతి కావాలి</translation>
 <translation id="8625237574518804553">{0,plural, =1{1 నిమిషంలో Chrome తిరిగి ప్రారంభించబడుతుంది}other{# నిమిషాల్లో Chrome తిరిగి ప్రారంభించబడుతుంది}}</translation>
-<translation id="8629311577791198377">మీరు Chrome విండోలన్నింటినీ మూసివేస్తే, కుక్కీలు, సైట్ డేటా ఆటోమేటిక్‌గా తొలగించబడతాయి</translation>
 <translation id="8641606876632989680">చోరీకి గురైన పాస్‌వర్డ్‌తో మీరు సైన్ ఇన్ చేసినప్పుడు, Chrome తెలియజేస్తుంది</translation>
 <translation id="8649026945479135076">మీకు వ్యక్తిగతీకరించిన అనుభవాన్ని అందించడం కోసం, సైట్‌లు మీకు ఆసక్తి ఉన్న విషయాలను గుర్తుంచుకోవడం సర్వసాధారణం. మీ ఆసక్తులకు సంబంధించిన సమాచారాన్ని కూడా సైట్‌లు Chromeతో స్టోర్ చేయగలవు.</translation>
 <translation id="8669527147644353129">Google Chrome సహాయకారుడు</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 8fc41d2..e63be74 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">กำลังรอติดตั้ง...</translation>
 <translation id="3059710691562604940">Google Safe Browsing ปิดอยู่ Chrome ขอแนะนำให้เปิด</translation>
 <translation id="3065168410429928842">แท็บ Chrome</translation>
-<translation id="3069821012350118710">เว็บไซต์ที่คุณเข้าชมจะจดจำข้อมูลของคุณไปจนกว่าจะปิด Chrome</translation>
 <translation id="3080151273017101988">เรียกใช้แอปพลิเคชันเบื้องหลังต่อไปเมื่อ Google Chrome ถูกปิดลง</translation>
 <translation id="3089968997497233615">Google Chrome มีรุ่นใหม่ที่ปลอดภัยกว่าให้ใช้งานแล้ว</translation>
 <translation id="3100998948628680988">ตั้งชื่อโปรไฟล์ Chrome ของคุณ</translation>
@@ -244,7 +243,6 @@
 <translation id="5804318322022881572">เปิด Chrome ไม่ได้ โปรดลองอีกครั้ง</translation>
 <translation id="5867197326698922595">Google Chrome กำลังพยายามแก้ไขรหัสผ่าน</translation>
 <translation id="5895138241574237353">ปิดแล้วเปิดอีกครั้ง</translation>
-<translation id="5901850848447342934">คุณจะ<ph name="BEGIN_BOLD" />ออกจากระบบเว็บไซต์ส่วนใหญ่<ph name="END_BOLD" />เมื่อปิด Chrome หากการซิงค์ปิดอยู่ คุณจะ<ph name="BEGIN_BOLD" />ออกจากระบบบริการของ Google และ Chrome<ph name="END_BOLD" /> ด้วย</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - หน้าลงชื่อเข้าใช้ของเครือข่าย</translation>
 <translation id="5924017743176219022">กำลังเชื่อมต่ออินเทอร์เน็ต...</translation>
 <translation id="5940385492829620908">เว็บของคุณ บุ๊กมาร์ก และสิ่งอื่นๆ ใน Chrome พร้อมใช้แล้วที่นี่</translation>
@@ -381,7 +379,6 @@
 <translation id="8614913330719544658">Google Chrome ไม่ตอบสนอง เปิดใช้งานใหม่ตอนนี้หรือไม่</translation>
 <translation id="861702415419836452">Chrome ต้องการสิทธิ์เข้าถึงกล้องเพื่อสร้างแผนที่ 3 มิติของสิ่งที่อยู่รอบตัวคุณ</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome จะเปิดขึ้นมาใหม่ใน 1 นาที}other{Chrome จะเปิดขึ้นมาใหม่ใน # นาที}}</translation>
-<translation id="8629311577791198377">เมื่อคุณปิดหน้าต่าง Chrome ทั้งหมด ระบบจะล้างคุกกี้และข้อมูลเว็บไซต์โดยอัตโนมัติ</translation>
 <translation id="8641606876632989680">Chrome จะแจ้งให้คุณทราบเมื่อคุณลงชื่อเข้าใช้ด้วยรหัสผ่านที่ไม่รัดกุม</translation>
 <translation id="8649026945479135076">โดยทั่วไป เว็บไซต์ที่คุณเข้าชมจะจดจำสิ่งที่คุณสนใจเพื่อปรับประสบการณ์การใช้งานให้เหมาะกับคุณ เว็บไซต์ยังสามารถจัดเก็บข้อมูลเกี่ยวกับความสนใจไว้กับ Chrome ได้ด้วย</translation>
 <translation id="8669527147644353129">ตัวช่วยเหลือของ Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
index 19e6a7b..ce26fd7 100644
--- a/chrome/app/resources/google_chrome_strings_tr.xtb
+++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">Yüklenmesi bekleniyor...</translation>
 <translation id="3059710691562604940">Güvenli Tarama kapalı. Chrome bunun açılmasını öneriyor.</translation>
 <translation id="3065168410429928842">Chrome Sekmesi</translation>
-<translation id="3069821012350118710">Ziyaret ettiğiniz siteler, Chrome'u kapatana kadar bilgilerinizi hatırlar</translation>
 <translation id="3080151273017101988">Google Chrome kapandığında arka plan uygulamaları çalıştırmaya devam et</translation>
 <translation id="3089968997497233615">Google Chrome'un kullanabileceğiniz yeni, daha güvenli bir sürümü var.</translation>
 <translation id="3100998948628680988">Chrome profilinize bir ad verin</translation>
@@ -246,7 +245,6 @@
 <translation id="5804318322022881572">Chrome başlatılamadı. Tekrar deneyin.</translation>
 <translation id="5867197326698922595">Google Chrome şifreleri düzenlemeyi deniyor.</translation>
 <translation id="5895138241574237353">Yeniden başlat</translation>
-<translation id="5901850848447342934">Chrome'u kapattığınızda <ph name="BEGIN_BOLD" />çoğu sitede oturumunuz kapatılır<ph name="END_BOLD" />. Senkronizasyon kapalıysa <ph name="BEGIN_BOLD" />Google hizmetleri ve Chrome oturumunuz da kapatılır<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Ağda Oturum Açın</translation>
 <translation id="5924017743176219022">İnternete bağlanılıyor...</translation>
 <translation id="5940385492829620908">Web, yer işaretleri ve diğer Chrome öğeleriniz burada bulunur.</translation>
@@ -383,7 +381,6 @@
 <translation id="8614913330719544658">Google Chrome yanıt vermiyor. Yeniden başlatılsın mı?</translation>
 <translation id="861702415419836452">Çevrenizin 3D haritasını oluşturmak için Chrome'un kameranıza erişim iznine ihtiyacı var</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 1 dakika içinde yeniden başlatılacak}other{Chrome # dakika içinde yeniden başlatılacak}}</translation>
-<translation id="8629311577791198377">Tüm Chrome pencerelerini kapattığınızda çerezler ve site verileri otomatik olarak silinir</translation>
 <translation id="8641606876632989680">Chrome, güvenliği ihlal edilmiş bir şifreyle oturum açtığınızda size haber verir</translation>
 <translation id="8649026945479135076">Ziyaret ettiğiniz sitelerin deneyiminizi kişiselleştirmek için ilgi alanlarınızı hatırlaması olağan bir durumdur. Siteler, ilgi alanlarınız hakkındaki bilgileri Chrome'da da saklayabilir.</translation>
 <translation id="8669527147644353129">Google Chrome Helper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb
index 8544324a..63627810 100644
--- a/chrome/app/resources/google_chrome_strings_uk.xtb
+++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">Очікується встановлення…</translation>
 <translation id="3059710691562604940">Безпечний перегляд вимкнено. Chrome радить увімкнути його.</translation>
 <translation id="3065168410429928842">Chrome</translation>
-<translation id="3069821012350118710">Ваші дані зберігатимуться на відвіданих сайтах, доки ви не закриєте Chrome</translation>
 <translation id="3080151273017101988">Продовжувати роботу фонових програм, коли Google Chrome закрито</translation>
 <translation id="3089968997497233615">Доступна нова, безпечніша версія Google Chrome.</translation>
 <translation id="3100998948628680988">Додайте назву свого профілю Chrome</translation>
@@ -245,7 +244,6 @@
 <translation id="5804318322022881572">Не вдалося запустити Chrome. Повторіть спробу.</translation>
 <translation id="5867197326698922595">Google Chrome намагається змінити паролі.</translation>
 <translation id="5895138241574237353">Перезапустити</translation>
-<translation id="5901850848447342934">Ви <ph name="BEGIN_BOLD" />вийдете з облікового запису на більшості сайтів<ph name="END_BOLD" />, коли закриєте Chrome. Якщо синхронізацію вимкнено, вихід також буде виконано зі всіх <ph name="BEGIN_BOLD" />сервісів Google і з Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Вхід у мережу</translation>
 <translation id="5924017743176219022">Підключення до Інтернету…</translation>
 <translation id="5940385492829620908">Тут містяться ваші веб-сторінки, закладки та інші дані Chrome.</translation>
@@ -382,7 +380,6 @@
 <translation id="8614913330719544658">Google Chrome не відповідає. Перезапустити зараз?</translation>
 <translation id="861702415419836452">Chrome потрібен дозвіл на використання камери, щоб створити 3D-карту вашого оточення</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome перезапуститься через 1 хвилину}one{Chrome перезапуститься через # хвилину}few{Chrome перезапуститься через # хвилини}many{Chrome перезапуститься через # хвилин}other{Chrome перезапуститься через # хвилини}}</translation>
-<translation id="8629311577791198377">Коли ви закриєте всі вікна в Chrome, файли cookie й дані сайтів буде автоматично видалено</translation>
 <translation id="8641606876632989680">Chrome сповістить, коли ви ввійдете в обліковий запис за допомогою зламаного пароля</translation>
 <translation id="8649026945479135076">Зазвичай сайти, які ви відвідуєте, запам’ятовують, що вас цікавить, щоб персоналізувати для вас оголошення. Також сайти можуть зберігати в Chrome інформацію про ваші інтереси.</translation>
 <translation id="8669527147644353129">Помічник Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ur.xtb b/chrome/app/resources/google_chrome_strings_ur.xtb
index 7e32628..9527b052 100644
--- a/chrome/app/resources/google_chrome_strings_ur.xtb
+++ b/chrome/app/resources/google_chrome_strings_ur.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">انسٹال ہونے کا انتظار ہے...</translation>
 <translation id="3059710691562604940">‏محفوظ براؤزنگ آف ہے۔ Chrome اسے آن کرنے کی تجویز کرتا ہے۔</translation>
 <translation id="3065168410429928842">‏Chrome ٹیب</translation>
-<translation id="3069821012350118710">‏آپ کی ملاحظہ کردہ سائٹس آپ کے Chrome کو بند کرنے تک آپ کی معلومات کو یاد رکھتی ہیں</translation>
 <translation id="3080151273017101988">‏Google Chrome بند ہونے پر پس منظر کی ایپس چلانا جاری رکھیں</translation>
 <translation id="3089968997497233615">‏Google Chrome کا ایک نیا، محفوظ تر ورژن دستیاب ہے۔</translation>
 <translation id="3100998948628680988">‏اپنی Chrome پروفائل کو نام دیں</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">‏Chrome شروع نہیں ہو سکا۔ دوبارہ کوشش کریں۔</translation>
 <translation id="5867197326698922595">‏Google Chrome پاس ورڈز میں ترمیم کرنے کی کوشش کر رہا ہے۔</translation>
 <translation id="5895138241574237353">دوبارہ شروع کریں</translation>
-<translation id="5901850848447342934">‏آپ کے Chrome کو بند کرنے پر، آپ کو <ph name="BEGIN_BOLD" />بیشتر سائٹس سے سائن آؤٹ<ph name="END_BOLD" /> کر دیا جائے گا۔ 'سِنک کرنا' آف ہونے پر، آپ کو <ph name="BEGIN_BOLD" />Google سروسز اور Chrome سے بھی سائن آؤٹ<ph name="END_BOLD" /> کر دیا جائے گا۔</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - نیٹ ورک سائن ان</translation>
 <translation id="5924017743176219022">انٹرنیٹ سے منسلک کیا جا رہا ہے…</translation>
 <translation id="5940385492829620908">‏آپ کا ویب، بُک مارکس اور دیگر Chrome مواد یہاں رہتے ہیں۔</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">‏Google Chrome جواب نہیں دے رہا ہے۔ ابھی دوبارہ شروع کریں؟</translation>
 <translation id="861702415419836452">‏اپنے اطراف کا 3D نقشہ تخلیق کرنے کی خاطر Chrome کو آپ کے کیمرے تک رسائی کی اجازت درکار ہے</translation>
 <translation id="8625237574518804553">{0,plural, =1{‏1 منٹ میں Chrome دوبارہ لانچ ہوگا}other{‏# منٹ میں Chrome دوبارہ لانچ ہوگا}}</translation>
-<translation id="8629311577791198377">‏جب آپ سبھی Chrome ونڈوز بند کرتے ہیں تو کوکیز اور سائٹ کے ڈیٹا خودکار طور پر صاف ہو جاتے ہیں</translation>
 <translation id="8641606876632989680">‏جب آپ کسی متاثرہ پاس ورڈ سے سائن ان کریں گے تو Chrome آپ کو مطلع کرے گا</translation>
 <translation id="8649026945479135076">‏جن سائٹس کو آپ ملاحظہ کرتے ہیں ان میں آپ کی دلچسپیوں کو یاد رکھنا سائٹس کے لئے عام بات ہے تاکہ وہ آپ کے تجربے کو ذاتی نوعیت کا بنا سکیں۔ سائٹس Chrome کے ساتھ آپ کی دلچسپیوں کے بارے میں معلومات بھی اسٹور کر سکتی ہیں۔</translation>
 <translation id="8669527147644353129">‏Google Chrome مدد کنندہ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uz.xtb b/chrome/app/resources/google_chrome_strings_uz.xtb
index 77b18ecb..d3406f6 100644
--- a/chrome/app/resources/google_chrome_strings_uz.xtb
+++ b/chrome/app/resources/google_chrome_strings_uz.xtb
@@ -118,7 +118,6 @@
 <translation id="3038232873781883849">Oʻrnatish kutilmoqda…</translation>
 <translation id="3059710691562604940">Saytlarni xavfsiz kezish yoniq emas. Chrome uni yoqishingizni tavsiya qiladi.</translation>
 <translation id="3065168410429928842">Chrome sahifasi</translation>
-<translation id="3069821012350118710">Siz ochgan saytlar maʼlumotlaringizni Chrome yopilmaguncha esda saqlaydi</translation>
 <translation id="3080151273017101988">Google Chrome yopilishida orqa fon rejimida ishlayotgan ilovalar to‘xtatilmasin</translation>
 <translation id="3089968997497233615">Google Chrome brauzerining yangi, yanada xavfsiz versiyasi chiqdi.</translation>
 <translation id="3100998948628680988">Chrome profilingizga nom bering</translation>
@@ -250,7 +249,6 @@
 <translation id="5804318322022881572">Chrome ishga tushmadi. Qayta urining.</translation>
 <translation id="5867197326698922595">Google Chrome parollarni tahrirlashga urinmoqda.</translation>
 <translation id="5895138241574237353">Qayta ishga tushirish</translation>
-<translation id="5901850848447342934">Chrome yopilganda <ph name="BEGIN_BOLD" />aksar saytlardan chiqib ketasiz<ph name="END_BOLD" />. Agar sinxronizatsiya oʻchiq boʻlsa, <ph name="BEGIN_BOLD" />Google xizmatlari va Chrome hisobingizdan ham chiqib ketasiz<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Tarmoqqa kirish</translation>
 <translation id="5924017743176219022">Internetga ulanmoqda…</translation>
 <translation id="5940385492829620908">Chrome‘dagi barcha veb sahifalar, xatcho‘plar va boshqa ma’lumotlarni bu yerdan topish mumkin.</translation>
@@ -387,7 +385,6 @@
 <translation id="8614913330719544658">Google Chrome javob bermayapti. Qaytadan ishga tushirilsinmi?</translation>
 <translation id="861702415419836452">Chrome atrofingiz 3D xaritasini yaratishi uchun unga kamera ruxsati zarur</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 1 daqiqadan keyin qayta ishga tushadi}other{Chrome # daqiqadan keyin qayta ishga tushadi}}</translation>
-<translation id="8629311577791198377">Barcha Chrome oynalari yopilganda, cookie fayllar va sayt maʼlumotlari avtomatik ravishda tozalanadi</translation>
 <translation id="8641606876632989680">Google hisobingizga kirsangiz, Chrome oshkor qilingan parollar haqida xabar qiladi</translation>
 <translation id="8649026945479135076">Odatda siz kiradigan saytlar oʻz xizmatlarini sizga moslashtirish uchun sizga qiziq narsalarni eslab qoladi. Chrome orqali saytlar ham qiziqishlaringiz haqidagi maʼlumotlarni saqlashi mumkin.</translation>
 <translation id="8669527147644353129">Google Chrome yordamchisi</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index 538e198..2b7e93f 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -119,7 +119,6 @@
 <translation id="3038232873781883849">Đang chờ cài đặt...</translation>
 <translation id="3059710691562604940">Tính năng Duyệt web an toàn đang tắt. Bạn nên bật tính năng này trên Chrome.</translation>
 <translation id="3065168410429928842">Thẻ trình duyệt Chrome</translation>
-<translation id="3069821012350118710">Các trang web bạn truy cập ghi nhớ thông tin của bạn cho đến khi bạn đóng Chrome</translation>
 <translation id="3080151273017101988">Tiếp tục chạy các ứng dụng nền khi Google Chrome đóng</translation>
 <translation id="3089968997497233615">Đã có phiên bản Google Chrome mới và an toàn hơn.</translation>
 <translation id="3100998948628680988">Đặt tên cho hồ sơ của bạn trên Chrome</translation>
@@ -249,7 +248,6 @@
 <translation id="5804318322022881572">Không thể mở Chrome. Hãy thử lại.</translation>
 <translation id="5867197326698922595">Google Chrome đang cố gắng chỉnh sửa mật khẩu.</translation>
 <translation id="5895138241574237353">Khởi động lại</translation>
-<translation id="5901850848447342934">Bạn sẽ bị <ph name="BEGIN_BOLD" />đăng xuất khỏi hầu hết các trang web<ph name="END_BOLD" /> khi bạn đóng Chrome. Nếu tính năng đồng bộ hóa đang tắt, thì bạn cũng sẽ bị <ph name="BEGIN_BOLD" />đăng xuất khỏi các dịch vụ của Google và Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Đăng nhập vào mạng</translation>
 <translation id="5924017743176219022">Đang kết nối Internet...</translation>
 <translation id="5940385492829620908">Web, dấu trang và các nội dung khác của bạn trên Chrome đều có ở đây.</translation>
@@ -386,7 +384,6 @@
 <translation id="8614913330719544658">Google Chrome không hồi đáp. Chạy lại ngay bây giờ?</translation>
 <translation id="861702415419836452">Chromium cần có quyền sử dụng máy ảnh của bạn để tạo bản đồ 3D về các khu vực xung quanh bạn</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome sẽ khởi động lại sau 1 phút}other{Chrome sẽ khởi động lại sau # phút}}</translation>
-<translation id="8629311577791198377">Khi bạn đóng tất cả cửa sổ Chrome, thì cookie và dữ liệu trang web sẽ tự động bị xóa</translation>
 <translation id="8641606876632989680">Chrome sẽ thông báo khi mật khẩu bạn dùng để đăng nhập đã bị lộ</translation>
 <translation id="8649026945479135076">Các trang web bạn truy cập thường ghi nhớ các mối quan tâm của bạn để cá nhân hoá trải nghiệm cho bạn. Các trang web cũng có thể lưu trữ thông tin trên Chrome về mối quan tâm của bạn.</translation>
 <translation id="8669527147644353129">Trình trợ giúp của Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
index aa192d3..a3330de6 100644
--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -116,7 +116,6 @@
 <translation id="3038232873781883849">正在等待安装…</translation>
 <translation id="3059710691562604940">“安全浏览”功能已关闭。Chrome 建议开启此功能。</translation>
 <translation id="3065168410429928842">Chrome 标签页</translation>
-<translation id="3069821012350118710">您访问的网站会记住您的信息,直到您关闭 Chrome</translation>
 <translation id="3080151273017101988">关闭 Google Chrome 后继续运行后台应用</translation>
 <translation id="3089968997497233615">Google Chrome 浏览器现已推出更安全的新版本。</translation>
 <translation id="3100998948628680988">请为您的 Chrome 个人资料命名</translation>
@@ -244,7 +243,6 @@
 <translation id="5804318322022881572">无法启动 Chrome。请重试。</translation>
 <translation id="5867197326698922595">Google Chrome 正在尝试修改密码。</translation>
 <translation id="5895138241574237353">重新启动</translation>
-<translation id="5901850848447342934">关闭 Chrome 时,您会<ph name="BEGIN_BOLD" />自动退出大多数网站<ph name="END_BOLD" />。如果同步功能处于关闭状态,您还会<ph name="BEGIN_BOLD" />自动退出 Google 服务和 Chrome<ph name="END_BOLD" />。</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 网络登录</translation>
 <translation id="5924017743176219022">正在连接到互联网…</translation>
 <translation id="5940385492829620908">您的上网记录、书签和其他Chrome资料和数据都保存在此处。</translation>
@@ -381,7 +379,6 @@
 <translation id="8614913330719544658">Google Chrome 未响应。是否立即重新启动?</translation>
 <translation id="861702415419836452">Chrome 需要获得相应权限,才能使用您的摄像头为您的周边环境创建 3D 地图</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 将在 1 分钟后重新启动}other{Chrome 将在 # 分钟后重新启动}}</translation>
-<translation id="8629311577791198377">当您关闭所有 Chrome 窗口时,系统会自动清除 Cookie 和网站数据</translation>
 <translation id="8641606876632989680">当您使用已泄露的密码登录时,Chrome 会通知您</translation>
 <translation id="8649026945479135076">您访问的网站经常会记住您感兴趣的内容,以便为您提供个性化体验。网站还可以将您的兴趣信息存储在 Chrome 中。</translation>
 <translation id="8669527147644353129">Google Chrome 浏览器帮助程序</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
index 63207e6b..fc13fe8 100644
--- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
@@ -120,7 +120,6 @@
 <translation id="3038232873781883849">正在等待安裝…</translation>
 <translation id="3059710691562604940">「安全瀏覽」功能已停用。Chrome 建議啟用此功能。</translation>
 <translation id="3065168410429928842">Chrome 分頁</translation>
-<translation id="3069821012350118710">在 Chrome 關閉前,您瀏覽的網站可以記住您的資料</translation>
 <translation id="3080151273017101988">Google Chrome 關閉時繼續執行背景應用程式</translation>
 <translation id="3089968997497233615">Google Chrome 推出全新版本,安全性更勝從前。</translation>
 <translation id="3100998948628680988">為 Chrome 設定檔命名</translation>
@@ -252,7 +251,6 @@
 <translation id="5804318322022881572">無法啟動 Chrome,請再試一次。</translation>
 <translation id="5867197326698922595">Google Chrome 正在嘗試編輯密碼。</translation>
 <translation id="5895138241574237353">重新啟動</translation>
-<translation id="5901850848447342934">Chrome 關閉時,您將會<ph name="BEGIN_BOLD" />從大部分網站登出<ph name="END_BOLD" />。如果同步功能已關閉,您亦會<ph name="BEGIN_BOLD" />從 Google 服務和 Chrome 登出<ph name="END_BOLD" />。</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 網絡登入</translation>
 <translation id="5924017743176219022">正在連線至互聯網…</translation>
 <translation id="5940385492829620908">您的網頁、書籤和其他 Chrome 資料在這裡直播。</translation>
@@ -389,7 +387,6 @@
 <translation id="8614913330719544658">Google Chrome 沒有回應,要立即重新啟動嗎?</translation>
 <translation id="861702415419836452">Chrome 需要取得權限,才能存取相機以建立您身處環境的 3D 地圖</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 將於 1 分鐘後重新啟動}other{Chrome 將於 # 分鐘後重新啟動}}</translation>
-<translation id="8629311577791198377">關閉所有 Chrome 視窗時,系統將自動清除 Cookie 和網站資料</translation>
 <translation id="8641606876632989680">如果您使用被盜用的密碼登入帳戶,Chrome 會通知您</translation>
 <translation id="8649026945479135076">您瀏覽的網站經常會記住您感興趣的項目,以便為您提供個人化體驗。將您的興趣相關資訊儲存在 Chrome 中。</translation>
 <translation id="8669527147644353129">Google Chrome 輔助工具</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
index 9f8bd5d..a64d4ff 100644
--- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -117,7 +117,6 @@
 <translation id="3038232873781883849">正在等待安裝...</translation>
 <translation id="3059710691562604940">安全瀏覽功能已停用。Chrome 建議啟用這項功能。</translation>
 <translation id="3065168410429928842">Chrome 分頁</translation>
-<translation id="3069821012350118710">在 Chrome 關閉前,你造訪的網站會記住你的資訊</translation>
 <translation id="3080151273017101988">Google Chrome 關閉時繼續執行背景應用程式</translation>
 <translation id="3089968997497233615">Google Chrome 推出全新版本,安全性更勝以往。</translation>
 <translation id="3100998948628680988">為 Chrome 設定檔命名</translation>
@@ -247,7 +246,6 @@
 <translation id="5804318322022881572">無法啟動 Chrome,請再試一次。</translation>
 <translation id="5867197326698922595">Google Chrome 正在嘗試編輯密碼。</translation>
 <translation id="5895138241574237353">重新啟動</translation>
-<translation id="5901850848447342934">關閉 Chrome 會導致你<ph name="BEGIN_BOLD" />從大部分的網站登出<ph name="END_BOLD" />。如果關閉同步處理功能,你也會<ph name="BEGIN_BOLD" />從 Google 服務和 Chrome 登出<ph name="END_BOLD" />。</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 網路登入</translation>
 <translation id="5924017743176219022">正在連線至網際網路...</translation>
 <translation id="5940385492829620908">你瀏覽的網頁、書籤和其他 Chrome 設定都在這裡。</translation>
@@ -384,7 +382,6 @@
 <translation id="8614913330719544658">Google Chrome 沒有回應,要立即重新啟動嗎?</translation>
 <translation id="861702415419836452">Chrome 需要取得攝影機權限,才能根據你的周遭環境建立 3D 地圖</translation>
 <translation id="8625237574518804553">{0,plural, =1{Chrome 將在 1 分鐘後重新啟動}other{Chrome 將在 # 分鐘後重新啟動}}</translation>
-<translation id="8629311577791198377">當你關閉所有 Chrome 視窗時,系統會自動清除 Cookie 和網站資料</translation>
 <translation id="8641606876632989680">如果你使用遭外洩的密碼登入帳戶,Chrome 會通知你</translation>
 <translation id="8649026945479135076">你造訪的網站通常都會記住你感興趣的項目,目的是打造個人化體驗。此外,網站也可以將你的興趣喜好相關資訊儲存在 Chrome 中。</translation>
 <translation id="8669527147644353129">Google Chrome 小幫手</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zu.xtb b/chrome/app/resources/google_chrome_strings_zu.xtb
index ad3c822c..3120b54 100644
--- a/chrome/app/resources/google_chrome_strings_zu.xtb
+++ b/chrome/app/resources/google_chrome_strings_zu.xtb
@@ -121,7 +121,6 @@
 <translation id="3038232873781883849">Ilinde ukufaka...</translation>
 <translation id="3059710691562604940">Ukuphequlula okuphephile kuvaliwe. I-Chrome incoma ukuba kuvulwe.</translation>
 <translation id="3065168410429928842">Ithebhu le-Chrome</translation>
-<translation id="3069821012350118710">Amasayithi owavakashelayo akhumbula ulwazi lwakho uze uvale i-Chrome</translation>
 <translation id="3080151273017101988">Qhubeka nokusebenzisa izinhlelo zokusebenza zangemuva ngenkathi i-Google Chrome ivaliwe</translation>
 <translation id="3089968997497233615">Kukhona inguqulo entsha, evikelekile ye-Google Chrome etholakalayo.</translation>
 <translation id="3100998948628680988">Qamba iphrofayela lakho le-Chrome</translation>
@@ -253,7 +252,6 @@
 <translation id="5804318322022881572">Ayikwazanga ukuqalisa i-Chrome. Zama futhi.</translation>
 <translation id="5867197326698922595">I-Google Chrome izama ukuhlela amaphasiwedi.</translation>
 <translation id="5895138241574237353">Qalisa kabusha</translation>
-<translation id="5901850848447342934"><ph name="BEGIN_BOLD" />Uzokhishwa ngemvume kumasayithi amaningi<ph name="END_BOLD" /> lapho uvala i-Chrome. Uma ukuvumelanisa kuvaliwe, nawe <ph name="BEGIN_BOLD" />uzokhishwa ngemvume kumasevisi e-Google naku-Chrome<ph name="END_BOLD" />.</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Inethiwekhi Yokugena ngemvume</translation>
 <translation id="5924017743176219022">Ixhuma Ku-inthanethi...</translation>
 <translation id="5940385492829620908">Iwebhu yakho, amabhukhimakhi, nezinye izinto ze-Chrome zihlala lapha.</translation>
@@ -390,7 +388,6 @@
 <translation id="8614913330719544658">I-Google Chrome ayiphenduli. Qalisa kabusha manje?</translation>
 <translation id="861702415419836452">I-Chrome idinga imvume yokufinyelela kwikhamera yakho ukudala imephu engu-3D yendawo yakho ekuzungezile</translation>
 <translation id="8625237574518804553">{0,plural, =1{I-Chrome izoqalisa kabusha kuminithi elingu-1}one{I-Chrome izoqalisa kabusha kumaminithi angu-#}other{I-Chrome izoqalisa kabusha kumaminithi angu-#}}</translation>
-<translation id="8629311577791198377">Uma uvala wonke amawindi e-Chrome, amakhukhi nedatha yesayithi iyasulwa ngokuzenzakalelayo</translation>
 <translation id="8641606876632989680">I-Chrome izokwazisa uma ungena ngemvume ngephasiwedi eyonakalisiwe</translation>
 <translation id="8649026945479135076">Kujwayelekile ukuthi amasayithi owavakashelayo akhumbule izinto onentshisekelo kuzo, enze ukuzizwela kube ngokwezifiso. Amasayithi angagcina nolwazi nge-Chrome mayelana nezintshisekelo zakho.</translation>
 <translation id="8669527147644353129">Isisizi se-Google Chrome</translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index 6a3ef0e..cd27e2d 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -1932,6 +1932,21 @@
   <message name="IDS_SETTINGS_FLEDGE_PAGE_TOGGLE_SUB_LABEL" translateable="false" desc="Subabel for the toggle in the Fledge preferences page.">
     Donec pretium non elit vitae ornare. Morbi arcu elit, rutrum nec sapien quis, tristique tristique ante.
   </message>
+  <message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_HEADING" translateable="false" desc="Section title for the current sites list underneath toggle in the FLEDGE preferences page.">
+    Aliquam
+  </message>
+  <message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION" translateable="false" desc="Section description for the current sites list in the FLEDGE preferences page.">
+    Nullam sollicitudin elit vitae hendrerit suscipit. Nunc mi leo, placerat sit amet lorem non, semper convallis sapien.
+  </message>
+  <message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_LEARN_MORE" translateable="false" desc="Text for the clickable section of the description ('Learn more') for the current sites list in the FLEDGE preferences page.">
+    Learn More
+  </message>
+  <message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_DISABLED" translateable="false" desc="Section description for the current sites list when FLEDGE is disabled in the FLEDGE preferences page.">
+    Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos
+  </message>
+  <message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_EMPTY" translateable="false" desc="Section description for the current sites list when the sites list is empty in the FLEDGE preferences page.">
+    Morbi quis orci in mauris tempus rutrum. Curabitur blandit orci tortor, pellentesque tempor turpis lacinia ac.
+  </message>
 
   <!-- Privacy Sandbox Settings 4 - Ad Measurement Page -->
   <message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_TITLE" translateable="false" desc="Title for the Ad Measurement preferences page.">
diff --git a/chrome/browser/android/signin/signin_manager_android_unittest.cc b/chrome/browser/android/signin/signin_manager_android_unittest.cc
index 0dafa19..199443c 100644
--- a/chrome/browser/android/signin/signin_manager_android_unittest.cc
+++ b/chrome/browser/android/signin/signin_manager_android_unittest.cc
@@ -31,6 +31,7 @@
 #include "content/public/browser/storage_partition.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "url/origin.h"
 
 namespace {
@@ -141,7 +142,8 @@
       profile()->GetDefaultStoragePartition());
 
   for (const TestCase& test_case : kTestCases)
-    helper->Add(url::Origin::Create(GURL(test_case.worker_url)));
+    helper->Add(
+        blink::StorageKey(url::Origin::Create(GURL(test_case.worker_url))));
 
   ASSERT_EQ(std::size(kTestCases), helper->GetCount());
 
@@ -153,13 +155,16 @@
   run_loop.Run();
 
   // Test whether the correct service worker caches were deleted.
-  std::set<url::Origin> remaining_cache_storages = helper->GetOrigins();
+  std::set<blink::StorageKey> remaining_cache_storages =
+      helper->GetStorageKeys();
 
   // TODO(crbug.com/929456): If deleted, the key should not be present.
   for (const TestCase& test_case : kTestCases) {
-    EXPECT_EQ(test_case.should_be_deleted,
-              base::Contains(remaining_cache_storages,
-                             url::Origin::Create(GURL(test_case.worker_url))))
+    EXPECT_EQ(
+        test_case.should_be_deleted,
+        base::Contains(
+            remaining_cache_storages,
+            blink::StorageKey(url::Origin::Create(GURL(test_case.worker_url)))))
         << test_case.worker_url << " should "
         << (test_case.should_be_deleted ? "" : "NOT ")
         << "be deleted, but it was"
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn
index 17b6cc9b..77776efe 100644
--- a/chrome/browser/ash/BUILD.gn
+++ b/chrome/browser/ash/BUILD.gn
@@ -635,6 +635,8 @@
     "bluetooth/debug_logs_manager.h",
     "bluetooth/debug_logs_manager_factory.cc",
     "bluetooth/debug_logs_manager_factory.h",
+    "bluetooth/hats_bluetooth_revamp_trigger_impl.cc",
+    "bluetooth/hats_bluetooth_revamp_trigger_impl.h",
     "boot_times_recorder.cc",
     "boot_times_recorder.h",
     "borealis/borealis_app_launcher.cc",
diff --git a/chrome/browser/ash/accessibility/dictation_browsertest.cc b/chrome/browser/ash/accessibility/dictation_browsertest.cc
index e91ed0d..5a9c8326 100644
--- a/chrome/browser/ash/accessibility/dictation_browsertest.cc
+++ b/chrome/browser/ash/accessibility/dictation_browsertest.cc
@@ -532,8 +532,8 @@
   }
 
   void InstallMockInputContextHandler() {
-    input_context_handler_ = std::make_unique<ui::MockIMEInputContextHandler>();
-    ui::IMEBridge::Get()->SetInputContextHandler(input_context_handler_.get());
+    input_context_handler_ = std::make_unique<MockIMEInputContextHandler>();
+    IMEBridge::Get()->SetInputContextHandler(input_context_handler_.get());
   }
 
   // Retrieves the number of times commit text is updated.
@@ -595,7 +595,7 @@
  private:
   SpeechRecognitionTestHelper test_helper_;
   base::test::ScopedFeatureList scoped_feature_list_;
-  std::unique_ptr<ui::MockIMEInputContextHandler> input_context_handler_;
+  std::unique_ptr<MockIMEInputContextHandler> input_context_handler_;
   std::unique_ptr<ui::test::EventGenerator> generator_;
   std::unique_ptr<ExtensionConsoleErrorObserver> console_observer_;
 };
diff --git a/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service.cc b/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service.cc
index 9f25677..1d7c4c90 100644
--- a/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service.cc
+++ b/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service.cc
@@ -229,16 +229,17 @@
   }
   void OnFocus(const std::string& engine_id,
                int context_id,
-               const ui::TextInputMethod::InputContext& context) override {
+               const ash::TextInputMethod::InputContext& context) override {
     owner_->Focus(context_id);
   }
   void OnTouch(ui::EventPointerType pointerType) override {}
   void OnBlur(const std::string& engine_id, int context_id) override {
     owner_->Blur();
   }
-  void OnKeyEvent(const std::string& engine_id,
-                  const ui::KeyEvent& event,
-                  ui::TextInputMethod::KeyEventDoneCallback key_data) override {
+  void OnKeyEvent(
+      const std::string& engine_id,
+      const ui::KeyEvent& event,
+      ash::TextInputMethod::KeyEventDoneCallback key_data) override {
     if (event.key_code() == ui::VKEY_BROWSER_BACK &&
         event.type() == ui::ET_KEY_PRESSED &&
         owner_->IsVirtualKeyboardShown()) {
@@ -401,8 +402,8 @@
             base::Unretained(this)));
   }
 
-  DCHECK(ui::IMEBridge::Get());
-  ui::IMEBridge::Get()->AddObserver(this);
+  DCHECK(ash::IMEBridge::Get());
+  ash::IMEBridge::Get()->AddObserver(this);
 }
 
 ArcInputMethodManagerService::~ArcInputMethodManagerService() = default;
@@ -437,8 +438,9 @@
     input_method_ = nullptr;
   }
 
-  if (ui::IMEBridge::Get())
-    ui::IMEBridge::Get()->RemoveObserver(this);
+  if (ash::IMEBridge::Get()) {
+    ash::IMEBridge::Get()->RemoveObserver(this);
+  }
 
   if (ash::TabletMode::Get())
     ash::TabletMode::Get()->RemoveObserver(tablet_mode_observer_.get());
@@ -564,7 +566,7 @@
 }
 
 void ArcInputMethodManagerService::OnInputContextHandlerChanged() {
-  if (ui::IMEBridge::Get()->GetInputContextHandler() == nullptr) {
+  if (ash::IMEBridge::Get()->GetInputContextHandler() == nullptr) {
     if (input_method_)
       input_method_->RemoveObserver(input_method_observer_.get());
     input_method_ = nullptr;
@@ -574,7 +576,7 @@
   if (input_method_)
     input_method_->RemoveObserver(input_method_observer_.get());
   input_method_ =
-      ui::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
+      ash::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
   if (input_method_)
     input_method_->AddObserver(input_method_observer_.get());
 }
diff --git a/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service.h b/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service.h
index ea5a82d..52eb6e9 100644
--- a/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service.h
+++ b/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service.h
@@ -36,7 +36,7 @@
       public ArcInputMethodManagerBridge::Delegate,
       public ash::input_method::InputMethodManager::ImeMenuObserver,
       public ash::input_method::InputMethodManager::Observer,
-      public ui::IMEBridgeObserver {
+      public ash::IMEBridgeObserver {
  public:
   class Observer : public base::CheckedObserver {
    public:
@@ -101,7 +101,7 @@
                           Profile* profile,
                           bool show_message) override;
 
-  // ui::IMEBridgeObserver overrides:
+  // ash::IMEBridgeObserver overrides:
   void OnInputContextHandlerChanged() override;
 
   // Called when a11y keyboard option changed and disables ARC IME while a11y
diff --git a/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service_unittest.cc b/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
index dad98959..6ff8a2b 100644
--- a/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
+++ b/chrome/browser/ash/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
@@ -150,7 +150,7 @@
 
     void AddInputMethodExtension(const std::string& extension_id,
                                  const im::InputMethodDescriptors& descriptors,
-                                 ui::TextInputMethod* instance) override {
+                                 ash::TextInputMethod* instance) override {
       added_input_method_extensions_.push_back(
           std::make_tuple(extension_id, descriptors, instance));
     }
@@ -196,7 +196,7 @@
 
     std::vector<std::tuple<std::string,
                            im::InputMethodDescriptors,
-                           ui::TextInputMethod*>>
+                           ash::TextInputMethod*>>
         added_input_method_extensions_;
     std::vector<std::string> removed_input_method_extensions_;
     std::vector<std::string> enabled_input_methods_;
@@ -229,7 +229,7 @@
   scoped_refptr<TestState> state_;
 };
 
-class TestIMEInputContextHandler : public ui::MockIMEInputContextHandler {
+class TestIMEInputContextHandler : public ash::MockIMEInputContextHandler {
  public:
   explicit TestIMEInputContextHandler(ui::InputMethod* input_method)
       : input_method_(input_method) {}
@@ -574,7 +574,7 @@
                                             settings_url2, true, false);
 
   std::vector<std::tuple<std::string, im::InputMethodDescriptors,
-                         ui::TextInputMethod*>>& added_extensions =
+                         ash::TextInputMethod*>>& added_extensions =
       imm()->state()->added_input_method_extensions_;
   ASSERT_EQ(0u, added_extensions.size());
 
@@ -937,19 +937,19 @@
   }
   // The proxy IME engine should be added.
   ASSERT_EQ(1u, imm()->state()->added_input_method_extensions_.size());
-  ui::TextInputMethod* engine_handler =
+  ash::TextInputMethod* engine_handler =
       std::get<2>(imm()->state()->added_input_method_extensions_.at(0));
 
   // Set up mock input context.
-  const ui::TextInputMethod::InputContext test_context(
+  const ash::TextInputMethod::InputContext test_context(
       ui::TEXT_INPUT_TYPE_TEXT);
   ui::MockInputMethod mock_input_method(nullptr);
   TestIMEInputContextHandler test_context_handler(&mock_input_method);
   ui::DummyTextInputClient dummy_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
-  ui::IMEBridge::Get()->SetInputContextHandler(&test_context_handler);
+  ash::IMEBridge::Get()->SetInputContextHandler(&test_context_handler);
 
   // Enable the ARC IME.
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(engine_handler);
+  ash::IMEBridge::Get()->SetCurrentEngineHandler(engine_handler);
   engine_handler->Enable(ash::extension_ime_util::GetComponentIDByInputMethodID(
       std::get<1>(imm()->state()->added_input_method_extensions_.at(0))
           .at(0)
@@ -1032,19 +1032,19 @@
   }
   // The proxy IME engine should be added.
   ASSERT_EQ(1u, imm()->state()->added_input_method_extensions_.size());
-  ui::TextInputMethod* engine_handler =
+  ash::TextInputMethod* engine_handler =
       std::get<2>(imm()->state()->added_input_method_extensions_.at(0));
 
   // Set up mock input context.
-  const ui::TextInputMethod::InputContext test_context(
+  const ash::TextInputMethod::InputContext test_context(
       ui::TEXT_INPUT_TYPE_TEXT);
   ui::MockInputMethod mock_input_method(nullptr);
   TestIMEInputContextHandler test_context_handler(&mock_input_method);
   ui::DummyTextInputClient dummy_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
-  ui::IMEBridge::Get()->SetInputContextHandler(&test_context_handler);
+  ash::IMEBridge::Get()->SetInputContextHandler(&test_context_handler);
 
   // Enable the ARC IME.
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(engine_handler);
+  ash::IMEBridge::Get()->SetCurrentEngineHandler(engine_handler);
   engine_handler->Enable(ash::extension_ime_util::GetComponentIDByInputMethodID(
       std::get<1>(imm()->state()->added_input_method_extensions_.at(0))
           .at(0)
@@ -1055,8 +1055,8 @@
   EXPECT_EQ(0, bridge()->show_virtual_keyboard_calls_count_);
   mock_input_method.SetVirtualKeyboardVisibilityIfEnabled(true);
   EXPECT_EQ(1, bridge()->show_virtual_keyboard_calls_count_);
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
+  ash::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  ash::IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
 }
 
 TEST_F(ArcInputMethodManagerServiceTest, VisibilityObserver) {
@@ -1096,19 +1096,19 @@
   }
   // The proxy IME engine should be added.
   ASSERT_EQ(1u, imm()->state()->added_input_method_extensions_.size());
-  ui::TextInputMethod* engine_handler =
+  ash::TextInputMethod* engine_handler =
       std::get<2>(imm()->state()->added_input_method_extensions_.at(0));
 
   // Set up mock input context.
-  const ui::TextInputMethod::InputContext test_context(
+  const ash::TextInputMethod::InputContext test_context(
       ui::TEXT_INPUT_TYPE_TEXT);
   ui::MockInputMethod mock_input_method(nullptr);
   TestIMEInputContextHandler test_context_handler(&mock_input_method);
   ui::DummyTextInputClient dummy_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
-  ui::IMEBridge::Get()->SetInputContextHandler(&test_context_handler);
+  ash::IMEBridge::Get()->SetInputContextHandler(&test_context_handler);
 
   // Enable the ARC IME.
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(engine_handler);
+  ash::IMEBridge::Get()->SetCurrentEngineHandler(engine_handler);
   engine_handler->Enable(ash::extension_ime_util::GetComponentIDByInputMethodID(
       std::get<1>(imm()->state()->added_input_method_extensions_.at(0))
           .at(0)
diff --git a/chrome/browser/ash/arc/input_method_manager/input_connection_impl.cc b/chrome/browser/ash/arc/input_method_manager/input_connection_impl.cc
index b2e4c0b..3c31bb8 100644
--- a/chrome/browser/ash/arc/input_method_manager/input_connection_impl.cc
+++ b/chrome/browser/ash/arc/input_method_manager/input_connection_impl.cc
@@ -48,9 +48,9 @@
 }
 
 ui::TextInputClient* GetTextInputClient() {
-  ui::IMEBridge* bridge = ui::IMEBridge::Get();
+  ash::IMEBridge* bridge = ash::IMEBridge::Get();
   DCHECK(bridge);
-  ui::TextInputTarget* handler = bridge->GetInputContextHandler();
+  ash::TextInputTarget* handler = bridge->GetInputContextHandler();
   if (!handler)
     return nullptr;
   ui::TextInputClient* client = handler->GetInputMethod()->GetTextInputClient();
diff --git a/chrome/browser/ash/arc/input_method_manager/input_connection_impl_unittest.cc b/chrome/browser/ash/arc/input_method_manager/input_connection_impl_unittest.cc
index 61c70c3c..725dcc0 100644
--- a/chrome/browser/ash/arc/input_method_manager/input_connection_impl_unittest.cc
+++ b/chrome/browser/ash/arc/input_method_manager/input_connection_impl_unittest.cc
@@ -36,13 +36,13 @@
   void OnActivate(const std::string& engine_id) override {}
   void OnFocus(const std::string& engine_id,
                int context_id,
-               const ui::TextInputMethod::InputContext& context) override {}
+               const ash::TextInputMethod::InputContext& context) override {}
   void OnTouch(ui::EventPointerType pointerType) override {}
   void OnBlur(const std::string& engine_id, int context_id) override {}
-  void OnKeyEvent(const std::string& engine_id,
-                  const ui::KeyEvent& event,
-                  ui::TextInputMethod::KeyEventDoneCallback key_data) override {
-  }
+  void OnKeyEvent(
+      const std::string& engine_id,
+      const ui::KeyEvent& event,
+      ash::TextInputMethod::KeyEventDoneCallback key_data) override {}
   void OnReset(const std::string& engine_id) override {}
   void OnDeactivated(const std::string& engine_id) override {}
   void OnCompositionBoundsChanged(
@@ -85,7 +85,7 @@
   scoped_refptr<State> state_;
 };
 
-class TestIMEInputContextHandler : public ui::MockIMEInputContextHandler {
+class TestIMEInputContextHandler : public ash::MockIMEInputContextHandler {
  public:
   explicit TestIMEInputContextHandler(ui::InputMethod* input_method)
       : input_method_(input_method) {}
@@ -99,7 +99,7 @@
   ui::InputMethod* GetInputMethod() override { return input_method_; }
 
   void SendKeyEvent(ui::KeyEvent* event) override {
-    ui::MockIMEInputContextHandler::SendKeyEvent(event);
+    ash::MockIMEInputContextHandler::SendKeyEvent(event);
     ++send_key_event_call_count_;
   }
 
@@ -107,14 +107,14 @@
       uint32_t before,
       uint32_t after,
       const std::vector<ui::ImeTextSpan>& text_spans) override {
-    ui::MockIMEInputContextHandler::SetCompositionRange(before, after,
-                                                        text_spans);
+    ash::MockIMEInputContextHandler::SetCompositionRange(before, after,
+                                                         text_spans);
     composition_range_history_.push_back(std::make_tuple(before, after));
     return true;
   }
 
   void Reset() {
-    ui::MockIMEInputContextHandler::Reset();
+    ash::MockIMEInputContextHandler::Reset();
     send_key_event_call_count_ = 0;
     composition_range_history_.clear();
   }
@@ -188,8 +188,8 @@
 
   MockTextInputClient* client() { return &text_input_client_; }
 
-  ui::TextInputMethod::InputContext context() {
-    return ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT);
+  ash::TextInputMethod::InputContext context() {
+    return ash::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT);
   }
 
   void SetUp() override {
@@ -203,14 +203,14 @@
         ChromeKeyboardControllerClientTestHelper::InitializeWithFake();
 
     // Enable InputMethodEngine.
-    ui::IMEBridge::Get()->SetInputContextHandler(&context_handler_);
+    ash::IMEBridge::Get()->SetInputContextHandler(&context_handler_);
     input_method_.SetFocusedTextInputClient(&text_input_client_);
     engine()->Enable("test_component_id");
   }
 
   void TearDown() override {
     chrome_keyboard_controller_client_test_helper_.reset();
-    ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+    ash::IMEBridge::Get()->SetInputContextHandler(nullptr);
     engine_.reset();
     bridge_.reset();
     ash::input_method::InputMethodManager::Shutdown();
@@ -410,7 +410,7 @@
 
 TEST_F(InputConnectionImplTest, InputContextHandlerIsNull) {
   auto connection = CreateNewConnection(1);
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  ash::IMEBridge::Get()->SetInputContextHandler(nullptr);
 
   connection->CommitText(u"text", 1);
   connection->DeleteSurroundingText(1, 1);
diff --git a/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.cc b/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.cc
new file mode 100644
index 0000000..38d29a42
--- /dev/null
+++ b/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.cc
@@ -0,0 +1,84 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.h"
+
+#include "ash/session/session_controller_impl.h"
+#include "ash/shell.h"
+#include "chrome/browser/ash/hats/hats_config.h"
+#include "chrome/browser/ash/hats/hats_notification_controller.h"
+#include "chrome/browser/ash/profiles/profile_helper.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "components/device_event_log/device_event_log.h"
+#include "components/session_manager/core/session_manager.h"
+
+namespace ash {
+
+namespace {
+// Timeout used to wait before displaying survey.
+constexpr const base::TimeDelta kHatsSurveyTimeout = base::Minutes(5);
+}  // namespace
+
+HatsBluetoothRevampTriggerImpl::HatsBluetoothRevampTriggerImpl() = default;
+
+HatsBluetoothRevampTriggerImpl::~HatsBluetoothRevampTriggerImpl() = default;
+
+void HatsBluetoothRevampTriggerImpl::TryToShowSurvey() {
+  Profile* profile = GetActiveUserProfile();
+  if (!profile) {
+    HID_LOG(DEBUG) << "HaTS survey not shown. No available profile";
+    return;
+  }
+
+  if (session_manager::SessionManager::Get()->session_state() !=
+      session_manager::SessionState::ACTIVE) {
+    HID_LOG(DEBUG) << "HaTS survey not shown, current sesssion is not active";
+    return;
+  }
+
+  // The survey has already been shown and should not be shown again.
+  if (hats_notification_controller_) {
+    HID_LOG(DEBUG) << "HaTS survey has already been shown.";
+    return;
+  }
+
+  // Checks prefs to make sure a survey hasn't already been shown to the user
+  // this survey cycle, and rolls a die to determine if the survey should be
+  // shown.
+  if (!HatsNotificationController::ShouldShowSurveyToProfile(
+          profile, kHatsBluetoothRevampSurvey)) {
+    HID_LOG(DEBUG) << "HaTS survey not shown, current profile not selected.";
+    return;
+  }
+
+  if (hats_timer_.IsRunning()) {
+    HID_LOG(DEBUG) << "HaTS survey not shown, timer is already running.";
+    return;
+  }
+
+  HID_LOG(EVENT) << "HaTS survey timer started.";
+
+  // Wait for `kHatsSurveyTimeout` before showing survey.
+  hats_timer_.Start(FROM_HERE, kHatsSurveyTimeout,
+                    base::BindOnce(&HatsBluetoothRevampTriggerImpl::ShowSurvey,
+                                   weak_ptr_factory_.GetWeakPtr()));
+}
+
+void HatsBluetoothRevampTriggerImpl::ShowSurvey() {
+  HID_LOG(EVENT) << "HaTS survey is being shown.";
+  hats_notification_controller_ =
+      base::MakeRefCounted<ash::HatsNotificationController>(
+          GetActiveUserProfile(), kHatsBluetoothRevampSurvey);
+}
+
+Profile* HatsBluetoothRevampTriggerImpl::GetActiveUserProfile() {
+  if (did_set_profile_for_testing_) {
+    return profile_for_testing_;
+  }
+
+  return ProfileManager::GetActiveUserProfile();
+}
+
+}  // namespace ash
diff --git a/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.h b/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.h
new file mode 100644
index 0000000..8cc609f1
--- /dev/null
+++ b/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.h
@@ -0,0 +1,51 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ASH_BLUETOOTH_HATS_BLUETOOTH_REVAMP_TRIGGER_IMPL_H_
+#define CHROME_BROWSER_ASH_BLUETOOTH_HATS_BLUETOOTH_REVAMP_TRIGGER_IMPL_H_
+
+#include "ash/public/cpp/hats_bluetooth_revamp_trigger.h"
+#include "base/memory/weak_ptr.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "chrome/browser/ash/hats/hats_notification_controller.h"
+
+class Profile;
+
+namespace ash {
+
+// Implementation for HatsBluetoothRevampTrigger.
+class HatsBluetoothRevampTriggerImpl : public HatsBluetoothRevampTrigger {
+ public:
+  HatsBluetoothRevampTriggerImpl();
+  HatsBluetoothRevampTriggerImpl(const HatsBluetoothRevampTriggerImpl&) =
+      delete;
+  HatsBluetoothRevampTriggerImpl& operator=(
+      const HatsBluetoothRevampTriggerImpl&) = delete;
+  ~HatsBluetoothRevampTriggerImpl() override;
+
+  // HatsBluetoothRevampTrigger:
+  void TryToShowSurvey() override;
+
+  void set_profile_for_testing(Profile* profile) {
+    profile_for_testing_ = profile;
+    did_set_profile_for_testing_ = true;
+  }
+
+  base::OneShotTimer* timer_for_testing() { return &hats_timer_; }
+
+ private:
+  void ShowSurvey();
+  Profile* GetActiveUserProfile();
+
+  base::OneShotTimer hats_timer_;
+  Profile* profile_for_testing_ = nullptr;
+  bool did_set_profile_for_testing_ = false;
+  scoped_refptr<ash::HatsNotificationController> hats_notification_controller_;
+  base::WeakPtrFactory<HatsBluetoothRevampTriggerImpl> weak_ptr_factory_{this};
+};
+
+}  // namespace ash
+
+#endif  // CHROME_BROWSER_ASH_BLUETOOTH_HATS_BLUETOOTH_REVAMP_TRIGGER_IMPL_H_
diff --git a/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl_browsertest.cc b/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl_browsertest.cc
new file mode 100644
index 0000000..b5c54db
--- /dev/null
+++ b/chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl_browsertest.cc
@@ -0,0 +1,182 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <memory>
+
+#include "chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.h"
+
+#include "ash/constants/ash_features.h"
+#include "ash/constants/ash_switches.h"
+#include "ash/public/cpp/hats_bluetooth_revamp_trigger.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/test/task_environment.h"
+#include "base/test/test_mock_time_task_runner.h"
+#include "base/time/time.h"
+#include "chrome/browser/ash/hats/hats_config.h"
+#include "chrome/browser/notifications/notification_display_service_tester.h"
+#include "chrome/browser/notifications/notification_handler.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/common/chrome_features.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/testing_browser_process.h"
+#include "chromeos/ash/components/network/network_handler_test_helper.h"
+#include "chromeos/ash/components/network/network_state.h"
+#include "components/session_manager/core/session_manager.h"
+#include "components/session_manager/session_manager_types.h"
+#include "content/public/test/browser_task_environment.h"
+#include "content/public/test/browser_test.h"
+
+namespace ash {
+
+namespace {
+constexpr char kNotificationId[] = "hats_notification";
+const base::TimeDelta kExpectedTimeDelay = base::Minutes(5);
+}  // namespace
+
+class HatsBluetoothRevampTriggerTest : public InProcessBrowserTest {
+ public:
+  HatsBluetoothRevampTriggerTest() {
+    scoped_feature_list_.InitAndEnableFeature(
+        kHatsBluetoothRevampSurvey.feature);
+  }
+  ~HatsBluetoothRevampTriggerTest() override = default;
+
+  void SetUpOnMainThread() override {
+    InProcessBrowserTest::SetUpOnMainThread();
+
+    display_service_ = std::make_unique<NotificationDisplayServiceTester>(
+        browser()->profile());
+
+    session_manager()->SetSessionState(session_manager::SessionState::ACTIVE);
+    bluetooth_revamp_trigger_ = static_cast<HatsBluetoothRevampTriggerImpl*>(
+        ash::HatsBluetoothRevampTrigger::Get());
+  }
+
+  // InProcessBrowserTest:
+  void SetUpDefaultCommandLine(base::CommandLine* command_line) override {
+    InProcessBrowserTest::SetUpDefaultCommandLine(command_line);
+
+    command_line->AppendSwitchASCII(
+        ash::switches::kForceHappinessTrackingSystem,
+        ::features::kHappinessTrackingSystemBluetoothRevamp.name);
+  }
+
+  void TryToShowSurvey() { bluetooth_revamp_trigger_->TryToShowSurvey(); }
+
+  void SetProfileForTesting() {
+    bluetooth_revamp_trigger_->set_profile_for_testing(browser()->profile());
+  }
+
+  void SetNullProfileForTesting() {
+    bluetooth_revamp_trigger_->set_profile_for_testing(nullptr);
+  }
+
+  void WaitForHatsNotification() {
+    base::RunLoop loop;
+    display_service()->SetNotificationAddedClosure(loop.QuitClosure());
+    EXPECT_TRUE(timer()->IsRunning());
+    EXPECT_EQ(timer()->GetCurrentDelay(), kExpectedTimeDelay);
+    timer()->FireNow();
+    loop.Run();
+  }
+
+  NotificationDisplayServiceTester* display_service() const {
+    return display_service_.get();
+  }
+
+  base::OneShotTimer* timer() {
+    return bluetooth_revamp_trigger_->timer_for_testing();
+  }
+
+  session_manager::SessionManager* session_manager() const {
+    return session_manager::SessionManager::Get();
+  }
+
+ private:
+  scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
+  std::unique_ptr<NotificationDisplayServiceTester> display_service_;
+  HatsBluetoothRevampTriggerImpl* bluetooth_revamp_trigger_;
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+IN_PROC_BROWSER_TEST_F(HatsBluetoothRevampTriggerTest, ShouldShowSurveyTrue) {
+  EXPECT_FALSE(display_service()->GetNotification(kNotificationId));
+  TryToShowSurvey();
+  WaitForHatsNotification();
+
+  // Ensure notification was launched to confirm initialization.
+  EXPECT_TRUE(display_service()->GetNotification(kNotificationId));
+
+  // Simulate dismissing notification by the user to clean up the
+  // notification.
+  display_service()->RemoveNotification(NotificationHandler::Type::TRANSIENT,
+                                        kNotificationId, /*by_user=*/true);
+}
+
+IN_PROC_BROWSER_TEST_F(HatsBluetoothRevampTriggerTest,
+                       ShowSurveyNotCalledIfSessionLocked) {
+  session_manager()->SetSessionState(session_manager::SessionState::LOCKED);
+  EXPECT_FALSE(display_service()->GetNotification(kNotificationId));
+
+  TryToShowSurvey();
+
+  EXPECT_FALSE(timer()->IsRunning());
+  EXPECT_NE(timer()->GetCurrentDelay(), kExpectedTimeDelay);
+  EXPECT_FALSE(display_service()->GetNotification(kNotificationId));
+}
+
+IN_PROC_BROWSER_TEST_F(HatsBluetoothRevampTriggerTest,
+                       ShowSurveyNotCalledIfTimerRunning) {
+  TryToShowSurvey();
+
+  base::RunLoop loop;
+  display_service()->SetNotificationAddedClosure(loop.QuitClosure());
+
+  EXPECT_FALSE(display_service()->GetNotification(kNotificationId));
+
+  EXPECT_TRUE(timer()->IsRunning());
+  EXPECT_EQ(timer()->GetCurrentDelay(), kExpectedTimeDelay);
+
+  TryToShowSurvey();
+  EXPECT_TRUE(timer()->IsRunning());
+  EXPECT_EQ(timer()->GetCurrentDelay(), kExpectedTimeDelay);
+  EXPECT_FALSE(display_service()->GetNotification(kNotificationId));
+
+  timer()->FireNow();
+  loop.Run();
+  EXPECT_TRUE(display_service()->GetNotification(kNotificationId));
+
+  EXPECT_FALSE(timer()->IsRunning());
+
+  // Simulate dismissing notification by the user to clean up the
+  // notification.
+  display_service()->RemoveNotification(NotificationHandler::Type::TRANSIENT,
+                                        kNotificationId, /*by_user=*/true);
+}
+
+IN_PROC_BROWSER_TEST_F(HatsBluetoothRevampTriggerTest,
+                       ShowSurveyNotCalledWithNoActiveProfile) {
+  EXPECT_FALSE(display_service()->GetNotification(kNotificationId));
+
+  SetNullProfileForTesting();
+  TryToShowSurvey();
+  EXPECT_FALSE(timer()->IsRunning());
+  EXPECT_NE(timer()->GetCurrentDelay(), kExpectedTimeDelay);
+  EXPECT_FALSE(display_service()->GetNotification(kNotificationId));
+
+  SetProfileForTesting();
+  TryToShowSurvey();
+  WaitForHatsNotification();
+
+  // Ensure notification was launched to confirm initialization.
+  EXPECT_TRUE(display_service()->GetNotification(kNotificationId));
+
+  // Simulate dismissing notification by the user to clean up the
+  // notification.
+  display_service()->RemoveNotification(NotificationHandler::Type::TRANSIENT,
+                                        kNotificationId, /*by_user=*/true);
+}
+
+}  // namespace ash
diff --git a/chrome/browser/ash/chrome_browser_main_parts_ash.cc b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
index 72b63f20..0615827 100644
--- a/chrome/browser/ash/chrome_browser_main_parts_ash.cc
+++ b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
@@ -53,6 +53,7 @@
 #include "chrome/browser/ash/arc/enterprise/arc_data_snapshotd_delegate.h"
 #include "chrome/browser/ash/arc/session/arc_service_launcher.h"
 #include "chrome/browser/ash/audio/audio_survey_handler.h"
+#include "chrome/browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl.h"
 #include "chrome/browser/ash/boot_times_recorder.h"
 #include "chrome/browser/ash/camera/camera_general_survey_handler.h"
 #include "chrome/browser/ash/crosapi/browser_data_back_migrator.h"
@@ -1172,6 +1173,12 @@
     bluetooth_pref_state_observer_ =
         std::make_unique<BluetoothPrefStateObserver>();
 
+    if (base::FeatureList::IsEnabled(
+            ::features::kHappinessTrackingSystemBluetoothRevamp)) {
+      hats_bluetooth_revamp_trigger_ =
+          std::make_unique<ash::HatsBluetoothRevampTriggerImpl>();
+    }
+
     // Initialize the NetworkHealth aggregator.
     network_health::NetworkHealthManager::GetInstance();
 
diff --git a/chrome/browser/ash/chrome_browser_main_parts_ash.h b/chrome/browser/ash/chrome_browser_main_parts_ash.h
index 0df6c33..71dd5e8 100644
--- a/chrome/browser/ash/chrome_browser_main_parts_ash.h
+++ b/chrome/browser/ash/chrome_browser_main_parts_ash.h
@@ -75,6 +75,7 @@
 class FastTransitionObserver;
 class FwupdDownloadClientImpl;
 class GnubbyNotification;
+class HatsBluetoothRevampTriggerImpl;
 class IdleActionWarningObserver;
 class LoginScreenExtensionsStorageCleaner;
 class LowDiskNotification;
@@ -183,6 +184,8 @@
   std::unique_ptr<NetworkThrottlingObserver> network_throttling_observer_;
   std::unique_ptr<NetworkChangeManagerClient> network_change_manager_client_;
   std::unique_ptr<DebugdNotificationHandler> debugd_notification_handler_;
+  std::unique_ptr<HatsBluetoothRevampTriggerImpl>
+      hats_bluetooth_revamp_trigger_;
 
   std::unique_ptr<internal::DBusServices> dbus_services_;
 
diff --git a/chrome/browser/ash/crosapi/input_method_test_interface_ash.cc b/chrome/browser/ash/crosapi/input_method_test_interface_ash.cc
index 144ba311..cf623cc 100644
--- a/chrome/browser/ash/crosapi/input_method_test_interface_ash.cc
+++ b/chrome/browser/ash/crosapi/input_method_test_interface_ash.cc
@@ -13,17 +13,17 @@
 namespace crosapi {
 namespace {
 
-ui::InputMethodAsh* GetInputMethod() {
-  const ui::IMEBridge* bridge = ui::IMEBridge::Get();
+ash::InputMethodAsh* GetInputMethod() {
+  const ash::IMEBridge* bridge = ash::IMEBridge::Get();
   if (!bridge)
     return nullptr;
 
-  ui::TextInputTarget* handler = bridge->GetInputContextHandler();
+  ash::TextInputTarget* handler = bridge->GetInputContextHandler();
   if (!handler)
     return nullptr;
 
-  // Guaranteed to be an ui::InputMethodAsh*.
-  return static_cast<ui::InputMethodAsh*>(handler->GetInputMethod());
+  // Guaranteed to be an ash::InputMethodAsh*.
+  return static_cast<ash::InputMethodAsh*>(handler->GetInputMethod());
 }
 
 }  // namespace
diff --git a/chrome/browser/ash/crosapi/input_method_test_interface_ash.h b/chrome/browser/ash/crosapi/input_method_test_interface_ash.h
index 7a83ff41..76df2f0 100644
--- a/chrome/browser/ash/crosapi/input_method_test_interface_ash.h
+++ b/chrome/browser/ash/crosapi/input_method_test_interface_ash.h
@@ -40,7 +40,7 @@
   void OnInputMethodDestroyed(const ui::InputMethod* input_method) override {}
 
  private:
-  ui::InputMethodAsh* input_method_;
+  ash::InputMethodAsh* input_method_;
   base::ScopedObservation<ui::InputMethod, ui::InputMethodObserver>
       input_method_observation_{this};
   base::OnceClosureList focus_callbacks_;
diff --git a/chrome/browser/ash/extensions/autotest_private/autotest_private_api.cc b/chrome/browser/ash/extensions/autotest_private/autotest_private_api.cc
index 7535bda..d3601a1b 100644
--- a/chrome/browser/ash/extensions/autotest_private/autotest_private_api.cc
+++ b/chrome/browser/ash/extensions/autotest_private/autotest_private_api.cc
@@ -4217,13 +4217,13 @@
 
 ExtensionFunction::ResponseAction
 AutotestPrivateShowVirtualKeyboardIfEnabledFunction::Run() {
-  if (!ui::IMEBridge::Get() ||
-      !ui::IMEBridge::Get()->GetInputContextHandler() ||
-      !ui::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod()) {
+  if (!ash::IMEBridge::Get() ||
+      !ash::IMEBridge::Get()->GetInputContextHandler() ||
+      !ash::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod()) {
     return RespondNow(NoArguments());
   }
 
-  ui::IMEBridge::Get()
+  ash::IMEBridge::Get()
       ->GetInputContextHandler()
       ->GetInputMethod()
       ->SetVirtualKeyboardVisibilityIfEnabled(true);
@@ -6233,7 +6233,8 @@
 
 ExtensionFunction::ResponseAction
 AutotestPrivateIsInputMethodReadyForTestingFunction::Run() {
-  ui::TextInputMethod* engine = ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  ash::TextInputMethod* engine =
+      ash::IMEBridge::Get()->GetCurrentEngineHandler();
   return RespondNow(
       WithArguments(engine && engine->IsReadyForTesting()));  // IN-TEST
 }
diff --git a/chrome/browser/ash/extensions/ime_menu_event_router.cc b/chrome/browser/ash/extensions/ime_menu_event_router.cc
index 0e1a34b3..dbf017c 100644
--- a/chrome/browser/ash/extensions/ime_menu_event_router.cc
+++ b/chrome/browser/ash/extensions/ime_menu_event_router.cc
@@ -13,6 +13,9 @@
 #include "content/public/browser/browser_context.h"
 #include "extensions/browser/event_router.h"
 
+namespace chromeos {
+
+namespace input_method = ::ash::input_method;
 namespace input_method_private = extensions::api::input_method_private;
 namespace OnImeMenuActivationChanged =
     extensions::api::input_method_private::OnImeMenuActivationChanged;
@@ -21,8 +24,6 @@
 namespace OnImeMenuItemsChanged =
     extensions::api::input_method_private::OnImeMenuItemsChanged;
 
-namespace chromeos {
-
 ExtensionImeMenuEventRouter::ExtensionImeMenuEventRouter(
     content::BrowserContext* context)
     : context_(context) {
diff --git a/chrome/browser/ash/extensions/ime_menu_event_router.h b/chrome/browser/ash/extensions/ime_menu_event_router.h
index 9731a4fa..a20f5cc7 100644
--- a/chrome/browser/ash/extensions/ime_menu_event_router.h
+++ b/chrome/browser/ash/extensions/ime_menu_event_router.h
@@ -17,7 +17,7 @@
 // It's owned by InputMethodManager, and its lifetime restricted to the lifetime
 // of the InputMethodManager and the EventRouter.
 class ExtensionImeMenuEventRouter
-    : public input_method::InputMethodManager::ImeMenuObserver {
+    : public ash::input_method::InputMethodManager::ImeMenuObserver {
  public:
   explicit ExtensionImeMenuEventRouter(content::BrowserContext* context);
 
@@ -27,12 +27,12 @@
 
   ~ExtensionImeMenuEventRouter() override;
 
-  // input_method::InputMethodManager::ImeMenuObserver:
+  // ash::input_method::InputMethodManager::ImeMenuObserver:
   void ImeMenuActivationChanged(bool activation) override;
   void ImeMenuListChanged() override;
   void ImeMenuItemsChanged(
       const std::string& engine_id,
-      const std::vector<input_method::InputMethodManager::MenuItem>& items)
+      const std::vector<ash::input_method::InputMethodManager::MenuItem>& items)
       override;
 
  private:
diff --git a/chrome/browser/ash/extensions/input_method_api.cc b/chrome/browser/ash/extensions/input_method_api.cc
index f886267c..5f36e93 100644
--- a/chrome/browser/ash/extensions/input_method_api.cc
+++ b/chrome/browser/ash/extensions/input_method_api.cc
@@ -316,8 +316,8 @@
 
 ExtensionFunction::ResponseAction
 InputMethodPrivateGetSurroundingTextFunction::Run() {
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  ash::TextInputTarget* input_context =
+      ash::IMEBridge::Get()->GetInputContextHandler();
   if (!input_context)
     return RespondNow(Error(InformativeError(
         kErrorInputContextHandlerNotAvailable, static_function_name())));
@@ -334,7 +334,7 @@
   uint32_t param_before_length = (uint32_t)params->before_length;
   uint32_t param_after_length = (uint32_t)params->after_length;
 
-  ui::SurroundingTextInfo info = input_context->GetSurroundingTextInfo();
+  ash::SurroundingTextInfo info = input_context->GetSurroundingTextInfo();
   if (!info.selection_range.IsValid())
     return RespondNow(WithArguments(base::Value()));
 
diff --git a/chrome/browser/ash/extensions/input_method_apitest_chromeos.cc b/chrome/browser/ash/extensions/input_method_apitest_chromeos.cc
index 3f27cd2..0c31d95 100644
--- a/chrome/browser/ash/extensions/input_method_apitest_chromeos.cc
+++ b/chrome/browser/ash/extensions/input_method_apitest_chromeos.cc
@@ -156,8 +156,8 @@
       &extension_imes);
   InputMethodManager::Get()->GetActiveIMEState()->ChangeInputMethod(
       kTestIMEID, false /* show_message */);
-  ui::TextInputMethod* engine_handler =
-      ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  ash::TextInputMethod* engine_handler =
+      ash::IMEBridge::Get()->GetCurrentEngineHandler();
   ASSERT_TRUE(engine_handler);
 
   ASSERT_TRUE(activated_listener.WaitUntilSatisfied()) << message_;
diff --git a/chrome/browser/ash/extensions/input_method_event_router.cc b/chrome/browser/ash/extensions/input_method_event_router.cc
index 5a93079..3e101df 100644
--- a/chrome/browser/ash/extensions/input_method_event_router.cc
+++ b/chrome/browser/ash/extensions/input_method_event_router.cc
@@ -24,15 +24,15 @@
 ExtensionInputMethodEventRouter::ExtensionInputMethodEventRouter(
     content::BrowserContext* context)
     : context_(context) {
-  input_method::InputMethodManager::Get()->AddObserver(this);
+  ash::input_method::InputMethodManager::Get()->AddObserver(this);
 }
 
 ExtensionInputMethodEventRouter::~ExtensionInputMethodEventRouter() {
-  input_method::InputMethodManager::Get()->RemoveObserver(this);
+  ash::input_method::InputMethodManager::Get()->RemoveObserver(this);
 }
 
 void ExtensionInputMethodEventRouter::InputMethodChanged(
-    input_method::InputMethodManager* manager,
+    ash::input_method::InputMethodManager* manager,
     Profile* profile,
     bool show_message) {
   // If an event is recieved from a different profile, e.g. while switching
diff --git a/chrome/browser/ash/extensions/input_method_event_router.h b/chrome/browser/ash/extensions/input_method_event_router.h
index e287fb6..38fbf7e1 100644
--- a/chrome/browser/ash/extensions/input_method_event_router.h
+++ b/chrome/browser/ash/extensions/input_method_event_router.h
@@ -15,7 +15,7 @@
 
 // Event router class for the input method events.
 class ExtensionInputMethodEventRouter
-    : public input_method::InputMethodManager::Observer {
+    : public ash::input_method::InputMethodManager::Observer {
  public:
   explicit ExtensionInputMethodEventRouter(content::BrowserContext* context);
 
@@ -26,8 +26,8 @@
 
   ~ExtensionInputMethodEventRouter() override;
 
-  // Implements input_method::InputMethodManager::Observer:
-  void InputMethodChanged(input_method::InputMethodManager* manager,
+  // Implements ash::input_method::InputMethodManager::Observer:
+  void InputMethodChanged(ash::input_method::InputMethodManager* manager,
                           Profile* profile,
                           bool show_message) override;
 
diff --git a/chrome/browser/ash/hats/hats_config.cc b/chrome/browser/ash/hats/hats_config.cc
index ef6ab11..347fd370 100644
--- a/chrome/browser/ash/hats/hats_config.cc
+++ b/chrome/browser/ash/hats/hats_config.cc
@@ -169,4 +169,13 @@
     prefs::kHatsGeneralCameraSurveyCycleEndTs,  // cycle_end_timestamp_pref_name
 };
 
+// Bluetooth revamp experience survey -- shown 5 mins after interacting with new
+// Bluetooth UI surfaces.
+const HatsConfig kHatsBluetoothRevampSurvey = {
+    ::features::kHappinessTrackingSystemBluetoothRevamp,  // feature
+    base::Days(1),                          // new_device_threshold
+    prefs::kHatsBluetoothRevampIsSelected,  // is_selected_pref_name
+    prefs::kHatsBluetoothRevampCycleEndTs,  // cycle_end_timestamp_pref_name
+};
+
 }  // namespace ash
diff --git a/chrome/browser/ash/hats/hats_config.h b/chrome/browser/ash/hats/hats_config.h
index 098c8c3..f517d378 100644
--- a/chrome/browser/ash/hats/hats_config.h
+++ b/chrome/browser/ash/hats/hats_config.h
@@ -51,6 +51,7 @@
 extern const HatsConfig kHatsCameraAppSurvey;
 extern const HatsConfig kHatsPhotosExperienceSurvey;
 extern const HatsConfig kHatsGeneralCameraSurvey;
+extern const HatsConfig kHatsBluetoothRevampSurvey;
 
 }  // namespace ash
 
diff --git a/chrome/browser/ash/input_method/assistive_suggester.cc b/chrome/browser/ash/input_method/assistive_suggester.cc
index b8e3083..2805feaf 100644
--- a/chrome/browser/ash/input_method/assistive_suggester.cc
+++ b/chrome/browser/ash/input_method/assistive_suggester.cc
@@ -55,14 +55,13 @@
 void RecordAssistiveMatch(AssistiveType type) {
   base::UmaHistogramEnumeration("InputMethod.Assistive.Match", type);
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context)
     return;
 
   auto sourceId = input_context->GetClientSourceForMetrics();
   if (sourceId != ukm::kInvalidSourceId) {
-    ui::RecordUkmAssistiveMatch(sourceId, static_cast<int>(type));
+    RecordUkmAssistiveMatch(sourceId, static_cast<int>(type));
   }
 }
 
@@ -556,8 +555,7 @@
 }
 
 bool AssistiveSuggester::WithinGrammarFragment(int cursor_pos, int anchor_pos) {
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context)
     return false;
 
diff --git a/chrome/browser/ash/input_method/assistive_window_controller_unittest.cc b/chrome/browser/ash/input_method/assistive_window_controller_unittest.cc
index 3eba4a7..a4a9cea2 100644
--- a/chrome/browser/ash/input_method/assistive_window_controller_unittest.cc
+++ b/chrome/browser/ash/input_method/assistive_window_controller_unittest.cc
@@ -74,7 +74,7 @@
     accessibility_view_ = std::make_unique<TestAccessibilityView>();
     controller_ = std::make_unique<AssistiveWindowController>(
         delegate_.get(), profile_.get(), accessibility_view_.get());
-    ui::IMEBridge::Get()->SetAssistiveWindowHandler(controller_.get());
+    IMEBridge::Get()->SetAssistiveWindowHandler(controller_.get());
 
     // TODO(crbug/1102283): Create MockSuggestionWindowView to be independent of
     // SuggestionWindowView's implementation.
diff --git a/chrome/browser/ash/input_method/autocorrect_manager.cc b/chrome/browser/ash/input_method/autocorrect_manager.cc
index b9ce85f..69773d01 100644
--- a/chrome/browser/ash/input_method/autocorrect_manager.cc
+++ b/chrome/browser/ash/input_method/autocorrect_manager.cc
@@ -101,8 +101,7 @@
 void LogAutocorrectAppCompatibilityUkm(AutocorrectActions action,
                                        base::TimeDelta time_delta,
                                        bool virtual_keyboard_visible) {
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context) {
     return;
   }
@@ -390,8 +389,7 @@
 
   // TODO(crbug/1111135): call setAutocorrectTime() (for metrics)
   // TODO(crbug/1111135): record metric (coverage)
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context) {
     LogAssistiveAutocorrectInternalState(
         AutocorrectInternalStates::kHandleNoInputContext);
@@ -769,8 +767,7 @@
   }
 
   std::string error;
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
 
   // Null input context invalidates the range so consider the pending
   // range as implicitly rejected/cleared.
@@ -901,8 +898,7 @@
 }
 
 void AutocorrectManager::ProcessTextFieldChange() {
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
 
   // Clear autocorrect range if any.
   if (input_context) {
@@ -925,8 +921,7 @@
 
   HideUndoWindow();
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   const gfx::Range autocorrect_range = input_context->GetAutocorrectRange();
 
   if (input_context->HasCompositionText()) {
@@ -940,7 +935,7 @@
     // reflects reality, due to async-ness between IMF and TextInputClient.
     // TODO(crbug/1194424): Work around the issue or fix
     // GetSurroundingTextInfo().
-    const ui::SurroundingTextInfo surrounding_text =
+    const SurroundingTextInfo surrounding_text =
         input_context->GetSurroundingTextInfo();
 
     // Delete the autocorrected text.
@@ -1082,8 +1077,7 @@
     return;
   }
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
 
   LogAssistiveAutocorrectInternalState(
       AutocorrectInternalStates::kSuggestionResolved);
diff --git a/chrome/browser/ash/input_method/autocorrect_manager_unittest.cc b/chrome/browser/ash/input_method/autocorrect_manager_unittest.cc
index ad88e51a..ef8e3d1 100644
--- a/chrome/browser/ash/input_method/autocorrect_manager_unittest.cc
+++ b/chrome/browser/ash/input_method/autocorrect_manager_unittest.cc
@@ -455,8 +455,7 @@
         manager_(&mock_suggestion_handler_, profile_.get()) {
     // Disable ImeRulesConfigs by default.
     feature_list_.InitWithFeatures({}, DisabledFeatures());
-    ui::IMEBridge::Get()->SetInputContextHandler(
-        &mock_ime_input_context_handler_);
+    IMEBridge::Get()->SetInputContextHandler(&mock_ime_input_context_handler_);
     keyboard_client_ = ChromeKeyboardControllerClient::CreateForTest();
     keyboard_client_->set_keyboard_visible_for_test(false);
   }
@@ -464,7 +463,7 @@
   content::BrowserTaskEnvironment task_environment_{
       base::test::TaskEnvironment::TimeSource::MOCK_TIME};
   ::base::test::ScopedFeatureList feature_list_;
-  ui::MockIMEInputContextHandler mock_ime_input_context_handler_;
+  MockIMEInputContextHandler mock_ime_input_context_handler_;
   ::testing::StrictMock<MockSuggestionHandler> mock_suggestion_handler_;
   std::unique_ptr<Profile> profile_;
   std::unique_ptr<ChromeKeyboardControllerClient> keyboard_client_;
@@ -489,7 +488,7 @@
 
 TEST_F(AutocorrectManagerTest,
        HandleAutocorrectDoesNotSetRangeWhenInputContextIsNull) {
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
   manager_.HandleAutocorrect(gfx::Range(0, 3), u"cn", u"can");
   EXPECT_EQ(mock_ime_input_context_handler_.GetAutocorrectRange(),
             gfx::Range());
@@ -984,8 +983,8 @@
 
 TEST_F(AutocorrectManagerTest, UndoAutocorrectSingleWordInComposition) {
   ui::FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
-  ui::InputMethodAsh ime(nullptr);
-  ui::IMEBridge::Get()->SetInputContextHandler(&ime);
+  InputMethodAsh ime(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(&ime);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
   manager_.HandleAutocorrect(gfx::Range(0, 3), u"teh", u"the");
@@ -1003,8 +1002,8 @@
 
 TEST_F(AutocorrectManagerTest, UndoAutocorrectDoesNotApplyOnRangeNotValidated) {
   ui::FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
-  ui::InputMethodAsh ime(nullptr);
-  ui::IMEBridge::Get()->SetInputContextHandler(&ime);
+  InputMethodAsh ime(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(&ime);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
   // No OnSurroundingTextChanged is called to validate the suggestion.
@@ -1022,8 +1021,8 @@
 
 TEST_F(AutocorrectManagerTest, UndoAutocorrectMultipleWordInComposition) {
   ui::FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
-  ui::InputMethodAsh ime(nullptr);
-  ui::IMEBridge::Get()->SetInputContextHandler(&ime);
+  InputMethodAsh ime(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(&ime);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
   manager_.HandleAutocorrect(gfx::Range(0, 11), u"helloworld", u"hello world");
@@ -1223,7 +1222,7 @@
   manager_.HandleAutocorrect(gfx::Range(0, 3), u"teh", u"the");
 
   // Make Input context null.
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
   // Null input context invalidates the previous range even if rules are
   // triggered to accept the range.
   manager_.OnSurroundingTextChanged(u"the ", 4, 4);
@@ -1247,7 +1246,7 @@
   manager_.HandleAutocorrect(gfx::Range(0, 3), u"teh", u"the");
 
   // Make Input context null.
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
   // Null input context invalidates the previous range even if rules are
   // triggered to accept the range.
   manager_.OnSurroundingTextChanged(u"the ", 4, 4);
@@ -1443,7 +1442,7 @@
 TEST_F(AutocorrectManagerTest,
        OnBlurDoesNoRecordMetricsWhenInputContextIsNull) {
   // Make Input context null.
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
   manager_.OnBlur();
   ExpectAutocorrectHistograms(histogram_tester_, /*visible_vk=*/false,
                               /*window_shown=*/0, /*underlined=*/0,
@@ -1558,7 +1557,7 @@
   manager_.OnSurroundingTextChanged(u"the ", 4, 4);
 
   // Make Input context null.
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
   manager_.HandleAutocorrect(gfx::Range(0, 3), u"teh", u"the");
 
   // The pending range must be counted as invalid, but `underlined` metric must
@@ -3148,13 +3147,13 @@
                                    GURL("https://test.example.com/"));
 
     fake_text_input_client_.set_source_id(source_id);
-    ui::IMEBridge::Get()->SetInputContextHandler(&mock_input_method_ash_);
+    IMEBridge::Get()->SetInputContextHandler(&mock_input_method_ash_);
 
     mock_input_method_ash_.SetFocusedTextInputClient(&fake_text_input_client_);
   }
 
   ui::FakeTextInputClient fake_text_input_client_{ui::TEXT_INPUT_TYPE_TEXT};
-  ui::InputMethodAsh mock_input_method_ash_{nullptr};
+  InputMethodAsh mock_input_method_ash_{nullptr};
   ukm::TestAutoSetUkmRecorder test_recorder_;
 };
 
diff --git a/chrome/browser/ash/input_method/candidate_window_controller_impl.cc b/chrome/browser/ash/input_method/candidate_window_controller_impl.cc
index f634cfb..0bced9b 100644
--- a/chrome/browser/ash/input_method/candidate_window_controller_impl.cc
+++ b/chrome/browser/ash/input_method/candidate_window_controller_impl.cc
@@ -19,11 +19,11 @@
 namespace input_method {
 
 CandidateWindowControllerImpl::CandidateWindowControllerImpl() {
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(this);
+  IMEBridge::Get()->SetCandidateWindowHandler(this);
 }
 
 CandidateWindowControllerImpl::~CandidateWindowControllerImpl() {
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
+  IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
   if (candidate_window_view_) {
     candidate_window_view_->RemoveObserver(this);
     candidate_window_view_->GetWidget()->RemoveObserver(this);
diff --git a/chrome/browser/ash/input_method/grammar_manager.cc b/chrome/browser/ash/input_method/grammar_manager.cc
index 24faab3..29d2629 100644
--- a/chrome/browser/ash/input_method/grammar_manager.cc
+++ b/chrome/browser/ash/input_method/grammar_manager.cc
@@ -82,8 +82,7 @@
   return base::FeatureList::IsEnabled(features::kOnDeviceGrammarCheck);
 }
 
-void GrammarManager::OnFocus(int context_id,
-                             ui::SpellcheckMode spellcheck_mode) {
+void GrammarManager::OnFocus(int context_id, SpellcheckMode spellcheck_mode) {
   if (context_id != context_id_) {
     current_text_ = u"";
     last_sentence_ = Sentence();
@@ -155,8 +154,9 @@
 bool GrammarManager::HandleSurroundingTextChange(const std::u16string& text,
                                                  int cursor_pos,
                                                  int anchor_pos) {
-  if (spellcheck_mode_ == ui::SpellcheckMode::kDisabled)
+  if (spellcheck_mode_ == SpellcheckMode::kDisabled) {
     return false;
+  }
 
   bool text_updated = text != current_text_;
   current_text_ = text;
@@ -168,8 +168,7 @@
   }
 
   if (text_updated) {
-    ui::TextInputTarget* input_context =
-        ui::IMEBridge::Get()->GetInputContextHandler();
+    TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
     if (!input_context)
       return false;
 
@@ -196,8 +195,7 @@
   if (cursor_pos != anchor_pos)
     return false;
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context)
     return false;
 
@@ -275,8 +273,7 @@
     }
   }
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context)
     return;
 
@@ -313,8 +310,7 @@
 
   DismissSuggestion();
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context) {
     LOG(ERROR) << "Failed to commit grammar suggestion.";
   }
@@ -331,7 +327,7 @@
     // TextInputClient.
     // TODO(crbug/1194424): Work around the issue or fix
     // GetSurroundingTextInfo().
-    const ui::SurroundingTextInfo surrounding_text =
+    const SurroundingTextInfo surrounding_text =
         input_context->GetSurroundingTextInfo();
 
     // Delete the incorrect grammar fragment.
@@ -357,8 +353,7 @@
 
   DismissSuggestion();
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context)
     return;
 
diff --git a/chrome/browser/ash/input_method/grammar_manager.h b/chrome/browser/ash/input_method/grammar_manager.h
index 8ad3652b..65c0287 100644
--- a/chrome/browser/ash/input_method/grammar_manager.h
+++ b/chrome/browser/ash/input_method/grammar_manager.h
@@ -48,9 +48,8 @@
   bool IsOnDeviceGrammarEnabled();
 
   // Indicates a new text field is focused, used to save context ID.
-  void OnFocus(
-      int context_id,
-      ui::SpellcheckMode spellcheck_mode = ui::SpellcheckMode::kUnspecified);
+  void OnFocus(int context_id,
+               SpellcheckMode spellcheck_mode = SpellcheckMode::kUnspecified);
 
   // This class intercepts keystrokes when the grammar suggestion pop up is
   // displayed. Returns whether the keypress has been handled.
@@ -101,7 +100,7 @@
   ui::ime::ButtonId highlighted_button_ = ui::ime::ButtonId::kNone;
   Sentence current_sentence_;
   Sentence last_sentence_;
-  ui::SpellcheckMode spellcheck_mode_ = ui::SpellcheckMode::kUnspecified;
+  SpellcheckMode spellcheck_mode_ = SpellcheckMode::kUnspecified;
   std::unordered_map<std::u16string, std::unordered_set<uint64_t>>
       ignored_marker_hashes_;
   std::unordered_set<uint64_t> recorded_marker_hashes_;
diff --git a/chrome/browser/ash/input_method/grammar_manager_unittest.cc b/chrome/browser/ash/input_method/grammar_manager_unittest.cc
index ba6eaf30..7ce2b4ae9 100644
--- a/chrome/browser/ash/input_method/grammar_manager_unittest.cc
+++ b/chrome/browser/ash/input_method/grammar_manager_unittest.cc
@@ -111,8 +111,7 @@
  protected:
   void SetUp() override {
     profile_ = std::make_unique<TestingProfile>();
-    ui::IMEBridge::Get()->SetInputContextHandler(
-        &mock_ime_input_context_handler_);
+    IMEBridge::Get()->SetInputContextHandler(&mock_ime_input_context_handler_);
     chromeos::machine_learning::ServiceConnection::
         UseFakeServiceConnectionForTesting(&fake_service_connection_);
     chromeos::machine_learning::ServiceConnection::GetInstance()->Initialize();
@@ -124,7 +123,7 @@
   std::unique_ptr<TestingProfile> profile_;
   chromeos::machine_learning::FakeServiceConnectionImpl
       fake_service_connection_;
-  ui::MockIMEInputContextHandler mock_ime_input_context_handler_;
+  MockIMEInputContextHandler mock_ime_input_context_handler_;
 };
 
 TEST_F(GrammarManagerTest, HandlesSingleGrammarCheckResult) {
@@ -134,7 +133,7 @@
                          &mock_suggestion_handler);
   base::HistogramTester histogram_tester;
 
-  manager.OnFocus(1, ui::SpellcheckMode::kUnspecified);
+  manager.OnFocus(1, SpellcheckMode::kUnspecified);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
   task_environment_.FastForwardBy(base::Milliseconds(2500));
@@ -155,7 +154,7 @@
                          &mock_suggestion_handler);
   base::HistogramTester histogram_tester;
 
-  manager.OnFocus(1, ui::SpellcheckMode::kUnspecified);
+  manager.OnFocus(1, SpellcheckMode::kUnspecified);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error error", 0, 0);
   task_environment_.FastForwardBy(base::Milliseconds(2500));
@@ -175,7 +174,7 @@
                          &mock_suggestion_handler);
   base::HistogramTester histogram_tester;
 
-  manager.OnFocus(1, ui::SpellcheckMode::kDisabled);
+  manager.OnFocus(1, SpellcheckMode::kDisabled);
   manager.OnSurroundingTextChanged(u"", 0, 0);
   manager.OnSurroundingTextChanged(u"There is error.", 0, 0);
   task_environment_.FastForwardBy(base::Milliseconds(2500));
diff --git a/chrome/browser/ash/input_method/input_method_engine.cc b/chrome/browser/ash/input_method/input_method_engine.cc
index c31a030..346640f 100644
--- a/chrome/browser/ash/input_method/input_method_engine.cc
+++ b/chrome/browser/ash/input_method/input_method_engine.cc
@@ -170,8 +170,7 @@
 }
 
 void InputMethodEngine::ConfirmComposition(bool reset_engine) {
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (input_context)
     input_context->ConfirmComposition(reset_engine);
 }
@@ -193,8 +192,7 @@
 
   // TODO(nona): Return false if there is ongoing composition.
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (input_context) {
     const uint32_t before =
         offset >= 0 ? 0U : static_cast<uint32_t>(-1 * offset);
@@ -243,8 +241,7 @@
         static_cast<uint8_t>(screen_projection_change_monitor_.is_mirroring());
     event_copy.SetProperties(properties);
 
-    ui::TextInputTarget* input_context =
-        ui::IMEBridge::Get()->GetInputContextHandler();
+    TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
     if (input_context) {
       input_context->SendKeyEvent(&event_copy);
       continue;
@@ -380,8 +377,7 @@
     return false;
   }
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context) {
     return false;
   }
@@ -442,8 +438,7 @@
     return false;
   }
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context) {
     return false;
   }
@@ -465,8 +460,7 @@
     return gfx::Rect();
   }
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context) {
     return gfx::Rect();
   }
@@ -505,7 +499,7 @@
 
 std::string InputMethodEngine::AddPendingKeyEvent(
     const std::string& component_id,
-    ui::TextInputMethod::KeyEventDoneCallback callback) {
+    TextInputMethod::KeyEventDoneCallback callback) {
   std::string request_id = base::NumberToString(next_request_id_);
   ++next_request_id_;
 
@@ -524,7 +518,7 @@
 }
 
 void InputMethodEngine::Focus(
-    const ui::TextInputMethod::InputContext& input_context) {
+    const TextInputMethod::InputContext& input_context) {
   current_input_type_ = input_context.type;
 
   if (!IsActive() || current_input_type_ == ui::TEXT_INPUT_TYPE_NONE)
@@ -557,8 +551,8 @@
 void InputMethodEngine::Enable(const std::string& component_id) {
   active_component_id_ = component_id;
   observer_->OnActivate(component_id);
-  const ui::TextInputMethod::InputContext& input_context =
-      ui::IMEBridge::Get()->GetCurrentInputContext();
+  const TextInputMethod::InputContext& input_context =
+      IMEBridge::Get()->GetCurrentInputContext();
   current_input_type_ = input_context.type;
   Focus(input_context);
 
@@ -697,7 +691,7 @@
     return false;
   }
   IMEAssistiveWindowHandlerInterface* aw_handler =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (aw_handler)
     aw_handler->SetButtonHighlighted(button, highlighted);
   return true;
@@ -730,7 +724,7 @@
   CommitText(context_id, suggestion, error);
 
   IMEAssistiveWindowHandlerInterface* aw_handler =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (aw_handler)
     aw_handler->AcceptSuggestion(suggestion);
   return true;
@@ -767,7 +761,7 @@
 
   if (IsActive()) {
     IMECandidateWindowHandlerInterface* cw_handler =
-        ui::IMEBridge::Get()->GetCandidateWindowHandler();
+        IMEBridge::Get()->GetCandidateWindowHandler();
     if (cw_handler) {
       if (window_visible_) {
         cw_handler->UpdateLookupTable(candidate_window_);
@@ -787,7 +781,7 @@
 
   window_visible_ = visible;
   IMECandidateWindowHandlerInterface* cw_handler =
-      ui::IMEBridge::Get()->GetCandidateWindowHandler();
+      IMEBridge::Get()->GetCandidateWindowHandler();
   if (cw_handler) {
     if (window_visible_) {
       cw_handler->UpdateLookupTable(candidate_window_);
@@ -830,7 +824,7 @@
   }
   if (IsActive()) {
     IMECandidateWindowHandlerInterface* cw_handler =
-        ui::IMEBridge::Get()->GetCandidateWindowHandler();
+        IMEBridge::Get()->GetCandidateWindowHandler();
     if (cw_handler) {
       if (window_visible_) {
         cw_handler->UpdateLookupTable(candidate_window_);
@@ -864,7 +858,7 @@
 
   candidate_window_.set_cursor_position(position->second);
   IMECandidateWindowHandlerInterface* cw_handler =
-      ui::IMEBridge::Get()->GetCandidateWindowHandler();
+      IMEBridge::Get()->GetCandidateWindowHandler();
   if (cw_handler) {
     if (window_visible_) {
       cw_handler->UpdateLookupTable(candidate_window_);
@@ -888,7 +882,7 @@
   }
 
   IMEAssistiveWindowHandlerInterface* aw_handler =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (aw_handler)
     aw_handler->ShowSuggestion(details);
   return true;
@@ -905,7 +899,7 @@
   }
 
   IMEAssistiveWindowHandlerInterface* aw_handler =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (aw_handler)
     aw_handler->HideSuggestion();
   return true;
@@ -927,7 +921,7 @@
   }
 
   IMEAssistiveWindowHandlerInterface* aw_handler =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (aw_handler) {
     std::u16string suggestion_text = aw_handler->GetSuggestionText();
     if (suggestion_text.empty()) {
@@ -959,7 +953,7 @@
   }
 
   IMEAssistiveWindowHandlerInterface* aw_handler =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (aw_handler)
     aw_handler->SetAssistiveWindowProperties(assistive_window);
   return true;
@@ -967,7 +961,7 @@
 
 void InputMethodEngine::Announce(const std::u16string& message) {
   IMEAssistiveWindowHandlerInterface* aw_handler =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (aw_handler)
     aw_handler->Announce(message);
 }
@@ -1030,8 +1024,7 @@
     const ui::CompositionText& composition_text,
     uint32_t cursor_pos,
     bool is_visible) {
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (input_context) {
     input_context->UpdateCompositionText(composition_text, cursor_pos,
                                          is_visible);
@@ -1040,8 +1033,7 @@
 
 void InputMethodEngine::CommitTextToInputContext(int context_id,
                                                  const std::u16string& text) {
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
   if (!input_context)
     return;
 
@@ -1085,7 +1077,7 @@
 
 InputMethodEngine::PendingKeyEvent::PendingKeyEvent(
     const std::string& component_id,
-    ui::TextInputMethod::KeyEventDoneCallback callback)
+    TextInputMethod::KeyEventDoneCallback callback)
     : component_id(component_id), callback(std::move(callback)) {}
 
 InputMethodEngine::PendingKeyEvent::PendingKeyEvent(PendingKeyEvent&& other) =
diff --git a/chrome/browser/ash/input_method/input_method_engine.h b/chrome/browser/ash/input_method/input_method_engine.h
index 78b095a..1be5fd19 100644
--- a/chrome/browser/ash/input_method/input_method_engine.h
+++ b/chrome/browser/ash/input_method/input_method_engine.h
@@ -34,7 +34,6 @@
 
 namespace ui {
 struct CompositionText;
-class TextInputMethod;
 class KeyEvent;
 
 namespace ime {
@@ -45,6 +44,7 @@
 }  // namespace ui
 
 namespace ash {
+
 namespace ime {
 struct AssistiveWindow;
 }  // namespace ime
@@ -53,7 +53,7 @@
 
 struct AssistiveWindowProperties;
 
-class InputMethodEngine : virtual public ui::TextInputMethod,
+class InputMethodEngine : virtual public TextInputMethod,
                           public ProfileObserver,
                           public SuggestionHandlerInterface {
  public:
@@ -203,7 +203,7 @@
   // Returns the request ID for this key event.
   std::string AddPendingKeyEvent(
       const std::string& component_id,
-      ui::TextInputMethod::KeyEventDoneCallback callback);
+      TextInputMethod::KeyEventDoneCallback callback);
 
   // Resolves all the pending key event callbacks as not handled.
   void CancelPendingKeyEvents();
@@ -219,8 +219,8 @@
     return pref_change_registrar_.get();
   }
 
-  // ui::TextInputMethod overrides.
-  void Focus(const ui::TextInputMethod::InputContext& input_context) override;
+  // TextInputMethod overrides.
+  void Focus(const TextInputMethod::InputContext& input_context) override;
   void Blur() override;
   void OnTouch(ui::EventPointerType pointerType) override;
   void Enable(const std::string& component_id) override;
@@ -310,7 +310,7 @@
  private:
   struct PendingKeyEvent {
     PendingKeyEvent(const std::string& component_id,
-                    ui::TextInputMethod::KeyEventDoneCallback callback);
+                    TextInputMethod::KeyEventDoneCallback callback);
     PendingKeyEvent(PendingKeyEvent&& other);
 
     PendingKeyEvent(const PendingKeyEvent&) = delete;
@@ -319,7 +319,7 @@
     ~PendingKeyEvent();
 
     std::string component_id;
-    ui::TextInputMethod::KeyEventDoneCallback callback;
+    TextInputMethod::KeyEventDoneCallback callback;
   };
 
   // Notifies InputContextHandler that the composition is changed.
diff --git a/chrome/browser/ash/input_method/input_method_engine_browsertests.cc b/chrome/browser/ash/input_method/input_method_engine_browsertests.cc
index e45b545..db263b3 100644
--- a/chrome/browser/ash/input_method/input_method_engine_browsertests.cc
+++ b/chrome/browser/ash/input_method/input_method_engine_browsertests.cc
@@ -4,6 +4,8 @@
 
 #include <stddef.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/callback_helpers.h"
 #include "base/run_loop.h"
@@ -77,9 +79,9 @@
 
   void TearDownInProcessBrowserTestFixture() override { extension_ = nullptr; }
 
-  ui::TextInputMethod::InputContext CreateInputContextWithInputType(
+  TextInputMethod::InputContext CreateInputContextWithInputType(
       ui::TextInputType type) {
-    return ui::TextInputMethod::InputContext(type);
+    return TextInputMethod::InputContext(type);
   }
 
  protected:
@@ -194,13 +196,12 @@
 IN_PROC_BROWSER_TEST_P(InputMethodEngineBrowserTest, BasicScenarioTest) {
   LoadTestInputMethod();
 
-  std::unique_ptr<ui::MockIMEInputContextHandler> mock_input_context(
-      new ui::MockIMEInputContextHandler());
+  auto mock_input_context = std::make_unique<MockIMEInputContextHandler>();
   std::unique_ptr<MockIMECandidateWindowHandler> mock_candidate_window(
       new MockIMECandidateWindowHandler());
 
-  ui::IMEBridge::Get()->SetInputContextHandler(mock_input_context.get());
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
+  IMEBridge::Get()->SetInputContextHandler(mock_input_context.get());
+  IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
 
   // onActivate event should be fired when changing input methods.
   ExtensionTestMessageListener activated_listener("onActivate");
@@ -209,8 +210,7 @@
   ASSERT_TRUE(activated_listener.WaitUntilSatisfied());
   ASSERT_TRUE(activated_listener.was_satisfied());
 
-  ui::TextInputMethod* engine_handler =
-      ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  TextInputMethod* engine_handler = IMEBridge::Get()->GetCurrentEngineHandler();
   ASSERT_TRUE(engine_handler);
 
   // onFocus event should be fired if Focus function is called.
@@ -228,7 +228,7 @@
                                                     // consume keys.
   ExtensionTestMessageListener keyevent_listener("onKeyEvent");
   ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
-  ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+  TextInputMethod::KeyEventDoneCallback keyevent_callback =
       base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
   engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
   ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -270,8 +270,8 @@
   ASSERT_TRUE(disabled_listener.WaitUntilSatisfied());
   ASSERT_TRUE(disabled_listener.was_satisfied());
 
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
 }
 
 IN_PROC_BROWSER_TEST_P(InputMethodEngineBrowserTest, APIArgumentTest) {
@@ -284,16 +284,14 @@
   InputMethodManager::Get()->GetActiveIMEState()->ChangeInputMethod(
       kAPIArgumentIMEID, false /* show_message */);
 
-  std::unique_ptr<ui::MockIMEInputContextHandler> mock_input_context(
-      new ui::MockIMEInputContextHandler());
+  auto mock_input_context = std::make_unique<MockIMEInputContextHandler>();
   std::unique_ptr<MockIMECandidateWindowHandler> mock_candidate_window(
       new MockIMECandidateWindowHandler());
 
-  ui::IMEBridge::Get()->SetInputContextHandler(mock_input_context.get());
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
+  IMEBridge::Get()->SetInputContextHandler(mock_input_context.get());
+  IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
 
-  ui::TextInputMethod* engine_handler =
-      ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  TextInputMethod* engine_handler = IMEBridge::Get()->GetCurrentEngineHandler();
   ASSERT_TRUE(engine_handler);
 
   extensions::ExtensionHost* host =
@@ -313,7 +311,7 @@
 
     ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::DomCode::US_A,
                            ui::EF_NONE);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -329,7 +327,7 @@
 
     ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::DomCode::US_A,
                            ui::EF_CONTROL_DOWN);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -345,7 +343,7 @@
 
     ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::DomCode::US_A,
                            ui::EF_ALT_DOWN);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -361,7 +359,7 @@
 
     ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::DomCode::US_A,
                            ui::EF_SHIFT_DOWN);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -377,7 +375,7 @@
 
     ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::DomCode::US_A,
                            ui::EF_CAPS_LOCK_ON);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -393,7 +391,7 @@
 
     ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::DomCode::US_A,
                            ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -409,7 +407,7 @@
 
     ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::DomCode::US_A,
                            ui::EF_SHIFT_DOWN | ui::EF_CAPS_LOCK_ON);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -425,7 +423,7 @@
 
     ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::DomCode::US_A,
                            ui::EF_ALTGR_DOWN);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -473,7 +471,7 @@
         ui::ET_KEY_PRESSED, kMediaKeyCases[i].keycode,
         ui::KeycodeConverter::CodeStringToDomCode(kMediaKeyCases[i].code),
         ui::EF_NONE);
-    ui::TextInputMethod::KeyEventDoneCallback keyevent_callback =
+    TextInputMethod::KeyEventDoneCallback keyevent_callback =
         base::BindOnce(&KeyEventDoneCallback::Run, base::Unretained(&callback));
     engine_handler->ProcessKeyEvent(key_event, std::move(keyevent_callback));
     ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
@@ -665,7 +663,7 @@
     ASSERT_TRUE(content::ExecuteScript(host->host_contents(),
                                        set_assistive_window_test_script));
     auto* assistive_window_controller = static_cast<AssistiveWindowController*>(
-        ui::IMEBridge::Get()->GetAssistiveWindowHandler());
+        IMEBridge::Get()->GetAssistiveWindowHandler());
 
     ui::ime::UndoWindow* undo_window =
         assistive_window_controller->GetUndoWindowForTesting();
@@ -689,7 +687,7 @@
       });
     )";
     auto* assistive_window_controller = static_cast<AssistiveWindowController*>(
-        ui::IMEBridge::Get()->GetAssistiveWindowHandler());
+        IMEBridge::Get()->GetAssistiveWindowHandler());
     views::test::WidgetDestroyedWaiter waiter(
         assistive_window_controller->GetUndoWindowForTesting()->GetWidget());
     ASSERT_TRUE(content::ExecuteScript(host->host_contents(),
@@ -715,7 +713,7 @@
     ASSERT_TRUE(content::ExecuteScript(host->host_contents(),
                                        set_assistive_window_test_script));
     auto* assistive_window_controller = static_cast<AssistiveWindowController*>(
-        ui::IMEBridge::Get()->GetAssistiveWindowHandler());
+        IMEBridge::Get()->GetAssistiveWindowHandler());
 
     ui::ime::UndoWindow* undo_window =
         assistive_window_controller->GetUndoWindowForTesting();
@@ -760,7 +758,7 @@
         host->host_contents(),
         set_assistive_window_button_highlighted_test_script));
     auto* assistive_window_controller = static_cast<AssistiveWindowController*>(
-        ui::IMEBridge::Get()->GetAssistiveWindowHandler());
+        IMEBridge::Get()->GetAssistiveWindowHandler());
 
     ui::ime::UndoWindow* undo_window =
         assistive_window_controller->GetUndoWindowForTesting();
@@ -798,7 +796,7 @@
         host->host_contents(),
         set_assistive_window_button_highlighted_test_script));
     auto* assistive_window_controller = static_cast<AssistiveWindowController*>(
-        ui::IMEBridge::Get()->GetAssistiveWindowHandler());
+        IMEBridge::Get()->GetAssistiveWindowHandler());
 
     ui::ime::UndoWindow* undo_window =
         assistive_window_controller->GetUndoWindowForTesting();
@@ -1280,8 +1278,8 @@
     EXPECT_EQ(1, mock_input_context->commit_text_call_count());
   }
 
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
 }
 
 IN_PROC_BROWSER_TEST_P(InputMethodEngineBrowserTest, RestrictedKeyboard) {
@@ -1290,16 +1288,14 @@
   InputMethodManager::Get()->GetActiveIMEState()->ChangeInputMethod(
       kAPIArgumentIMEID, false /* show_message */);
 
-  std::unique_ptr<ui::MockIMEInputContextHandler> mock_input_context(
-      new ui::MockIMEInputContextHandler());
+  auto mock_input_context = std::make_unique<MockIMEInputContextHandler>();
   std::unique_ptr<MockIMECandidateWindowHandler> mock_candidate_window(
       new MockIMECandidateWindowHandler());
 
-  ui::IMEBridge::Get()->SetInputContextHandler(mock_input_context.get());
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
+  IMEBridge::Get()->SetInputContextHandler(mock_input_context.get());
+  IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
 
-  ui::TextInputMethod* engine_handler =
-      ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  TextInputMethod* engine_handler = IMEBridge::Get()->GetCurrentEngineHandler();
   ASSERT_TRUE(engine_handler);
 
   auto keyboard_config =
@@ -1393,8 +1389,8 @@
     ASSERT_TRUE(focus_listener.was_satisfied());
   }
 
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
 }
 
 IN_PROC_BROWSER_TEST_P(InputMethodEngineBrowserTest, ShouldDoLearning) {
@@ -1403,29 +1399,27 @@
   InputMethodManager::Get()->GetActiveIMEState()->ChangeInputMethod(
       kIdentityIMEID, false /* show_message */);
 
-  std::unique_ptr<ui::MockIMEInputContextHandler> mock_input_context(
-      new ui::MockIMEInputContextHandler());
+  auto mock_input_context = std::make_unique<MockIMEInputContextHandler>();
   std::unique_ptr<MockIMECandidateWindowHandler> mock_candidate_window(
       new MockIMECandidateWindowHandler());
 
-  ui::IMEBridge::Get()->SetInputContextHandler(mock_input_context.get());
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
+  IMEBridge::Get()->SetInputContextHandler(mock_input_context.get());
+  IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
 
-  ui::TextInputMethod* engine_handler =
-      ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  TextInputMethod* engine_handler = IMEBridge::Get()->GetCurrentEngineHandler();
   ASSERT_TRUE(engine_handler);
 
   // onFocus event should be fired if Focus function is called.
   ExtensionTestMessageListener focus_listener(
       "onFocus:text:true:true:true:true");
   auto context = CreateInputContextWithInputType(ui::TEXT_INPUT_TYPE_TEXT);
-  context.personalization_mode = ui::PersonalizationMode::kEnabled;
+  context.personalization_mode = PersonalizationMode::kEnabled;
   engine_handler->Focus(context);
   ASSERT_TRUE(focus_listener.WaitUntilSatisfied());
   ASSERT_TRUE(focus_listener.was_satisfied());
 
-  ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
+  IMEBridge::Get()->SetInputContextHandler(nullptr);
+  IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
 }
 
 IN_PROC_BROWSER_TEST_P(InputMethodEngineBrowserTest, MojoInteractionTest) {
diff --git a/chrome/browser/ash/input_method/input_method_engine_observer.h b/chrome/browser/ash/input_method/input_method_engine_observer.h
index 3568aa8..959577d 100644
--- a/chrome/browser/ash/input_method/input_method_engine_observer.h
+++ b/chrome/browser/ash/input_method/input_method_engine_observer.h
@@ -49,7 +49,7 @@
   // `context_id` is a unique ID given to this focus session.
   virtual void OnFocus(const std::string& engine_id,
                        int context_id,
-                       const ui::TextInputMethod::InputContext& context) = 0;
+                       const TextInputMethod::InputContext& context) = 0;
 
   // Called on a touch within a text field. Allows for features like changing
   // virtual keyboard layout based on touch type after onfocus (since
@@ -60,10 +60,9 @@
   virtual void OnBlur(const std::string& engine_id, int context_id) = 0;
 
   // Called when the user pressed a key with a text field focused.
-  virtual void OnKeyEvent(
-      const std::string& engine_id,
-      const ui::KeyEvent& event,
-      ui::TextInputMethod::KeyEventDoneCallback key_data) = 0;
+  virtual void OnKeyEvent(const std::string& engine_id,
+                          const ui::KeyEvent& event,
+                          TextInputMethod::KeyEventDoneCallback key_data) = 0;
 
   // Called when Chrome terminates on-going text input session.
   virtual void OnReset(const std::string& engine_id) = 0;
diff --git a/chrome/browser/ash/input_method/input_method_engine_unittest.cc b/chrome/browser/ash/input_method/input_method_engine_unittest.cc
index 5bb99128..0bad139 100644
--- a/chrome/browser/ash/input_method/input_method_engine_unittest.cc
+++ b/chrome/browser/ash/input_method/input_method_engine_unittest.cc
@@ -34,6 +34,7 @@
 
 namespace ash {
 namespace input_method {
+
 namespace {
 
 const char kTestExtensionId[] = "mppnpdlheglhdfmldimlhpnegondlapf";
@@ -92,7 +93,7 @@
   }
   void OnFocus(const std::string& engine_id,
                int context_id,
-               const ui::TextInputMethod::InputContext& context) override {
+               const TextInputMethod::InputContext& context) override {
     calls_bitmap_ |= ONFOCUS;
   }
   void OnBlur(const std::string& engine_id, int context_id) override {
@@ -100,7 +101,7 @@
   }
   void OnKeyEvent(const std::string& engine_id,
                   const ui::KeyEvent& event,
-                  ui::TextInputMethod::KeyEventDoneCallback callback) override {
+                  TextInputMethod::KeyEventDoneCallback callback) override {
     std::move(callback).Run(ui::ime::KeyEventHandledState::kHandledByIME);
   }
   void OnCompositionBoundsChanged(
@@ -137,8 +138,8 @@
     layouts_.emplace_back("us");
     InitInputMethod();
     mock_ime_input_context_handler_ =
-        std::make_unique<ui::MockIMEInputContextHandler>();
-    ui::IMEBridge::Get()->SetInputContextHandler(
+        std::make_unique<MockIMEInputContextHandler>();
+    IMEBridge::Get()->SetInputContextHandler(
         mock_ime_input_context_handler_.get());
 
     chrome_keyboard_controller_client_test_helper_ =
@@ -149,7 +150,7 @@
   InputMethodEngineTest& operator=(const InputMethodEngineTest&) = delete;
 
   ~InputMethodEngineTest() override {
-    ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+    IMEBridge::Get()->SetInputContextHandler(nullptr);
     engine_.reset();
     chrome_keyboard_controller_client_test_helper_.reset();
     Shutdown();
@@ -166,9 +167,9 @@
   }
 
   void Focus(ui::TextInputType input_type) {
-    ui::TextInputMethod::InputContext input_context(input_type);
+    TextInputMethod::InputContext input_context(input_type);
     engine_->Focus(input_context);
-    ui::IMEBridge::Get()->SetCurrentInputContext(input_context);
+    IMEBridge::Get()->SetCurrentInputContext(input_context);
   }
 
   std::unique_ptr<InputMethodEngine> engine_;
@@ -180,8 +181,7 @@
   GURL input_view_;
 
   content::BrowserTaskEnvironment task_environment_;
-  std::unique_ptr<ui::MockIMEInputContextHandler>
-      mock_ime_input_context_handler_;
+  std::unique_ptr<MockIMEInputContextHandler> mock_ime_input_context_handler_;
   std::unique_ptr<ChromeKeyboardControllerClientTestHelper>
       chrome_keyboard_controller_client_test_helper_;
 };
diff --git a/chrome/browser/ash/input_method/input_method_manager_impl.cc b/chrome/browser/ash/input_method/input_method_manager_impl.cc
index b75c9546..28ca1d91 100644
--- a/chrome/browser/ash/input_method/input_method_manager_impl.cc
+++ b/chrome/browser/ash/input_method/input_method_manager_impl.cc
@@ -548,7 +548,7 @@
 void InputMethodManagerImpl::StateImpl::AddInputMethodExtension(
     const std::string& extension_id,
     const InputMethodDescriptors& descriptors,
-    ui::TextInputMethod* engine) {
+    TextInputMethod* engine) {
   if (IsShuttingDown())
     return;
 
@@ -575,7 +575,7 @@
   if (IsActive()) {
     if (extension_id == extension_ime_util::GetExtensionIDFromInputMethodID(
                             current_input_method_.id())) {
-      ui::IMEBridge::Get()->SetCurrentEngineHandler(engine);
+      IMEBridge::Get()->SetCurrentEngineHandler(engine);
       engine->Enable(extension_ime_util::GetComponentIDByInputMethodID(
           current_input_method_.id()));
     }
@@ -610,9 +610,9 @@
   available_input_methods_.swap(new_available_input_methods);
 
   if (IsActive()) {
-    if (ui::IMEBridge::Get()->GetCurrentEngineHandler() ==
+    if (IMEBridge::Get()->GetCurrentEngineHandler() ==
         manager_->engine_map_[profile_][extension_id]) {
-      ui::IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
+      IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
     }
     manager_->engine_map_[profile_].erase(extension_id);
   }
@@ -1083,7 +1083,7 @@
   }
 
   // Disable the current engine handler.
-  ui::TextInputMethod* engine = ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  TextInputMethod* engine = IMEBridge::Get()->GetCurrentEngineHandler();
   if (engine)
     engine->Disable();
 
@@ -1103,7 +1103,7 @@
   }
   engine = engine_map_[state_->GetProfile()][extension_id];
 
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(engine);
+  IMEBridge::Get()->SetCurrentEngineHandler(engine);
 
   if (engine) {
     engine->Enable(component_id);
@@ -1134,8 +1134,7 @@
 
   if (ui::ime::InputMethodMenuManager::GetInstance()->
       HasInputMethodMenuItemForKey(key)) {
-    ui::TextInputMethod* engine =
-        ui::IMEBridge::Get()->GetCurrentEngineHandler();
+    TextInputMethod* engine = IMEBridge::Get()->GetCurrentEngineHandler();
     if (engine)
       engine->PropertyActivate(key);
     return;
@@ -1231,12 +1230,12 @@
 
   if (assistive_window_controller_.get()) {
     assistive_window_controller_.reset();
-    ui::IMEBridge::Get()->SetAssistiveWindowHandler(nullptr);
+    IMEBridge::Get()->SetAssistiveWindowHandler(nullptr);
   }
 }
 
 void InputMethodManagerImpl::CandidateClicked(int index) {
-  ui::TextInputMethod* engine = ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  TextInputMethod* engine = IMEBridge::Get()->GetCurrentEngineHandler();
   if (engine)
     engine->CandidateClicked(index);
 }
@@ -1253,14 +1252,14 @@
 
 void InputMethodManagerImpl::AssistiveWindowButtonClicked(
     const ui::ime::AssistiveWindowButton& button) const {
-  ui::TextInputMethod* engine = ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  TextInputMethod* engine = IMEBridge::Get()->GetCurrentEngineHandler();
   if (engine)
     engine->AssistiveWindowButtonClicked(button);
 }
 
 void InputMethodManagerImpl::AssistiveWindowChanged(
     const ash::ime::AssistiveWindow& window) const {
-  ui::TextInputMethod* engine = ui::IMEBridge::Get()->GetCurrentEngineHandler();
+  TextInputMethod* engine = IMEBridge::Get()->GetCurrentEngineHandler();
   if (engine)
     engine->AssistiveWindowChanged(window);
 }
@@ -1304,7 +1303,7 @@
 
   assistive_window_controller_ =
       std::make_unique<AssistiveWindowController>(this, state_->GetProfile());
-  ui::IMEBridge::Get()->SetAssistiveWindowHandler(
+  IMEBridge::Get()->SetAssistiveWindowHandler(
       assistive_window_controller_.get());
 }
 
diff --git a/chrome/browser/ash/input_method/input_method_manager_impl.h b/chrome/browser/ash/input_method/input_method_manager_impl.h
index 04410aae..b78d7c6 100644
--- a/chrome/browser/ash/input_method/input_method_manager_impl.h
+++ b/chrome/browser/ash/input_method/input_method_manager_impl.h
@@ -24,10 +24,6 @@
 #include "ui/base/ime/ash/input_method_util.h"
 #include "ui/base/ime/ash/text_input_method.h"
 
-namespace ui {
-class TextInputMethod;
-}  // namespace ui
-
 namespace ash {
 
 class ComponentExtensionIMEManager;
@@ -74,7 +70,7 @@
     scoped_refptr<InputMethodManager::State> Clone() const override;
     void AddInputMethodExtension(const std::string& extension_id,
                                  const InputMethodDescriptors& descriptors,
-                                 ui::TextInputMethod* instance) override;
+                                 TextInputMethod* instance) override;
     void RemoveInputMethodExtension(const std::string& extension_id) override;
     void ChangeInputMethod(const std::string& input_method_id,
                            bool show_message) override;
@@ -317,7 +313,7 @@
   uint32_t features_enabled_state_;
 
   // The engine map from extension_id to an engine.
-  using EngineMap = std::map<std::string, ui::TextInputMethod*>;
+  using EngineMap = std::map<std::string, TextInputMethod*>;
   using ProfileEngineMap = std::map<Profile*, EngineMap, ProfileCompare>;
   ProfileEngineMap engine_map_;
 
diff --git a/chrome/browser/ash/input_method/input_method_manager_impl_unittest.cc b/chrome/browser/ash/input_method/input_method_manager_impl_unittest.cc
index 5207dced..2ea4b7e 100644
--- a/chrome/browser/ash/input_method/input_method_manager_impl_unittest.cc
+++ b/chrome/browser/ash/input_method/input_method_manager_impl_unittest.cc
@@ -181,7 +181,7 @@
     keyboard_ = new FakeImeKeyboard;
     manager_->SetImeKeyboardForTesting(keyboard_);
     mock_engine_handler_ = std::make_unique<MockInputMethodEngine>();
-    ui::IMEBridge::Get()->SetCurrentEngineHandler(mock_engine_handler_.get());
+    IMEBridge::Get()->SetCurrentEngineHandler(mock_engine_handler_.get());
 
     menu_manager_ = ui::ime::InputMethodMenuManager::GetInstance();
 
diff --git a/chrome/browser/ash/input_method/mock_input_method_engine.h b/chrome/browser/ash/input_method/mock_input_method_engine.h
index 5fcb3ea..056c4e4 100644
--- a/chrome/browser/ash/input_method/mock_input_method_engine.h
+++ b/chrome/browser/ash/input_method/mock_input_method_engine.h
@@ -15,9 +15,8 @@
 #include "ui/base/ime/ash/text_input_method.h"
 
 namespace ui {
-class TextInputMethod;
 class KeyEvent;
-}  // namespace ui
+}
 
 namespace ash {
 namespace ime {
@@ -26,7 +25,7 @@
 
 namespace input_method {
 
-class MockInputMethodEngine : public ui::TextInputMethod {
+class MockInputMethodEngine : public TextInputMethod {
  public:
   MockInputMethodEngine();
   ~MockInputMethodEngine() override;
diff --git a/chrome/browser/ash/input_method/native_input_method_engine_observer.cc b/chrome/browser/ash/input_method/native_input_method_engine_observer.cc
index 3bd0805..f2fc243 100644
--- a/chrome/browser/ash/input_method/native_input_method_engine_observer.cc
+++ b/chrome/browser/ash/input_method/native_input_method_engine_observer.cc
@@ -172,10 +172,10 @@
 }
 
 mojom::AutocorrectMode GetAutocorrectMode(
-    ui::AutocorrectionMode autocorrection_mode,
-    ui::SpellcheckMode spellcheck_mode) {
-  return autocorrection_mode == ui::AutocorrectionMode::kDisabled ||
-                 spellcheck_mode == ui::SpellcheckMode::kDisabled
+    AutocorrectionMode autocorrection_mode,
+    SpellcheckMode spellcheck_mode) {
+  return autocorrection_mode == AutocorrectionMode::kDisabled ||
+                 spellcheck_mode == SpellcheckMode::kDisabled
              ? mojom::AutocorrectMode::kDisabled
              : mojom::AutocorrectMode::kEnabled;
 }
@@ -485,19 +485,18 @@
   }
 }
 
-mojom::PersonalizationMode GetPersonalizationMode(
-    ui::PersonalizationMode mode) {
+mojom::PersonalizationMode GetPersonalizationMode(PersonalizationMode mode) {
   switch (mode) {
-    case ui::PersonalizationMode::kEnabled:
+    case PersonalizationMode::kEnabled:
       return mojom::PersonalizationMode::kEnabled;
-    case ui::PersonalizationMode::kDisabled:
+    case PersonalizationMode::kDisabled:
       return mojom::PersonalizationMode::kDisabled;
   }
 }
 
 mojom::InputFieldInfoPtr CreateInputFieldInfo(
     const std::string& engine_id,
-    const ui::TextInputMethod::InputContext& context,
+    const TextInputMethod::InputContext& context,
     const InputFieldContext& input_field_context,
     PrefService* prefs,
     bool is_normal_screen) {
@@ -529,7 +528,7 @@
 
 void UpdateCandidatesWindowSync(ime::mojom::CandidatesWindowPtr window) {
   IMECandidateWindowHandlerInterface* candidate_window_handler =
-      ui::IMEBridge::Get()->GetCandidateWindowHandler();
+      IMEBridge::Get()->GetCandidateWindowHandler();
   if (!candidate_window_handler) {
     return;
   }
@@ -863,7 +862,7 @@
 void NativeInputMethodEngineObserver::OnKeyEvent(
     const std::string& engine_id,
     const ui::KeyEvent& event,
-    ui::TextInputMethod::KeyEventDoneCallback callback) {
+    TextInputMethod::KeyEventDoneCallback callback) {
   if (assistive_suggester_->IsAssistiveFeatureEnabled()) {
     if (assistive_suggester_->OnKeyEvent(event)) {
       std::move(callback).Run(
@@ -916,7 +915,7 @@
       }
 
       auto process_key_event_callback = base::BindOnce(
-          [](ui::TextInputMethod::KeyEventDoneCallback original_callback,
+          [](TextInputMethod::KeyEventDoneCallback original_callback,
              mojom::KeyEventResult result) {
             std::move(original_callback)
                 .Run((result == mojom::KeyEventResult::kConsumedByIme)
@@ -1110,7 +1109,7 @@
     mojom::CommitTextCursorBehavior cursor_behavior) {
   if (!IsTextClientActive())
     return;
-  ui::IMEBridge::Get()->GetInputContextHandler()->CommitText(
+  IMEBridge::Get()->GetInputContextHandler()->CommitText(
       text,
       cursor_behavior == mojom::CommitTextCursorBehavior::kMoveCursorBeforeText
           ? ui::TextInputClient::InsertTextCursorBehavior::kMoveCursorBeforeText
@@ -1142,7 +1141,7 @@
     composition.ime_text_spans.push_back(CompositionSpanToImeTextSpan(*span));
   }
 
-  ui::IMEBridge::Get()->GetInputContextHandler()->UpdateCompositionText(
+  IMEBridge::Get()->GetInputContextHandler()->UpdateCompositionText(
       std::move(composition),
       /*cursor_pos=*/new_cursor_position,
       /*visible=*/true);
@@ -1155,7 +1154,7 @@
 
   const auto ordered_range = std::minmax(start_index, end_index);
   // TODO(b/151884011): Turn on underlining for composition-based languages.
-  ui::IMEBridge::Get()->GetInputContextHandler()->SetComposingRange(
+  IMEBridge::Get()->GetInputContextHandler()->SetComposingRange(
       ordered_range.first, ordered_range.second,
       {ui::ImeTextSpan(
           ui::ImeTextSpan::Type::kComposition, /*start_offset=*/0,
@@ -1168,8 +1167,7 @@
   if (!IsTextClientActive())
     return;
 
-  ui::TextInputTarget* input_context =
-      ui::IMEBridge::Get()->GetInputContextHandler();
+  TextInputTarget* input_context = IMEBridge::Get()->GetInputContextHandler();
 
   input_context->ConfirmComposition(/*reset_engine=*/false);
 
@@ -1195,7 +1193,7 @@
     uint32_t num_after_cursor) {
   if (!IsTextClientActive())
     return;
-  ui::IMEBridge::Get()->GetInputContextHandler()->DeleteSurroundingText(
+  IMEBridge::Get()->GetInputContextHandler()->DeleteSurroundingText(
       num_before_cursor, num_after_cursor);
 }
 
@@ -1233,10 +1231,8 @@
 
 void NativeInputMethodEngineObserver::RecordUkm(mojom::UkmEntryPtr entry) {
   if (entry->is_non_compliant_api()) {
-    ui::RecordUkmNonCompliantApi(
-        ui::IMEBridge::Get()
-            ->GetInputContextHandler()
-            ->GetClientSourceForMetrics(),
+    RecordUkmNonCompliantApi(
+        IMEBridge::Get()->GetInputContextHandler()->GetClientSourceForMetrics(),
         entry->get_non_compliant_api()->non_compliant_operation);
   }
 }
diff --git a/chrome/browser/ash/input_method/native_input_method_engine_observer.h b/chrome/browser/ash/input_method/native_input_method_engine_observer.h
index cc5790b0..e6129c8 100644
--- a/chrome/browser/ash/input_method/native_input_method_engine_observer.h
+++ b/chrome/browser/ash/input_method/native_input_method_engine_observer.h
@@ -32,8 +32,6 @@
 namespace ash {
 namespace input_method {
 
-using ui::TextInputMethod;
-
 bool CanRouteToNativeMojoEngine(const std::string& engine_id);
 
 class NativeInputMethodEngineObserver : public InputMethodEngineObserver,
@@ -66,7 +64,7 @@
   void OnBlur(const std::string& engine_id, int context_id) override;
   void OnKeyEvent(const std::string& engine_id,
                   const ui::KeyEvent& event,
-                  ui::TextInputMethod::KeyEventDoneCallback callback) override;
+                  TextInputMethod::KeyEventDoneCallback callback) override;
   void OnReset(const std::string& engine_id) override;
   void OnDeactivated(const std::string& engine_id) override;
   void OnCompositionBoundsChanged(
diff --git a/chrome/browser/ash/input_method/native_input_method_engine_unittest.cc b/chrome/browser/ash/input_method/native_input_method_engine_unittest.cc
index 5040e908..f713764 100644
--- a/chrome/browser/ash/input_method/native_input_method_engine_unittest.cc
+++ b/chrome/browser/ash/input_method/native_input_method_engine_unittest.cc
@@ -460,7 +460,7 @@
 
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();  // ensure input_method connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
   engine.FlushForTesting();
 
   InputMethodManager::Shutdown();
@@ -505,7 +505,7 @@
 
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();  // ensure input_method connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
   engine.FlushForTesting();
 
   InputMethodManager::Get()->GetActiveIMEState()->SetUIStyle(
@@ -526,7 +526,7 @@
 
   engine.Enable(kEngineIdPinyin);
   engine.FlushForTesting();  // ensure input_method is connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
 
   EXPECT_EQ(InputMethodManager::Get()
                 ->GetImeKeyboard()
@@ -576,7 +576,7 @@
 
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();  // ensure input_method is connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
   engine.FlushForTesting();
 
   InputMethodManager::Shutdown();
@@ -623,7 +623,7 @@
 
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();  // ensure input_method is connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
   engine.FlushForTesting();
 
   InputMethodManager::Shutdown();
@@ -650,10 +650,10 @@
                     /*extension_id=*/"", &testing_profile);
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();  // ensure input_method is connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
   engine.FlushForTesting();
-  ui::MockIMEInputContextHandler mock_handler;
-  ui::IMEBridge::Get()->SetInputContextHandler(&mock_handler);
+  MockIMEInputContextHandler mock_handler;
+  IMEBridge::Get()->SetInputContextHandler(&mock_handler);
 
   mock_input_method.host->HandleAutocorrect(
       ime::mojom::AutocorrectSpan::New(gfx::Range(0, 3), u"teh", u"the"));
@@ -673,8 +673,8 @@
   testing::StrictMock<MockInputMethod> mock_input_method;
   InputMethodManager::Initialize(
       new TestInputMethodManager(&mock_input_method));
-  ui::MockIMEInputContextHandler mock_handler;
-  ui::IMEBridge::Get()->SetInputContextHandler(&mock_handler);
+  MockIMEInputContextHandler mock_handler;
+  IMEBridge::Get()->SetInputContextHandler(&mock_handler);
   NativeInputMethodEngine engine;
   engine.Initialize(std::make_unique<StubInputMethodEngineObserver>(),
                     /*extension_id=*/"", &testing_profile);
@@ -700,7 +700,7 @@
 
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();  // ensure input_method is connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
   // Each character in "你好" is one UTF-16 code unit.
   engine.SetSurroundingText(u"你好",
                             /*cursor_pos=*/2,
@@ -719,8 +719,8 @@
   testing::StrictMock<MockInputMethod> mock_input_method;
   InputMethodManager::Initialize(
       new TestInputMethodManager(&mock_input_method));
-  ui::MockIMEInputContextHandler mock_handler;
-  ui::IMEBridge::Get()->SetInputContextHandler(&mock_handler);
+  MockIMEInputContextHandler mock_handler;
+  IMEBridge::Get()->SetInputContextHandler(&mock_handler);
   NativeInputMethodEngine engine;
   engine.Initialize(std::make_unique<StubInputMethodEngineObserver>(),
                     /*extension_id=*/"", &testing_profile);
@@ -752,7 +752,7 @@
 
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();  // ensure input_method is connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
 
   // Quote ("VKEY_OEM_7") + A is a dead key combination.
   engine.ProcessKeyEvent(
@@ -780,8 +780,8 @@
   testing::StrictMock<MockInputMethod> mock_input_method;
   InputMethodManager::Initialize(
       new TestInputMethodManager(&mock_input_method));
-  ui::MockIMEInputContextHandler mock_handler;
-  ui::IMEBridge::Get()->SetInputContextHandler(&mock_handler);
+  MockIMEInputContextHandler mock_handler;
+  IMEBridge::Get()->SetInputContextHandler(&mock_handler);
   NativeInputMethodEngine engine;
   engine.Initialize(std::make_unique<StubInputMethodEngineObserver>(),
                     /*extension_id=*/"", &testing_profile);
@@ -814,7 +814,7 @@
 
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();  // ensure input_method is connected.
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
 
   // Enter and Backspace are named keys with Unicode representation.
   engine.ProcessKeyEvent(
@@ -842,8 +842,8 @@
   testing::StrictMock<MockInputMethod> mock_input_method;
   InputMethodManager::Initialize(
       new TestInputMethodManager(&mock_input_method));
-  ui::MockIMEInputContextHandler mock_handler;
-  ui::IMEBridge::Get()->SetInputContextHandler(&mock_handler);
+  MockIMEInputContextHandler mock_handler;
+  IMEBridge::Get()->SetInputContextHandler(&mock_handler);
   NativeInputMethodEngine engine;
   engine.Initialize(std::make_unique<StubInputMethodEngineObserver>(),
                     /*extension_id=*/"", &testing_profile);
@@ -862,7 +862,7 @@
   }
 
   engine.Enable(kEngineIdUs);
-  engine.Focus(ui::TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
+  engine.Focus(TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT));
 
   // Help is a named DOM key, but is not used by IMEs.
   engine.ProcessKeyEvent({ui::ET_KEY_PRESSED, ui::VKEY_HELP, ui::DomCode::HELP,
@@ -924,16 +924,16 @@
   NativeInputMethodEngine engine;
   engine.Initialize(std::make_unique<StubInputMethodEngineObserver>(),
                     /*extension_id=*/"", testing_profile);
-  ui::TextInputMethod::InputContext input_context(ui::TEXT_INPUT_TYPE_TEXT);
+  TextInputMethod::InputContext input_context(ui::TEXT_INPUT_TYPE_TEXT);
   engine.Enable(kEngineIdUs);
   engine.FlushForTesting();
 
   ui::FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   fake_text_input_client.set_source_id(main_rfh()->GetPageUkmSourceId());
 
-  ui::InputMethodAsh ime(nullptr);
+  InputMethodAsh ime(nullptr);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
-  ui::IMEBridge::Get()->SetInputContextHandler(&ime);
+  IMEBridge::Get()->SetInputContextHandler(&ime);
 
   ukm::TestAutoSetUkmRecorder test_recorder;
   test_recorder.UpdateRecording(
@@ -974,9 +974,9 @@
   ui::FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   fake_text_input_client.set_source_id(main_rfh()->GetPageUkmSourceId());
 
-  ui::InputMethodAsh ime(nullptr);
+  InputMethodAsh ime(nullptr);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
-  ui::IMEBridge::Get()->SetInputContextHandler(&ime);
+  IMEBridge::Get()->SetInputContextHandler(&ime);
 
   ukm::TestAutoSetUkmRecorder test_recorder;
   test_recorder.UpdateRecording(
diff --git a/chrome/browser/ash/input_method/native_input_method_engine_with_ime_service_browsertest.cc b/chrome/browser/ash/input_method/native_input_method_engine_with_ime_service_browsertest.cc
index 0f2db98..95f90f7 100644
--- a/chrome/browser/ash/input_method/native_input_method_engine_with_ime_service_browsertest.cc
+++ b/chrome/browser/ash/input_method/native_input_method_engine_with_ime_service_browsertest.cc
@@ -18,6 +18,7 @@
 
 namespace ash {
 namespace input_method {
+
 namespace {
 
 class TestObserver : public StubInputMethodEngineObserver {
@@ -29,14 +30,14 @@
 
   void OnKeyEvent(const std::string& engine_id,
                   const ui::KeyEvent& event,
-                  ui::TextInputMethod::KeyEventDoneCallback callback) override {
+                  TextInputMethod::KeyEventDoneCallback callback) override {
     std::move(callback).Run(ui::ime::KeyEventHandledState::kNotHandled);
   }
 };
 
 class KeyProcessingWaiter {
  public:
-  ui::TextInputMethod::KeyEventDoneCallback CreateCallback() {
+  TextInputMethod::KeyEventDoneCallback CreateCallback() {
     return base::BindOnce(&KeyProcessingWaiter::OnKeyEventDone,
                           base::Unretained(this));
   }
@@ -78,8 +79,8 @@
     // TODO(crbug/1197005): Migrate to Tast to avoid reliance on delicate luck.
     engine_ =
         NativeInputMethodEngine::CreateForTesting(/*use_ime_service=*/true);
-    ui::IMEBridge::Get()->SetInputContextHandler(&input_method_);
-    ui::IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
+    IMEBridge::Get()->SetInputContextHandler(&input_method_);
+    IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
 
     auto observer = std::make_unique<TestObserver>();
     Profile* profile = browser()->profile();
@@ -95,8 +96,8 @@
     // observes ChromeKeyboardControllerClient, which is tied to the browser
     // lifetime.
     engine_.reset();
-    ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
-    ui::IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
+    IMEBridge::Get()->SetInputContextHandler(nullptr);
+    IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
     InProcessBrowserTest::TearDownOnMainThread();
   }
 
@@ -129,7 +130,7 @@
   std::unique_ptr<NativeInputMethodEngine> engine_;
 
  private:
-  ui::InputMethodAsh input_method_;
+  InputMethodAsh input_method_;
 };
 
 // ID is specified in google_xkb_manifest.json.
diff --git a/chrome/browser/ash/input_method/native_input_method_engine_without_ime_service_browsertest.cc b/chrome/browser/ash/input_method/native_input_method_engine_without_ime_service_browsertest.cc
index b176e280..62b2bfc 100644
--- a/chrome/browser/ash/input_method/native_input_method_engine_without_ime_service_browsertest.cc
+++ b/chrome/browser/ash/input_method/native_input_method_engine_without_ime_service_browsertest.cc
@@ -49,6 +49,7 @@
 
 namespace ash {
 namespace input_method {
+
 namespace {
 
 constexpr char kEmojiData[] = "happy,😀;😃;😄";
@@ -62,7 +63,7 @@
 
   void OnKeyEvent(const std::string& engine_id,
                   const ui::KeyEvent& event,
-                  ui::TextInputMethod::KeyEventDoneCallback callback) override {
+                  TextInputMethod::KeyEventDoneCallback callback) override {
     std::move(callback).Run(ui::ime::KeyEventHandledState::kNotHandled);
   }
   void OnInputMethodOptionsChanged(const std::string& engine_id) override {
@@ -99,7 +100,7 @@
 
 class KeyProcessingWaiter {
  public:
-  ui::TextInputMethod::KeyEventDoneCallback CreateCallback() {
+  TextInputMethod::KeyEventDoneCallback CreateCallback() {
     return base::BindOnce(&KeyProcessingWaiter::OnKeyEventDone,
                           base::Unretained(this));
   }
@@ -144,8 +145,8 @@
     // so just avoid it outright instead of relying on implicit luck.
     engine_ =
         NativeInputMethodEngine::CreateForTesting(/*use_ime_service=*/false);
-    ui::IMEBridge::Get()->SetInputContextHandler(&input_method_);
-    ui::IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
+    IMEBridge::Get()->SetInputContextHandler(&input_method_);
+    IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
 
     auto observer = std::make_unique<TestObserver>();
     observer_ = observer.get();
@@ -171,8 +172,8 @@
     // observes ChromeKeyboardControllerClient, which is tied to the browser
     // lifetime.
     engine_.reset();
-    ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
-    ui::IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
+    IMEBridge::Get()->SetInputContextHandler(nullptr);
+    IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
     InProcessBrowserTest::TearDownOnMainThread();
   }
 
@@ -235,7 +236,7 @@
   TestObserver* observer_;
 
  private:
-  ui::InputMethodAsh input_method_;
+  InputMethodAsh input_method_;
   base::test::ScopedFeatureList feature_list_;
 };
 
@@ -283,8 +284,8 @@
 
 IN_PROC_BROWSER_TEST_F(NativeInputMethodEngineWithoutImeServiceTest,
                        DoesntSuggestWhenTheCursorIsWithinGrammarError) {
-  ui::MockIMEInputContextHandler mock_ime_input_context_handler;
-  ui::IMEBridge::Get()->SetInputContextHandler(&mock_ime_input_context_handler);
+  MockIMEInputContextHandler mock_ime_input_context_handler;
+  IMEBridge::Get()->SetInputContextHandler(&mock_ime_input_context_handler);
 
   base::HistogramTester histogram_tester;
 
@@ -316,8 +317,8 @@
 
 IN_PROC_BROWSER_TEST_F(NativeInputMethodEngineWithoutImeServiceTest,
                        SuggestsWhenTheCursorIsOutsideGrammarError) {
-  ui::MockIMEInputContextHandler mock_ime_input_context_handler;
-  ui::IMEBridge::Get()->SetInputContextHandler(&mock_ime_input_context_handler);
+  MockIMEInputContextHandler mock_ime_input_context_handler;
+  IMEBridge::Get()->SetInputContextHandler(&mock_ime_input_context_handler);
 
   mock_ime_input_context_handler.AddGrammarFragments(
       {ui::GrammarFragment(gfx::Range(0, 5), "test")});
@@ -676,7 +677,7 @@
   engine_->OnAutocorrect(u"typed", u"corrected", 0);
 
   auto* controller =
-      ((AssistiveWindowController*)(ui::IMEBridge::Get()
+      ((AssistiveWindowController*)(IMEBridge::Get()
                                         ->GetAssistiveWindowHandler()));
 
   EXPECT_FALSE(controller->GetUndoWindowForTesting());
@@ -702,7 +703,7 @@
       corrected_text,
       ui::TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
   helper.WaitForSurroundingTextChanged(corrected_text);
-  EXPECT_EQ(ui::IMEBridge::Get()
+  EXPECT_EQ(IMEBridge::Get()
                 ->GetInputContextHandler()
                 ->GetSurroundingTextInfo()
                 .surrounding_text,
@@ -722,7 +723,7 @@
 
   helper.WaitForSurroundingTextChanged(typed_text);
 
-  EXPECT_EQ(ui::IMEBridge::Get()
+  EXPECT_EQ(IMEBridge::Get()
                 ->GetInputContextHandler()
                 ->GetSurroundingTextInfo()
                 .surrounding_text,
@@ -743,7 +744,7 @@
       corrected_text,
       ui::TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
   helper.WaitForSurroundingTextChanged(corrected_text);
-  EXPECT_EQ(ui::IMEBridge::Get()
+  EXPECT_EQ(IMEBridge::Get()
                 ->GetInputContextHandler()
                 ->GetSurroundingTextInfo()
                 .surrounding_text,
@@ -762,7 +763,7 @@
 
   helper.WaitForSurroundingTextChanged(typed_text);
 
-  EXPECT_EQ(ui::IMEBridge::Get()
+  EXPECT_EQ(IMEBridge::Get()
                 ->GetInputContextHandler()
                 ->GetSurroundingTextInfo()
                 .surrounding_text,
@@ -784,7 +785,7 @@
       corrected_text,
       ui::TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
   helper.WaitForSurroundingTextChanged(corrected_text);
-  EXPECT_EQ(ui::IMEBridge::Get()
+  EXPECT_EQ(IMEBridge::Get()
                 ->GetInputContextHandler()
                 ->GetSurroundingTextInfo()
                 .surrounding_text,
@@ -849,7 +850,7 @@
   // enabled via above ChangeInputMethod step) is effectively ignored.
   // TODO(crbug/1197005): Migrate to unit tests to avoid all such weirdness.
   engine_->Enable(input_method_id);
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
+  IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
 
   TextInputTestHelper helper(GetBrowserInputMethod());
   SetUpTextInput(helper);
@@ -859,7 +860,7 @@
       corrected_text,
       ui::TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
   helper.WaitForSurroundingTextChanged(corrected_text);
-  EXPECT_EQ(ui::IMEBridge::Get()
+  EXPECT_EQ(IMEBridge::Get()
                 ->GetInputContextHandler()
                 ->GetSurroundingTextInfo()
                 .surrounding_text,
@@ -946,7 +947,7 @@
   // enabled via above ChangeInputMethod step) is effectively ignored.
   // TODO(crbug/1197005): Migrate to unit tests to avoid all such weirdness.
   engine_->Enable(input_method_id);
-  ui::IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
+  IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
 
   TextInputTestHelper helper(GetBrowserInputMethod());
   SetUpTextInput(helper);
@@ -956,7 +957,7 @@
       corrected_text,
       ui::TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
   helper.WaitForSurroundingTextChanged(corrected_text);
-  EXPECT_EQ(ui::IMEBridge::Get()
+  EXPECT_EQ(IMEBridge::Get()
                 ->GetInputContextHandler()
                 ->GetSurroundingTextInfo()
                 .surrounding_text,
@@ -1038,7 +1039,7 @@
     // so just avoid it outright instead of relying on implicit luck.
     engine_ =
         NativeInputMethodEngine::CreateForTesting(/*use_ime_service=*/false);
-    ui::IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
+    IMEBridge::Get()->SetCurrentEngineHandler(engine_.get());
 
     auto observer = std::make_unique<TestObserver>();
     observer_ = observer.get();
@@ -1053,8 +1054,8 @@
     // observes ChromeKeyboardControllerClient, which is tied to the browser
     // lifetime.
     engine_.reset();
-    ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
-    ui::IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
+    IMEBridge::Get()->SetInputContextHandler(nullptr);
+    IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
     InProcessBrowserTest::TearDownOnMainThread();
   }
 
diff --git a/chrome/browser/ash/input_method/stub_input_method_engine_observer.h b/chrome/browser/ash/input_method/stub_input_method_engine_observer.h
index e54ec73b..4f54ec31 100644
--- a/chrome/browser/ash/input_method/stub_input_method_engine_observer.h
+++ b/chrome/browser/ash/input_method/stub_input_method_engine_observer.h
@@ -22,13 +22,12 @@
   void OnDeactivated(const std::string& engine_id) override {}
   void OnFocus(const std::string& engine_id,
                int context_id,
-               const ui::TextInputMethod::InputContext& context) override {}
+               const TextInputMethod::InputContext& context) override {}
   void OnTouch(ui::EventPointerType pointerType) override {}
   void OnBlur(const std::string& engine_id, int context_id) override {}
   void OnKeyEvent(const std::string& engine_id,
                   const ui::KeyEvent& event,
-                  ui::TextInputMethod::KeyEventDoneCallback callback) override {
-  }
+                  TextInputMethod::KeyEventDoneCallback callback) override {}
   void OnCandidateClicked(const std::string& engine_id,
                           int candidate_id,
                           MouseButtonEvent button) override {}
diff --git a/chrome/browser/ash/policy/core/device_policy_decoder.cc b/chrome/browser/ash/policy/core/device_policy_decoder.cc
index 63e2f0c..3771fc4 100644
--- a/chrome/browser/ash/policy/core/device_policy_decoder.cc
+++ b/chrome/browser/ash/policy/core/device_policy_decoder.cc
@@ -419,6 +419,16 @@
                   nullptr);
   }
 
+  if (policy.has_login_screen_extension_manifest_v2_availability()) {
+    const em::LoginScreenExtensionManifestV2AvailabilityProto& proto(
+        policy.login_screen_extension_manifest_v2_availability());
+    policies->Set(
+        key::kDeviceLoginScreenExtensionManifestV2Availability,
+        POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_CLOUD,
+        base::Value(proto.login_screen_extension_manifest_v2_availability()),
+        nullptr);
+  }
+
   if (policy.has_login_screen_power_management()) {
     const em::LoginScreenPowerManagementProto& container(
         policy.login_screen_power_management());
diff --git a/chrome/browser/ash/policy/login/login_profile_policy_provider.cc b/chrome/browser/ash/policy/login/login_profile_policy_provider.cc
index f812fb6..c1190b7 100644
--- a/chrome/browser/ash/policy/login/login_profile_policy_provider.cc
+++ b/chrome/browser/ash/policy/login/login_profile_policy_provider.cc
@@ -68,6 +68,8 @@
     {key::kDeviceLoginScreenWebUsbAllowDevicesForUrls,
      key::kWebUsbAllowDevicesForUrls},
     {key::kDeviceLoginScreenExtensions, key::kExtensionInstallForcelist},
+    {key::kDeviceLoginScreenExtensionManifestV2Availability,
+     key::kExtensionManifestV2Availability},
     {key::kDeviceLoginScreenPromptOnMultipleMatchingCertificates,
      key::kPromptOnMultipleMatchingCertificates},
     {key::kDeviceLoginScreenContextAwareAccessSignalsAllowlist,
diff --git a/chrome/browser/ash/preferences.cc b/chrome/browser/ash/preferences.cc
index 0adcab78..7820c3a1 100644
--- a/chrome/browser/ash/preferences.cc
+++ b/chrome/browser/ash/preferences.cc
@@ -465,6 +465,10 @@
 
   registry->RegisterBooleanPref(::prefs::kHatsGeneralCameraIsSelected, false);
 
+  registry->RegisterInt64Pref(::prefs::kHatsBluetoothRevampCycleEndTs, 0);
+
+  registry->RegisterBooleanPref(::prefs::kHatsBluetoothRevampIsSelected, false);
+
   // Personalization HaTS survey prefs for avatar, screensaver, and wallpaper
   // features.
   registry->RegisterInt64Pref(
diff --git a/chrome/browser/ash/preferences_unittest.cc b/chrome/browser/ash/preferences_unittest.cc
index 94415bc..3975ba9e 100644
--- a/chrome/browser/ash/preferences_unittest.cc
+++ b/chrome/browser/ash/preferences_unittest.cc
@@ -102,7 +102,7 @@
 
     void AddInputMethodExtension(const std::string& id,
                                  const InputMethodDescriptors& descriptors,
-                                 ui::TextInputMethod* instance) override {
+                                 TextInputMethod* instance) override {
       InputMethodDescriptor descriptor(
           id, std::string(), std::string(), std::string(),
           std::vector<std::string>(), false, GURL(), GURL());
diff --git a/chrome/browser/browsing_data/cookies_tree_model.cc b/chrome/browser/browsing_data/cookies_tree_model.cc
index ab228ac..3d103e4 100644
--- a/chrome/browser/browsing_data/cookies_tree_model.cc
+++ b/chrome/browser/browsing_data/cookies_tree_model.cc
@@ -759,7 +759,7 @@
           AccessContextAuditDatabase::StorageAPIType::kCacheStorage);
 
       container->cache_storage_helper_->DeleteCacheStorage(
-          usage_info_->storage_key.origin());
+          usage_info_->storage_key);
       container->cache_storage_info_list_.erase(usage_info_);
     }
   }
diff --git a/chrome/browser/component_updater/recovery_component_installer.cc b/chrome/browser/component_updater/recovery_component_installer.cc
index c34e116..ce43238 100644
--- a/chrome/browser/component_updater/recovery_component_installer.cc
+++ b/chrome/browser/component_updater/recovery_component_installer.cc
@@ -203,8 +203,8 @@
   options.elevated = true;
   base::Process process = base::LaunchProcess(cmdline, options);
 #elif BUILDFLAG(IS_MAC)
-  base::mac::ScopedAuthorizationRef authRef(
-      base::mac::AuthorizationCreateToRunAsRoot(nullptr));
+  base::mac::ScopedAuthorizationRef authRef =
+      base::mac::AuthorizationCreateToRunAsRoot(nullptr);
   if (!authRef.get()) {
     RecordRecoveryComponentUMAEvent(RCE_ELEVATED_FAILED);
     return;
diff --git a/chrome/browser/extensions/api/input_ime/input_ime_api.cc b/chrome/browser/extensions/api/input_ime/input_ime_api.cc
index bedd8456..6aeb57c2 100644
--- a/chrome/browser/extensions/api/input_ime/input_ime_api.cc
+++ b/chrome/browser/extensions/api/input_ime/input_ime_api.cc
@@ -50,7 +50,7 @@
   const auto key_code = static_cast<ui::KeyboardCode>(
       event.key_code && *event.key_code != ui::VKEY_UNKNOWN
           ? *event.key_code
-          : ui::DomKeycodeToKeyboardCode(event.code));
+          : ash::DomKeycodeToKeyboardCode(event.code));
 
   int flags = ui::EF_NONE;
   flags |= event.alt_key && *event.alt_key ? ui::EF_ALT_DOWN : ui::EF_NONE;
diff --git a/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc b/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
index 6f063e2..96bc0415 100644
--- a/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
+++ b/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
@@ -60,8 +60,8 @@
 namespace FinishComposingText =
     extensions::api::input_method_private::FinishComposingText;
 
+using ::ash::TextInputMethod;
 using ::ash::input_method::InputMethodEngine;
-using ::ui::TextInputMethod;
 
 const char kErrorEngineNotAvailable[] = "The engine is not available.";
 const char kErrorSetMenuItemsFail[] = "Could not create menu items.";
@@ -214,12 +214,11 @@
 
 // TODO(b/247441188): Change the input extension JS API to use
 // PersonalizationMode instead of a bool.
-bool ConvertPersonalizationMode(
-    const ui::TextInputMethod::InputContext& context) {
+bool ConvertPersonalizationMode(const TextInputMethod::InputContext& context) {
   switch (context.personalization_mode) {
-    case ui::PersonalizationMode::kEnabled:
+    case ash::PersonalizationMode::kEnabled:
       return true;
-    case ui::PersonalizationMode::kDisabled:
+    case ash::PersonalizationMode::kDisabled:
       return false;
   }
 }
@@ -373,7 +372,7 @@
 
     keyboard_event.key = GetKeyFromEvent(event);
     keyboard_event.code = event.code() == ui::DomCode::NONE
-                              ? ui::KeyboardCodeToDomKeycode(event.key_code())
+                              ? ash::KeyboardCodeToDomKeycode(event.key_code())
                               : event.GetCodeString();
     keyboard_event.alt_key = event.IsAltDown();
     keyboard_event.altgr_key = event.IsAltGrDown();
@@ -713,7 +712,7 @@
   }
 
   std::string ConvertInputContextFocusReason(
-      ui::TextInputMethod::InputContext input_context) {
+      TextInputMethod::InputContext input_context) {
     switch (input_context.focus_reason) {
       case ui::TextInputClient::FOCUS_REASON_NONE:
         return "";
@@ -728,23 +727,23 @@
     }
   }
 
-  bool ConvertInputContextAutoCorrect(ui::AutocorrectionMode mode) {
+  bool ConvertInputContextAutoCorrect(ash::AutocorrectionMode mode) {
     return GetKeyboardConfig().auto_correct &&
-           mode != ui::AutocorrectionMode::kDisabled;
+           mode != ash::AutocorrectionMode::kDisabled;
   }
 
-  bool ConvertInputContextAutoComplete(ui::AutocompletionMode mode) {
+  bool ConvertInputContextAutoComplete(ash::AutocompletionMode mode) {
     return GetKeyboardConfig().auto_complete &&
-           mode != ui::AutocompletionMode::kDisabled;
+           mode != ash::AutocompletionMode::kDisabled;
   }
 
   input_method_private::AutoCapitalizeType
-  ConvertInputContextAutoCapitalizePrivate(ui::AutocapitalizationMode mode) {
+  ConvertInputContextAutoCapitalizePrivate(ash::AutocapitalizationMode mode) {
     if (!GetKeyboardConfig().auto_capitalize)
       return input_method_private::AUTO_CAPITALIZE_TYPE_OFF;
 
     switch (mode) {
-      case ui::AutocapitalizationMode::kUnspecified:
+      case ash::AutocapitalizationMode::kUnspecified:
         // Autocapitalize flag may be missing for native text fields,
         // crbug/1002713. As a safe default, use
         // input_method_private::AUTO_CAPITALIZE_TYPE_OFF
@@ -755,24 +754,24 @@
         // API specifies a non-falsy AutoCapitalizeType enum for
         // InputContext.autoCapitalize.
         return input_method_private::AUTO_CAPITALIZE_TYPE_OFF;
-      case ui::AutocapitalizationMode::kNone:
+      case ash::AutocapitalizationMode::kNone:
         return input_method_private::AUTO_CAPITALIZE_TYPE_OFF;
-      case ui::AutocapitalizationMode::kCharacters:
+      case ash::AutocapitalizationMode::kCharacters:
         return input_method_private::AUTO_CAPITALIZE_TYPE_CHARACTERS;
-      case ui::AutocapitalizationMode::kWords:
+      case ash::AutocapitalizationMode::kWords:
         return input_method_private::AUTO_CAPITALIZE_TYPE_WORDS;
-      case ui::AutocapitalizationMode::kSentences:
+      case ash::AutocapitalizationMode::kSentences:
         return input_method_private::AUTO_CAPITALIZE_TYPE_SENTENCES;
     }
   }
 
-  bool ConvertInputContextSpellCheck(ui::SpellcheckMode mode) {
+  bool ConvertInputContextSpellCheck(ash::SpellcheckMode mode) {
     return GetKeyboardConfig().spell_check &&
-           mode != ui::SpellcheckMode::kDisabled;
+           mode != ash::SpellcheckMode::kDisabled;
   }
 
   std::string ConvertInputContextMode(
-      ui::TextInputMethod::InputContext input_context) {
+      TextInputMethod::InputContext input_context) {
     std::string input_mode_type = "none";  // default to nothing
     switch (input_context.mode) {
       case ui::TEXT_INPUT_MODE_SEARCH:
@@ -807,7 +806,7 @@
   }
 
   std::string ConvertInputContextType(
-      ui::TextInputMethod::InputContext input_context) {
+      TextInputMethod::InputContext input_context) {
     std::string input_context_type = "text";
     switch (input_context.type) {
       case ui::TEXT_INPUT_TYPE_SEARCH:
@@ -839,7 +838,7 @@
   }
 
   input_ime::AutoCapitalizeType ConvertInputContextAutoCapitalizePublic(
-      ui::AutocapitalizationMode mode) {
+      ash::AutocapitalizationMode mode) {
     // NOTE: ui::TEXT_INPUT_FLAG_AUTOCAPITALIZE_NONE corresponds to Blink's
     // "none" that's a synonym for "off", while
     // input_ime::AUTO_CAPITALIZE_TYPE_NONE auto-generated via API specs means
@@ -848,15 +847,15 @@
     // bug here; either this impl or the API needs fixing. However, as a public
     // API, the behaviour is left intact for now.
     switch (mode) {
-      case ui::AutocapitalizationMode::kNone:
+      case ash::AutocapitalizationMode::kNone:
         return input_ime::AUTO_CAPITALIZE_TYPE_NONE;
-      case ui::AutocapitalizationMode::kCharacters:
+      case ash::AutocapitalizationMode::kCharacters:
         return input_ime::AUTO_CAPITALIZE_TYPE_CHARACTERS;
-      case ui::AutocapitalizationMode::kWords:
+      case ash::AutocapitalizationMode::kWords:
         return input_ime::AUTO_CAPITALIZE_TYPE_WORDS;
-      case ui::AutocapitalizationMode::kSentences:
+      case ash::AutocapitalizationMode::kSentences:
         return input_ime::AUTO_CAPITALIZE_TYPE_SENTENCES;
-      case ui::AutocapitalizationMode::kUnspecified:
+      case ash::AutocapitalizationMode::kUnspecified:
         // The default value is "sentences".
         return input_ime::AUTO_CAPITALIZE_TYPE_SENTENCES;
     }
diff --git a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc b/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
index a9c3e95..57c4c352 100644
--- a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
+++ b/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
@@ -75,7 +75,7 @@
 // Returns the ui::TextInputClient of the active InputMethod or nullptr.
 ui::TextInputClient* GetFocusedTextInputClient() {
   ui::InputMethod* input_method =
-      ui::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
+      ash::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
   if (!input_method)
     return nullptr;
 
diff --git a/chrome/browser/mac/install_from_dmg.mm b/chrome/browser/mac/install_from_dmg.mm
index 8fc31a1..f593f0e6 100644
--- a/chrome/browser/mac/install_from_dmg.mm
+++ b/chrome/browser/mac/install_from_dmg.mm
@@ -311,16 +311,17 @@
   return result == NSAlertFirstButtonReturn;
 }
 
-// Potentially shows an authorization dialog to request authentication to
-// copy.  If application_directory appears to be unwritable, attempts to
-// obtain authorization, which may result in the display of the dialog.
-// Returns NULL if authorization is not performed because it does not appear
-// to be necessary because the user has permission to write to
-// application_directory.  Returns NULL if authorization fails.
-AuthorizationRef MaybeShowAuthorizationDialog(NSString* application_directory) {
-  NSFileManager* file_manager = [NSFileManager defaultManager];
-  if ([file_manager isWritableFileAtPath:application_directory]) {
-    return NULL;
+// Potentially shows an authorization dialog to request authentication to copy.
+// If application_directory appears to be unwritable, attempts to obtain
+// authorization, which may result in the display of the dialog. Returns null if
+// authorization is not performed because it does not appear to be necessary
+// because the user has permission to write to application_directory. Returns
+// null if authorization fails.
+base::mac::ScopedAuthorizationRef MaybeShowAuthorizationDialog(
+    NSString* application_directory) {
+  if ([NSFileManager.defaultManager
+          isWritableFileAtPath:application_directory]) {
+    return base::mac::ScopedAuthorizationRef();
   }
 
   NSString* prompt = l10n_util::GetNSStringFWithFixup(
@@ -387,7 +388,7 @@
     // ticket.  Inform KeystoneGlue of the new path to use.
     KeystoneGlue* keystone_glue = [KeystoneGlue defaultKeystoneGlue];
     [keystone_glue setAppPath:target_path];
-    [keystone_glue promoteTicketWithAuthorization:authorization.release()
+    [keystone_glue promoteTicketWithAuthorization:std::move(authorization)
                                       synchronous:YES];
   }
 
@@ -503,9 +504,9 @@
       return false;
     }
 
-    base::mac::ScopedAuthorizationRef authorization(
-        MaybeShowAuthorizationDialog(application_directory));
-    // authorization will be NULL if it's deemed unnecessary or if
+    base::mac::ScopedAuthorizationRef authorization =
+        MaybeShowAuthorizationDialog(application_directory);
+    // `authorization` will be null if it's deemed unnecessary or if
     // authentication fails.  In either case, try to install without privilege
     // escalation.
 
diff --git a/chrome/browser/mac/keystone_glue.h b/chrome/browser/mac/keystone_glue.h
index d8d1744..c3b9370 100644
--- a/chrome/browser/mac/keystone_glue.h
+++ b/chrome/browser/mac/keystone_glue.h
@@ -160,9 +160,9 @@
 // Promotes the Keystone ticket into the system store.  System Keystone will
 // be installed if necessary.  If synchronous is NO, the promotion may occur
 // in the background.  synchronous should be YES for promotion during
-// installation. The KeystoneGlue object assumes ownership of
-// |anAuthorization|.
-- (void)promoteTicketWithAuthorization:(AuthorizationRef)anAuthorization
+// installation.
+- (void)promoteTicketWithAuthorization:
+            (base::mac::ScopedAuthorizationRef)authorization
                            synchronous:(BOOL)synchronous;
 
 // Requests authorization and calls -promoteTicketWithAuthorization: in
diff --git a/chrome/browser/mac/keystone_glue.mm b/chrome/browser/mac/keystone_glue.mm
index 6fc69ab..727888c 100644
--- a/chrome/browser/mac/keystone_glue.mm
+++ b/chrome/browser/mac/keystone_glue.mm
@@ -8,6 +8,7 @@
 #include <sys/param.h>
 #include <sys/stat.h>
 
+#include <utility>
 #include <vector>
 
 #include "base/bind.h"
@@ -901,23 +902,20 @@
   NSString* prompt = l10n_util::GetNSStringFWithFixup(
       IDS_PROMOTE_AUTHENTICATION_PROMPT,
       l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
-  base::mac::ScopedAuthorizationRef authorization(
-      base::mac::AuthorizationCreateToRunAsRoot(
-          base::mac::NSToCFCast(prompt)));
+  base::mac::ScopedAuthorizationRef authorization =
+      base::mac::AuthorizationCreateToRunAsRoot(base::mac::NSToCFCast(prompt));
   if (!authorization.get()) {
     return;
   }
 
-  [self promoteTicketWithAuthorization:authorization.release() synchronous:NO];
+  [self promoteTicketWithAuthorization:std::move(authorization) synchronous:NO];
 }
 
-- (void)promoteTicketWithAuthorization:(AuthorizationRef)anAuthorization
+- (void)promoteTicketWithAuthorization:
+            (base::mac::ScopedAuthorizationRef)authorization
                            synchronous:(BOOL)synchronous {
   DCHECK(_registration);
 
-  base::mac::ScopedAuthorizationRef authorization(anAuthorization);
-  anAuthorization = nullptr;
-
   if ([self asyncOperationPending]) {
     // Starting a synchronous operation while an asynchronous one is pending
     // could be trouble.
@@ -971,12 +969,8 @@
 
   int exit_status;
   OSStatus status = base::mac::ExecuteWithPrivilegesAndWait(
-      authorization,
-      preflightPathC,
-      kAuthorizationFlagDefaults,
-      arguments,
-      NULL,  // pipe
-      &exit_status);
+      authorization, preflightPathC, kAuthorizationFlagDefaults, arguments,
+      /*pipe=*/nullptr, &exit_status);
   if (status != errAuthorizationSuccess) {
     // It's possible to get an OS-provided error string for this return code
     // using base::mac::DescriptionFromOSStatus, but most of those strings are
@@ -1001,7 +995,7 @@
   // complete.  Do this before asking Keystone to promote the ticket, because
   // -promotionComplete: may be called from inside the Keystone promotion
   // call.
-  _authorization.swap(authorization);
+  _authorization = std::move(authorization);
 
   NSDictionary* parameters = [self keystoneParameters];
 
diff --git a/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc b/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc
index ed8e70d..e7730a07c 100644
--- a/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc
+++ b/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <wrl/client.h>
+#include <wrl/implements.h>
+
 #include <memory>
 #include <set>
 #include <string>
 #include <vector>
 
-#include <wrl/client.h>
-#include <wrl/implements.h>
-
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/files/file_path.h"
@@ -22,7 +22,6 @@
 #include "base/test/bind.h"
 #include "base/threading/thread_restrictions.h"
 #include "base/win/scoped_hstring.h"
-#include "base/win/windows_version.h"
 #include "build/build_config.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
@@ -52,12 +51,6 @@
 const char kLaunchIdSettings[] =
     "2|0|Default|0|https://example.com/|notification_id";
 
-// Windows native notification have a dependency on WinRT (Win 8+) and the
-// built in Notification Center. Although native notifications in Chrome are
-// only available in Win 10+ we keep the minimum test coverage at Win 8 in case
-// we decide to backport.
-constexpr base::win::Version kMinimumWindowsVersion = base::win::Version::WIN8;
-
 Profile* CreateTestingProfile(const base::FilePath& path) {
   base::ScopedAllowBlockingForTesting allow_blocking;
   ProfileManager* profile_manager = g_browser_process->profile_manager();
@@ -225,9 +218,6 @@
 };
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, HandleEvent) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   const wchar_t kXmlDoc[] =
       LR"(<toast launch="0|0|Default|0|https://example.com/|notification_id">
  <visual>
@@ -269,9 +259,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, HandleActivation) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   base::RunLoop run_loop;
   display_service_tester_->SetProcessNotificationOperationDelegate(
       base::BindRepeating(&NotificationPlatformBridgeWinUITest::HandleOperation,
@@ -296,9 +283,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, HandleSettings) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   const wchar_t kXmlDoc[] =
       LR"(<toast launch="0|0|Default|0|https://example.com/|notification_id">
  <visual>
@@ -340,9 +324,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, HandleClose) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   base::RunLoop run_loop;
   display_service_tester_->SetProcessNotificationOperationDelegate(
       base::BindRepeating(&NotificationPlatformBridgeWinUITest::HandleOperation,
@@ -367,9 +348,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, GetDisplayed) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   NotificationPlatformBridgeWin* bridge = GetBridge();
   ASSERT_TRUE(bridge);
 
@@ -462,9 +440,6 @@
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest,
                        SynchronizeNotifications) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   NotificationPlatformBridgeWin* bridge = GetBridge();
   ASSERT_TRUE(bridge);
 
@@ -524,9 +499,6 @@
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest,
                        SynchronizeNotificationsAfterClose) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   NotificationPlatformBridgeWin* bridge = GetBridge();
   ASSERT_TRUE(bridge);
   FakeIToastNotifier notifier;
@@ -572,9 +544,6 @@
 // Test calling Display with a fake implementation of the Action Center
 // and validate it gets the values expected.
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, DisplayWithFakeAC) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   NotificationPlatformBridgeWin* bridge = GetBridge();
   ASSERT_TRUE(bridge);
 
@@ -608,9 +577,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, CmdLineClick) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   ASSERT_NO_FATAL_FAILURE(ProcessLaunchIdViaCmdLine(kLaunchId, /*reply=*/""));
 
   // Validate the click values.
@@ -625,9 +591,6 @@
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest,
                        CmdLineInlineReply) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   ASSERT_NO_FATAL_FAILURE(
       ProcessLaunchIdViaCmdLine(kLaunchIdButtonClick, "Inline reply"));
 
@@ -642,9 +605,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, CmdLineButton) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   ASSERT_NO_FATAL_FAILURE(
       ProcessLaunchIdViaCmdLine(kLaunchIdButtonClick, /*reply=*/""));
 
@@ -659,9 +619,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, CmdLineSettings) {
-  if (base::win::GetVersion() < kMinimumWindowsVersion)
-    return;
-
   ASSERT_NO_FATAL_FAILURE(
       ProcessLaunchIdViaCmdLine(kLaunchIdSettings, /*reply=*/""));
 
diff --git a/chrome/browser/notifications/notification_platform_bridge_win_unittest.cc b/chrome/browser/notifications/notification_platform_bridge_win_unittest.cc
index 67daf01..c9959981 100644
--- a/chrome/browser/notifications/notification_platform_bridge_win_unittest.cc
+++ b/chrome/browser/notifications/notification_platform_bridge_win_unittest.cc
@@ -4,22 +4,21 @@
 
 #include "chrome/browser/notifications/notification_platform_bridge_win.h"
 
+#include <windows.ui.notifications.h>
+#include <wrl/client.h>
+#include <wrl/implements.h>
+
 #include <memory>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include <windows.ui.notifications.h>
-#include <wrl/client.h>
-#include <wrl/implements.h>
-
 #include "base/hash/hash.h"
 #include "base/logging.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/win/scoped_com_initializer.h"
 #include "base/win/scoped_hstring.h"
-#include "base/win/windows_version.h"
 #include "chrome/browser/notifications/notification_common.h"
 #include "chrome/browser/notifications/win/fake_itoastnotification.h"
 #include "chrome/browser/notifications/win/fake_notification_image_retainer.h"
@@ -98,11 +97,6 @@
 };
 
 TEST_F(NotificationPlatformBridgeWinTest, GroupAndTag) {
-  // This test requires WinRT core functions, which are not available in
-  // older versions of Windows.
-  if (base::win::GetVersion() < base::win::Version::WIN8)
-    return;
-
   base::win::ScopedCOMInitializer com_initializer;
 
   NotificationPlatformBridgeWin bridge;
@@ -134,11 +128,6 @@
 }
 
 TEST_F(NotificationPlatformBridgeWinTest, GroupAndTagUniqueness) {
-  // This test requires WinRT core functions, which are not available in
-  // older versions of Windows.
-  if (base::win::GetVersion() < base::win::Version::WIN8)
-    return;
-
   base::win::ScopedCOMInitializer com_initializer;
 
   NotificationPlatformBridgeWin bridge;
@@ -213,11 +202,6 @@
 }
 
 TEST_F(NotificationPlatformBridgeWinTest, Suppress) {
-  // This test requires WinRT core functions, which are not available in
-  // older versions of Windows.
-  if (base::win::GetVersion() < base::win::Version::WIN8)
-    return;
-
   base::win::ScopedCOMInitializer com_initializer;
 
   NotificationPlatformBridgeWin bridge;
diff --git a/chrome/browser/notifications/win/notification_helper_launches_chrome_unittest.cc b/chrome/browser/notifications/win/notification_helper_launches_chrome_unittest.cc
index be952b1..58a6d7a9 100644
--- a/chrome/browser/notifications/win/notification_helper_launches_chrome_unittest.cc
+++ b/chrome/browser/notifications/win/notification_helper_launches_chrome_unittest.cc
@@ -31,7 +31,6 @@
 #include "base/process/process_iterator.h"
 #include "base/test/test_timeouts.h"
 #include "base/win/scoped_com_initializer.h"
-#include "base/win/windows_version.h"
 #include "build/build_config.h"
 #include "chrome/install_static/install_util.h"
 #include "chrome/installer/setup/install_worker.h"
@@ -251,11 +250,6 @@
 };
 
 TEST_F(NotificationHelperLaunchesChrome, ChromeLaunchTest) {
-  // This test requires WinRT core functions, which are not available in
-  // older versions of Windows.
-  if (base::win::GetVersion() < base::win::Version::WIN8)
-    return;
-
   // There isn't a way to directly correlate the notification_helper.exe server
   // to this test. So we need to hunt for the server.
   base::Process notification_helper_process =
diff --git a/chrome/browser/password_manager/password_manager_util_mac.mm b/chrome/browser/password_manager/password_manager_util_mac.mm
index a439a452..1cb102b 100644
--- a/chrome/browser/password_manager/password_manager_util_mac.mm
+++ b/chrome/browser/password_manager/password_manager_util_mac.mm
@@ -25,7 +25,8 @@
   // AuthorizationDB, using the flag
   // kAuthorizationRuleAuthenticateAsSessionUser, to ensure that the session
   // user password, as opposed to an admin's password, is required.
-  AuthorizationItem right_items[] = {{"system.login.screensaver", 0, NULL, 0}};
+  AuthorizationItem right_items[] = {
+      {"system.login.screensaver", 0, nullptr, 0}};
   AuthorizationRights rights = {std::size(right_items), right_items};
 
   NSString* prompt;
@@ -49,11 +50,11 @@
 
   // Pass kAuthorizationFlagDestroyRights to prevent the OS from saving the
   // authorization and not prompting the user when future requests are made.
-  base::mac::ScopedAuthorizationRef authorization(
+  base::mac::ScopedAuthorizationRef authorization =
       base::mac::GetAuthorizationRightsWithPrompt(
           &rights, base::mac::NSToCFCast(prompt),
-          kAuthorizationFlagDestroyRights));
-  return authorization.get() != NULL;
+          kAuthorizationFlagDestroyRights);
+  return authorization.get() != nullptr;
 }
 
 std::u16string GetMessageForBiometricLoginPrompt(
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index cdcfc849..28307f0 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -805,6 +805,10 @@
 const char kAutofillAssistantTriggerScriptsIsFirstTimeUser[] =
     "autofill_assistant.trigger_scripts.is_first_time_user";
 
+// Deprecated 12/2022.
+const char kAutofillWalletImportStorageCheckboxState[] =
+    "autofill.wallet_import_storage_checkbox_state";
+
 // Register local state used only for migration (clearing or moving to a new
 // key).
 void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
@@ -1068,6 +1072,10 @@
   registry->RegisterBooleanPref(kAutofillAssistantTriggerScriptsEnabled, true);
   registry->RegisterBooleanPref(kAutofillAssistantTriggerScriptsIsFirstTimeUser,
                                 true);
+
+  // Deprecated 12/2022.
+  registry->RegisterBooleanPref(kAutofillWalletImportStorageCheckboxState,
+                                true);
 }
 
 }  // namespace
@@ -2110,6 +2118,9 @@
   profile_prefs->ClearPref(
       reading_list::prefs::kDeprecatedReadingListHasUnseenEntries);
 
+  // Added 12/2022.
+  profile_prefs->ClearPref(kAutofillWalletImportStorageCheckboxState);
+
   // Please don't delete the following line. It is used by PRESUBMIT.py.
   // END_MIGRATE_OBSOLETE_PROFILE_PREFS
 
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test_base.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test_base.js
index aa6eb95..6e0c57de 100644
--- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test_base.js
+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/dictation_test_base.js
@@ -156,6 +156,7 @@
               `Expected 'application/wasm'.`,
           'falling back to ArrayBuffer instantiation',
           'Pumpkin module loaded.',
+          `Unchecked runtime.lastError: Couldn't retrieve Pumpkin data.`,
         ]);
   }
 
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fil.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fil.xtb
index 564926e2..d000969 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fil.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fil.xtb
@@ -696,7 +696,7 @@
 <translation id="5632083598315326067">Simbolo ng graphics</translation>
 <translation id="5648939288050772726">Congratulations! Matagumpay mong natutunan ang mga kinakailangan sa paggamit ng ChromeVox. Tandaang mabubuksan mo ang menu ng command sa ChromeVox anumang oras sa pamamagitan ng pagpindot sa Paghahanap+Tuldok. Para matuto pa tungkol sa ChromeVox at ChromeOS, bisitahin ang mga sumusunod na artikulo.
     Kung tapos ka na sa tutorial, gamitin ang ChromeVox para mag-navigate papunta sa button na Isara at i-click ito.</translation>
-<translation id="5653397561111110475">Gamitin ang mga feature sa pagiging naa-access ng touch screen ng Chromebook</translation>
+<translation id="5653397561111110475">Gamitin ang mga feature sa accessibility ng touch screen ng Chromebook</translation>
 <translation id="5655682562155942719">Mga Command sa Paglaktaw</translation>
 <translation id="56637627897541303">Lugar ng text</translation>
 <translation id="5669637233317991674">Pindutin ang Search + Pakanang Arrow, o Search + Pakaliwang Arrow para mag-navigate sa araling ito</translation>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.html b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.html
index 07f50e8a..3c3444d 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.html
@@ -1,6 +1,78 @@
+<style include="cr-shared-style">
+  #currentSitesSection {
+    align-items: center;
+    display: flex;
+    padding: 0 var(--cr-section-padding);
+  }
+
+  #currentSitesSectionWrapper {
+    width: 100%;
+  }
+
+  #currentSitesHeading {
+    color: var(--cr-secondary-text-color);
+    font-size: 100%;
+    font-weight: 500;
+    margin: 0;
+    padding-block-start: var(--cr-section-vertical-padding);
+  }
+
+  #currentSitesDescription {
+    padding-block-end: var(--cr-section-vertical-padding);
+  }
+
+  #learnMoreLink {
+    background: none;
+    border: none;
+    color: var(--cr-link-color);
+    cursor: pointer;
+    margin: 0;
+    padding: 0;
+    text-decoration: underline;
+  }
+
+  .no-sites {
+    padding-block-end: 32px;
+    padding-block-start: 16px;
+    padding-inline-start: 40px;
+  }
+</style>
+
 <settings-toggle-button
     id="fledgeToggle"
     pref="{{prefs.privacy_sandbox.m1.fledge_enabled}}"
     label="$i18n{fledgePageToggleLabel}"
     sub-label="$i18n{fledgePageToggleSubLabel}">
 </settings-toggle-button>
+<div id="currentSitesSection">
+  <div id="currentSitesSectionWrapper" class="hr">
+    <h2 id="currentSitesHeading">
+      $i18n{fledgePageCurrentSitesHeading}
+    </h2>
+    <template is="dom-if" if="[[isFledgeEnabledAndLoaded_(
+        prefs.privacy_sandbox.m1.fledge_enabled.value, isSitesListLoaded_)]]"
+        restamp>
+      <div id="currentSitesDescription" class="cr-secondary-text"
+          hidden="[[isSitesListEmpty_(sitesList_.length)]]">
+        $i18n{fledgePageCurrentSitesDescription}
+        <!-- TODO(b/264024469): Add "Learn more" into current sites description
+             string. -->
+        <!-- TODO(b/254412043): Add aria-label or aria-describedby. -->
+        <button id="learnMoreLink" on-click="onLearnMoreClick_">
+          $i18n{fledgePageCurrentSitesDescriptionLearnMore}
+        </button>
+      </div>
+      <!-- TODO(b/254411463): Add sites list. -->
+      <div id="currentSitesDescriptionEmpty"
+          class="no-sites cr-secondary-text"
+          hidden="[[!isSitesListEmpty_(sitesList_.length)]]">
+        $i18n{fledgePageCurrentSitesDescriptionEmpty}
+      </div>
+    </template>
+    <div id="currentSitesDescriptionDisabled"
+        class="no-sites cr-secondary-text"
+        hidden="[[prefs.privacy_sandbox.m1.fledge_enabled.value]]">
+      $i18n{fledgePageCurrentSitesDescriptionDisabled}
+    </div>
+  </div>
+</div>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.ts b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.ts
index 4cdad44..26e0cdd 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.ts
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
 import '../../controls/settings_toggle_button.js';
 import '../../prefs/prefs.js';
 
@@ -10,6 +11,7 @@
 import {SettingsToggleButtonElement} from '../../controls/settings_toggle_button.js';
 import {PrefsMixin} from '../../prefs/prefs_mixin.js';
 
+import {FledgeState, PrivacySandboxBrowserProxy, PrivacySandboxBrowserProxyImpl, PrivacySandboxInterest} from './privacy_sandbox_browser_proxy.js';
 import {getTemplate} from './privacy_sandbox_fledge_subpage.html.js';
 
 export interface SettingsPrivacySandboxFledgeSubpageElement {
@@ -40,8 +42,59 @@
         type: Object,
         notify: true,
       },
+
+      sitesList_: {
+        type: Array,
+        value() {
+          return [];
+        },
+      },
+
+      /**
+       * Used to determine that the Sites list was already fetched and to
+       * display the current sites description only after the list is loaded,
+       * to avoid displaying first the description for an empty list since the
+       * array is empty at first when the page is loaded and switching to the
+       * default description once the list is fetched.
+       */
+      isSitesListLoaded_: {
+        type: Boolean,
+        value: false,
+      },
     };
   }
+
+  private sitesList_: PrivacySandboxInterest[];
+  private isSitesListLoaded_: boolean;
+  private privacySandboxBrowserProxy_: PrivacySandboxBrowserProxy =
+      PrivacySandboxBrowserProxyImpl.getInstance();
+
+  override ready() {
+    super.ready();
+
+    this.privacySandboxBrowserProxy_.getFledgeState().then(
+        state => this.onFledgeStateChanged_(state));
+  }
+
+  private onFledgeStateChanged_(state: FledgeState) {
+    this.sitesList_ = state.joiningSites.map(site => {
+      return {site, removed: false};
+    });
+    this.isSitesListLoaded_ = true;
+  }
+
+  private isFledgeEnabledAndLoaded_(): boolean {
+    return this.getPref('privacy_sandbox.m1.fledge_enabled').value &&
+        this.isSitesListLoaded_;
+  }
+
+  private isSitesListEmpty_(): boolean {
+    return this.sitesList_.length === 0;
+  }
+
+  private onLearnMoreClick_() {
+    // TODO(b/254411472): Open Learn More dialog.
+  }
 }
 
 declare global {
diff --git a/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc b/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
index f03b6cda..efb82f4 100644
--- a/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
+++ b/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
@@ -158,9 +158,8 @@
              ResourceMapper::MapToJavaDrawableId(controller_->GetCvcImageRid()),
              ResourceMapper::MapToJavaDrawableId(
                  controller_->GetGooglePayImageRid()),
-             controller_->IsCardLocal(), controller_->IsVirtualCard(),
+             controller_->IsVirtualCard(),
              controller_->ShouldRequestExpirationDate(),
-             controller_->GetStoreLocallyStartState(),
              controller_->ShouldOfferWebauthn(),
              controller_->GetWebauthnOfferStartState(),
              controller_->GetSuccessMessageDuration().InMilliseconds(),
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 b09599fa..9831c2b7 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Afgelope uur</translation>
 <translation id="1724977129262658800">Ontsluit om jou wagwoord te wysig</translation>
 <translation id="1726477445370128854">Jy kan vinniger blaai en soek wanneer Chrome bladsye vooraf laai wat dit dink jy dalk gaan besoek</translation>
-<translation id="173522743738009831">Meer oor Privacy Sandbox</translation>
 <translation id="1736419249208073774">Verken</translation>
 <translation id="1749561566933687563">Sinkroniseer jou boekmerke</translation>
 <translation id="1750259112639922169">Oortjiegroep – <ph name="TAB_COUNT" /> oortjies</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sekondes oor</translation>
 <translation id="2779651927720337254">misluk</translation>
 <translation id="2781151931089541271">1 sekonde oor</translation>
-<translation id="2788468313014644040">Groepgetal</translation>
 <translation id="2800066122460699237">Die oortjie <ph name="TAB_TITLE" /> sal toegemaak word</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Bekyk en bestuur gestoorde wagwoorde in jou <ph name="BEGIN_LINK" />Google-rekening<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Meld aan en skakel sinkronisering aan om jou boekmerke op al jou toestelle te kry</translation>
 <translation id="2827278682606527653">Stroomkaartkieslys teen halwe hoogte</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Deel prent</translation>
 <translation id="3387650086002190359">Kon <ph name="FILE_NAME" /> weens lêerstelselfoute nie aflaai nie.</translation>
 <translation id="3389286852084373014">Teks is te groot</translation>
-<translation id="3391512812407811893">Privacy Sandbox-proeflopies</translation>
 <translation id="3398320232533725830">Maak die boekmerkbestuurder oop</translation>
 <translation id="3407392651057365886">Meer bladsye word vooraf gelaai. Bladsye kan vooraf deur Google-bedieners gelaai word wanneer hulle deur ander werwe versoek word.</translation>
 <translation id="3414952576877147120">Grootte:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Volg weer</translation>
 <translation id="6002122790816966947">Jou toestelle</translation>
 <translation id="6005538289190791541">Voorgestelde wagwoord</translation>
-<translation id="6032091552407840792">Hierdie proeflopie is net in <ph name="BEGIN_LINK" />sommige streke<ph name="END_LINK" /> aktief.</translation>
-<translation id="6033245666633565791">Met <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> ontwikkel Chrome nuwe tegnologieë om jou teen kruiswerfnasporing te beveilig terwyl dit die oop web in stand hou.
-
-Privacy Sandbox-proeflopies word nog aktief ontwikkel en is in uitgesoekte streke beskikbaar. Vir nou kan werwe Privacy Sandbox probeer terwyl hulle steeds huidige webtegnologieë soos derdepartywebkoekies gebruik.</translation>
 <translation id="6039379616847168523">Spring na die volgende oortjie</translation>
 <translation id="6040143037577758943">Maak toe</translation>
 <translation id="604124094241169006">Outomaties</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Voeg by</translation>
 <translation id="7798392620021911922">Het <ph name="TAB_COUNT" /> oortjies teruggestel</translation>
 <translation id="780301667611848630">Nee, dankie</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">As hierdie wagwoord uitgevee word, sal dit nie jou rekening op <ph name="SITE" /> uitvee nie. Verander jou wagwoord of vee jou rekening op <ph name="SITE" /> uit om dit veilig te hou van ander.</translation>
 <translation id="7810647596859435254">Maak oop met …</translation>
 <translation id="7815484226266492798">Lang skermkiekie</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Enkripteer gesinkroniseerde data met jou eie sinkroniseringwagfrase</translation>
 <translation id="8466613982764129868">Maak seker dat <ph name="TARGET_DEVICE_NAME" /> aan die internet gekoppel is.</translation>
 <translation id="8473863474539038330">Adresse en meer</translation>
-<translation id="8481921391193215807">Wanneer dit aan is, kan werwe die privaatheidinstandhoudingtegnieke wat hier gewys word, gebruik om hul inhoud en dienste te verskaf. Dit sluit alternatiewe vir kruiswerfnasporing in. Nog proeflopies kan oor tyd bygevoeg word.
-
-<ph name="BEGIN_LIST_ITEM1" />Adverteerders en uitgewers kan FLoC gebruik.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Adverteerders en uitgewers kan die doeltreffendheid van advertensies op 'n manier bestudeer wat jou nie oor werwe heen naspoor nie.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Proeflopiekenmerke is aan</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Maak die geskiedenisbladsy oop</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Lêernaam bestaan reeds</translation>
 <translation id="8666759526542103597">Meer oor advertensiepersonalisering gegrond op blaai-aktiwteit</translation>
 <translation id="8676789164135894283">Aanmeldingverifikasies</translation>
-<translation id="867767487203716855">Volgende opdatering</translation>
 <translation id="8683039184091909753">prent</translation>
-<translation id="8683081248374354009">Stel groep terug</translation>
 <translation id="869891660844655955">Vervaldatum</translation>
 <translation id="8699120352855309748">Moenie aanbied om hierdie tale te vertaal nie</translation>
 <translation id="8712637175834984815">Het dit</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
index 22da8580..ce240ce 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">የመጨረሻው ሰዓት</translation>
 <translation id="1724977129262658800">የይለፍ ቃልዎን ለማርትዕ ይክፈቱ</translation>
 <translation id="1726477445370128854">Chrome እርስዎ ሊጎበኟቸው ይችላሉ ብሎ የሚያስባቸውን ገጾች ቅድሚያ ሲጭን በበለጠ ፍጥነት ማሰስ እና መፈለግ ይችላሉ</translation>
-<translation id="173522743738009831">ስለግላዊነት ማጠሪያ</translation>
 <translation id="1736419249208073774">አስስ</translation>
 <translation id="1749561566933687563">የእርስዎን ዕልባቶች ያስምሩ</translation>
 <translation id="1750259112639922169">የትር ቡድን - <ph name="TAB_COUNT" /> ትሮች</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> ሰከንዶች ይቀራሉ</translation>
 <translation id="2779651927720337254">አልተሳካም</translation>
 <translation id="2781151931089541271">1 ሰከንድ ይቀራል</translation>
-<translation id="2788468313014644040">የቡድን ቁጥር</translation>
 <translation id="2800066122460699237">ትር <ph name="TAB_TITLE" /> ይዘጋል</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">የተቀመጡ የይለፍ ቃላትን በእርስዎ <ph name="BEGIN_LINK" />Google መለያ<ph name="END_LINK" /> ውስጥ ይመልከቱ እና ያስተዳድሩ</translation>
 <translation id="2818669890320396765">የእርስዎን ዕልባቶች በሁሉም መሣሪያዎችዎ ላይ ለማግኘት በመለያ መግባት እና ስምረትን ማብራት ለማግኘት</translation>
 <translation id="2827278682606527653">የምግብ ካርድ ምናሌ በግማሽ ቁመት</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ምስል አጋራ</translation>
 <translation id="3387650086002190359">በስርዓተ-ፋይል ስህተቶች ምክንያት <ph name="FILE_NAME" />ን ማውረድ አልተሳካም።</translation>
 <translation id="3389286852084373014">ጽሁፍ ከልክ በላይ ግዙፍ ነው</translation>
-<translation id="3391512812407811893">የግላዊነት Sandbox ሙከራዎች</translation>
 <translation id="3398320232533725830">የዕልባቶች አስተዳዳሪን ክፈት</translation>
 <translation id="3407392651057365886">ተጨማሪ ገጾች ቅድሚያ ይጫናሉ። ገጾች በሌሎች ጣቢያዎች ሲጠየቁ በGoogle አገልጋዮች በኩል ቅድሚያ ሊጫኑ ይችላሉ።</translation>
 <translation id="3414952576877147120">መጠን፦</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">እንደገና ይከተሉ</translation>
 <translation id="6002122790816966947">የእርስዎ መሣሪያዎች</translation>
 <translation id="6005538289190791541">የተጠቆመ የይለፍ ቃል</translation>
-<translation id="6032091552407840792">ይህ ሙከራ ንቁ የሆነው <ph name="BEGIN_LINK" />በአንዳንድ ክልሎች<ph name="END_LINK" /> ውስጥ ብቻ ነው።</translation>
-<translation id="6033245666633565791">በ<ph name="BEGIN_LINK" />የግላዊነት Sandbox<ph name="END_LINK" /> አማካኝነት Chrome ክፍት ድርን በሚጠብቁበት ጊዜ እርስዎን ከጣቢያ-ተሻጋሪ መከታተያ ለመጠበቅ አዲስ ቴክኖሎጂዎችን እየገነባ ነው።
-
-የግላዊነት ማጠሪያ ሙከራዎች አሁንም በንቁ ግንባታ ላይ ናቸው፣ እንዲሁም በተመረጡ ክልሎች ውስጥም ይገኛሉ። ለአሁን ጣቢያዎች እንደ የሶስተኛ ወገን ኩኪዎች ያሉ ወቅታዊ የድር ቴክኖሎጂዎችን መጠቀሙን በሚቀጥሉበት ጊዜ የግላዊነት ማጠሪያን ሊሞክሩ ይችላሉ።</translation>
 <translation id="6039379616847168523">ወደ ቀጣዩ ትር ዝለል</translation>
 <translation id="6040143037577758943">ዝጋ</translation>
 <translation id="604124094241169006">ራስ-ሰር</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">ያክሉ</translation>
 <translation id="7798392620021911922">ወደነበሩበት የተመለሱ <ph name="TAB_COUNT" /> ትሮች</translation>
 <translation id="780301667611848630">አይ፣ አመሰግናለሁ</translation>
-<translation id="7805768142964895445">ሁኔታ</translation>
 <translation id="7808889146555843082">ይህን የይለፍ ቃል መሰረዝ <ph name="SITE" /> ላይ መለያዎን አይሰርዘውም። መለያዎን ከሌሎች ለመጠበቅ የይለፍ ቃልዎን ይቀይሩት ወይም <ph name="SITE" /> ላይ መለያዎን ይሰርዙት።</translation>
 <translation id="7810647596859435254">ክፈት በ…</translation>
 <translation id="7815484226266492798">ረጅም ቅጽበታዊ ገጽ እይታ</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">የሰመረ ውሂብ በራስዎ የስምረት ይለፍ ሐረግ ያመሣጥሩ</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> ከበይነ መረብ ጋር መገናኘቱን ያረጋግጡ</translation>
 <translation id="8473863474539038330">አድራሻዎች እና ተጨማሪ</translation>
-<translation id="8481921391193215807">ሲበራ ጣቢያዎች ይዘታቸውን እና አገልግሎቶቻቸውን ለማቅረብ እዚህ የሚታዩትን የግላዊነት መጠበቂያ ቴክኒኮችን ሊጠቀሙ ይችላሉ። እነዚህ ጣቢያ-ተሻጋሪ ተለዋጭ አማራጮችን ያካትታሉ። በጊዜ ሂደት ተጨማሪ ሙከራዎች ሊታከሉ ይችላሉ።
-
-<ph name="BEGIN_LIST_ITEM1" />ማስታወቂያ ሰሪዎች እና አታሚዎች FLoCን መጠቀም ይችላሉ።<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />ማስታወቂያ ሰሪዎች እና አታሚዎች በሁሉም ጣቢያዎች ላይ እርስዎን በማይከታተል መንገድ የማስታወቂያዎች ውጤታማነትን ማጥናት ይችላሉ።<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">የሙከራ ባህሪዎች በርተዋል</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">የታሪክ ገጹን ክፈት</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">የፋይል ስም አስቀድሞ አለ</translation>
 <translation id="8666759526542103597">በአሳሽ ላይ የተመሰረተ ማስታወቂያን ግላዊነት ስለማላበስ</translation>
 <translation id="8676789164135894283">የመግቢያ ማረጋገጫዎች</translation>
-<translation id="867767487203716855">ቀጣዩ ዝማኔ</translation>
 <translation id="8683039184091909753">ምስል</translation>
-<translation id="8683081248374354009">ቡድንን ዳግም አስጀምር</translation>
 <translation id="869891660844655955">የሚያበቀበት ጊዜ</translation>
 <translation id="8699120352855309748">እነዚህን ቋንቋዎች ለመተርጎም አያቅርቡ</translation>
 <translation id="8712637175834984815">ገባኝ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
index 0fb349b6..80f9e8c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">آخر ساعة</translation>
 <translation id="1724977129262658800">عليك فتح قفل الشاشة لتتمكّن من تعديل كلمة المرور.</translation>
 <translation id="1726477445370128854">‏بإمكانك التصفّح والبحث بسرعة عندما يحمّل Chrome مُسبقًا الصفحات التي يتوقّع أن تنتقل إليها.</translation>
-<translation id="173522743738009831">لمحة عن "مبادرة حماية الخصوصية"</translation>
 <translation id="1736419249208073774">استكشاف</translation>
 <translation id="1749561566933687563">مزامنة الإشارات المرجعية</translation>
 <translation id="1750259112639922169">مجموعة علامات التبويب: <ph name="TAB_COUNT" /> علامة تبويب</translation>
@@ -319,9 +318,7 @@
 <translation id="2777555524387840389">عدد الثواني المتبقية: <ph name="SECONDS" /></translation>
 <translation id="2779651927720337254">تعذَّر التنزيل</translation>
 <translation id="2781151931089541271">يتبقى ثانية واحدة</translation>
-<translation id="2788468313014644040">رقم المجموعة</translation>
 <translation id="2800066122460699237">سيتم إغلاق علامة التبويب <ph name="TAB_TITLE" />.</translation>
-<translation id="2806840421670364300">‏التعلُّم الموحّد للمجموعات النموذجية (FLoC)</translation>
 <translation id="281504910091592009">‏بإمكانك عرض كلمات المرور المحفوظة وإدارتها في <ph name="BEGIN_LINK" />حسابك على Google<ph name="END_LINK" />.</translation>
 <translation id="2818669890320396765">للحصول على الإشارات المرجعية على جميع أجهزتك، يُرجى تسجيل الدخول وتفعيل المزامنة.</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -442,7 +439,6 @@
 <translation id="3384347053049321195">مشاركة صورة</translation>
 <translation id="3387650086002190359">تعذّر تنزيل الملف <ph name="FILE_NAME" /> بسبب أخطاء في نظام الملف.</translation>
 <translation id="3389286852084373014">النص كبير جدًا</translation>
-<translation id="3391512812407811893">إصدارات "مبادرة حماية الخصوصية" التجريبية</translation>
 <translation id="3398320232533725830">فتح مدير الإشارات المرجعية</translation>
 <translation id="3407392651057365886">‏يتم تحميل المزيد من صفحات الويب مُسبقًا. قد يتم تحميل صفحات الويب مُسبقًا من خلال خوادم Google عندما تطلب المواقع الإلكترونية الأخرى ذلك.</translation>
 <translation id="3414952576877147120">الحجم:</translation>
@@ -914,10 +910,6 @@
 <translation id="6000203700195075278">المتابعة مجدّدًا</translation>
 <translation id="6002122790816966947">أجهزتك</translation>
 <translation id="6005538289190791541">كلمة المرور المُقترحَة</translation>
-<translation id="6032091552407840792">لا يتوفّر هذا الإصدار التجريبي سوى في <ph name="BEGIN_LINK" />بعض المناطق<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">‏من خلال <ph name="BEGIN_LINK" />مبادرة حماية الخصوصية<ph name="END_LINK" />، نعمل في Chrome على تطوير تقنيات جديدة لحمايتك من آليات التتبُّع في جميع المواقع الإلكترونية مع الحفاظ على محتوى شبكة الإنترنت المفتوحة المتاحة للجميع.
-
-لا تزال إصدارات "مبادرة حماية الخصوصية" التجريبية في مرحلة التطوير المستمر ولا تتوفّر إلا في مناطق محدَّدة. في الوقت الحالي، قد تحاول المواقع الإلكترونية تجربة "مبادرة حماية الخصوصية" أثناء استخدام تقنيات الويب الحالية مثل ملفات تعريف الارتباط التابعة لجهات خارجية.</translation>
 <translation id="6039379616847168523">الانتقال السريع إلى علامة التبويب التالية</translation>
 <translation id="6040143037577758943">إغلاق</translation>
 <translation id="604124094241169006">تلقائي</translation>
@@ -1249,7 +1241,6 @@
 <translation id="7791543448312431591">إضافة</translation>
 <translation id="7798392620021911922">تمت استعادة <ph name="TAB_COUNT" /> علامة تبويب</translation>
 <translation id="780301667611848630">لا، شكرًا</translation>
-<translation id="7805768142964895445">الحالة</translation>
 <translation id="7808889146555843082">لن يؤدي حذف كلمة المرور هذه إلى حذف حسابك على <ph name="SITE" />. لذا يُرجى تغيير كلمة المرور أو حذف حسابك على <ph name="SITE" /> لحمايته من الآخرين.</translation>
 <translation id="7810647596859435254">فتح باستخدام...</translation>
 <translation id="7815484226266492798">لقطة شاشة طويلة</translation>
@@ -1383,11 +1374,6 @@
 <translation id="8461694314515752532">ترميز البيانات المتزامنة باستخدام عبارة مرور المزامنة الخاصة بك</translation>
 <translation id="8466613982764129868">يُرجى التأكُّد من اتصال الجهاز <ph name="TARGET_DEVICE_NAME" /> بالإنترنت.</translation>
 <translation id="8473863474539038330">العناوين والمزيد</translation>
-<translation id="8481921391193215807">‏عند تفعيل "مبادرة حماية الخصوصية"، قد تستخدم المواقع الإلكترونية التقنيات الموضحة هنا للحفاظ على خصوصية المستخدمين مع توفير المحتوى والخدمات لهم. وتشمل هذه التقنيات بدائل عن آليات التتبُّع في المواقع الإلكترونية. قد تتم إضافة إصدارات تجريبية بمرور الوقت.
-
-<ph name="BEGIN_LIST_ITEM1" />يمكن للمعلِنين والناشرين استخدام تقنية "التعلُّم الموحّد للمجموعات النموذجية" (FLoC).<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />يمكن للمعلِنين والناشرين تحديد مدى فعالية الإعلانات بدون الحاجة إلى تتبّع نشاطك في المواقع الإلكترونية.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">تم تفعيل ميزات الإصدار التجريبي.</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">فتح صفحة السجل</translation>
@@ -1433,9 +1419,7 @@
 <translation id="8664979001105139458">اسم الملف موجود</translation>
 <translation id="8666759526542103597">لمحة عن تخصيص الإعلانات المستند إلى المتصفِّح</translation>
 <translation id="8676789164135894283">عمليات التحقّق من تسجيل الدخول</translation>
-<translation id="867767487203716855">التحديث التالي</translation>
 <translation id="8683039184091909753">صورة</translation>
-<translation id="8683081248374354009">إعادة تحديد المجموعة</translation>
 <translation id="869891660844655955">تاريخ انتهاء الصلاحية</translation>
 <translation id="8699120352855309748">عدم اقتراح ترجمة لهذه اللغات</translation>
 <translation id="8712637175834984815">تم</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
index bfda7f3..15b317d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">যোৱা ১ ঘণ্টাৰ</translation>
 <translation id="1724977129262658800">আপোনাৰ পাছৱৰ্ডটো সম্পাদনা কৰিবলৈ আনলক কৰক</translation>
 <translation id="1726477445370128854">আপুনি যাব পৰাৰ সম্ভাৱনা থকা পৃষ্ঠাসমূহ Chromeএ আগতীয়াকৈ ল’ড কৰিলে আপুনি খৰতকীয়াকৈ ব্ৰাউজ আৰু সন্ধান কৰিব পাৰে</translation>
-<translation id="173522743738009831">প্ৰাইভেচি ছেণ্ডবক্সৰ বিষয়ে</translation>
 <translation id="1736419249208073774">অন্বেষণ কৰক</translation>
 <translation id="1749561566933687563">আপোনাৰ বুকমার্কসমূহ ছিংক কৰক</translation>
 <translation id="1750259112639922169">টেবৰ গোট - <ph name="TAB_COUNT" /> টা টেব</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> ছেকেণ্ড বাকী আছে</translation>
 <translation id="2779651927720337254">ডাউনল'ড কৰিব পৰা নগ'ল</translation>
 <translation id="2781151931089541271">১ ছেকেণ্ড বাকী আছে</translation>
-<translation id="2788468313014644040">গোটৰ সদস্য</translation>
 <translation id="2800066122460699237">টেবটো <ph name="TAB_TITLE" /> বন্ধ কৰা হ’ব</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">আপোনাৰ <ph name="BEGIN_LINK" />Google Account<ph name="END_LINK" />ত ছেভ কৰি থোৱা পাছৱর্ডসমূহ চাওক আৰু পৰিচালনা কৰক</translation>
 <translation id="2818669890320396765">আপোনাৰ সকলো ডিভাইচতে নিজৰ বুকমার্কসমূহ পাবলৈ ছাইন ইন কৰি ছিংক কৰা সুবিধাটো অন কৰক</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">প্ৰতিচ্ছবি শ্বেয়াৰ কৰক</translation>
 <translation id="3387650086002190359">ফাইল ছিষ্টেম সম্পর্কীয় আসোঁৱাহৰ বাবে <ph name="FILE_NAME" /> ডাউনল’ড কৰিব পৰা নগ’ল।</translation>
 <translation id="3389286852084373014">পাঠখিনি যথেষ্ট দীঘল</translation>
-<translation id="3391512812407811893">প্ৰাইভেচি ছেণ্ডবক্সৰ ট্ৰায়েল</translation>
 <translation id="3398320232533725830">বুকমাৰ্ক পৰিচালক খোলক</translation>
 <translation id="3407392651057365886">অধিক পৃষ্ঠা আগতীয়াকৈ ল’ড কৰা হৈছে। অন্য ছাইটে অনুৰোধ কৰিলে পৃষ্ঠাসমূহ Googleৰ ছাৰ্ভাৰৰ জৰিয়তে আগতীয়াকৈ ল’ড কৰা হ’ব পাৰে।</translation>
 <translation id="3414952576877147120">আকাৰ:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">পুনৰ ফ’ল’ কৰক</translation>
 <translation id="6002122790816966947">আপোনাৰ ডিভাইচ</translation>
 <translation id="6005538289190791541">পৰামর্শ হিচাপে পোৱা পাছৱর্ড</translation>
-<translation id="6032091552407840792">এই ট্ৰায়েলটো কেৱল <ph name="BEGIN_LINK" />কিছুমান অঞ্চল<ph name="END_LINK" />ত সক্ৰিয়।</translation>
-<translation id="6033245666633565791">Chromeএ <ph name="BEGIN_LINK" />গোপনীয়তা বিষয়ক ছেণ্ডবক্স<ph name="END_LINK" />ৰ জৰিয়তে, আপোনাক মুক্ত ৱেবক সুৰক্ষিত কৰি ৰাখি ক্ৰছ-ছাইট ট্ৰেকিঙৰ পৰা আপোনাক সুৰক্ষা প্ৰদান কৰিবলৈ নতুন প্ৰযুক্তি বিকাশ কৰি আছে।
-
-গোপনীয়তা বিষয়ক ছেণ্ডবক্সৰ ট্ৰায়েলসমূহ এতিয়াও সক্ৰিয়ভাৱে বিকাশ কৰি থকা হৈছে আৰু এইবোৰ বাছনিকৃত কিছুমান অঞ্চলত উপলব্ধ। সদ্যহতে, ছাইটসমূহে তৃতীয় পক্ষৰ কুকিৰ দৰে বৰ্তমানৰ ৱেব প্ৰযুক্তিসমূহ ব্যৱহাৰ কৰি থাকিও গোপনীয়তা বিষয়ক ছেণ্ডবক্স ব্যৱহাৰ কৰি চাব পাৰে।</translation>
 <translation id="6039379616847168523">পৰৱৰ্তী টেবলৈ যাওক</translation>
 <translation id="6040143037577758943">বন্ধ কৰক</translation>
 <translation id="604124094241169006">স্বয়ংক্ৰিয়</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">যোগ কৰক</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> টা টেব পুনঃস্থাপন কৰা হ’ল</translation>
 <translation id="780301667611848630">নালাগে, ধন্যবাদ</translation>
-<translation id="7805768142964895445">স্থিতি</translation>
 <translation id="7808889146555843082">এই পাছৱর্ডটো মচাৰ ফলত <ph name="SITE" />ত থকা আপোনাৰ একাউণ্টটো মচি পেলোৱা নহ’ব। অন্য লোকসকলৰ পৰা আপোনাৰ একাউণ্টটো সুৰক্ষিত কৰিবলৈ আপোনাৰ পাছৱর্ড সলনি কৰক অথবা <ph name="SITE" />ত আপোনাৰ একাউণ্টটো মচক।</translation>
 <translation id="7810647596859435254">ইয়াৰ জৰিয়তে খোলক…</translation>
 <translation id="7815484226266492798">দীঘল স্ক্ৰীনশ্বট</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">আপোনাৰ নিজৰ ছিংক পাছফ্ৰেজৰ সৈতে ছিংক কৰা ডেটা এনক্ৰিপ্ট কৰক।</translation>
 <translation id="8466613982764129868">নিশ্চিত হৈ লওক যে <ph name="TARGET_DEVICE_NAME" /> ইণ্টাৰনেটৰ সৈতে সংযুক্ত হৈ আছে</translation>
 <translation id="8473863474539038330">ঠিকনা আৰু অধিক</translation>
-<translation id="8481921391193215807">অন কৰি থোৱা থাকিলে, ছাইটসমূহে নিজৰ সমল আৰু সেৱা প্ৰদান কৰিবলৈ ইয়াত দেখুওৱা গোপনীয়তা সংৰক্ষণৰ কৌশলসমূহ ব্যৱহাৰ কৰিব পাৰে। এইবিলাকত ক্ৰছ-ছাইট ট্ৰেকিঙৰ বিকল্পসমূহ অন্তৰ্ভুক্ত। সময়ৰ লগে লগে অধিক ট্ৰায়েল যোগ দিয়া হ’ব পাৰে।
-
-<ph name="BEGIN_LIST_ITEM1" />বিজ্ঞাপনদাতা আৰু প্ৰকাশকে FLoC ব্যৱহাৰ কৰিব পাৰে।<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />বিজ্ঞাপনদাতা আৰু প্ৰকাশকে আপোনাক বিভিন্ন ছাইটত ট্ৰেক নকৰাকৈ বিজ্ঞাপনৰ ফলপ্ৰসূতা অধ্যয়ন কৰিব পাৰে।<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ট্ৰায়েলৰ সুবিধা অন আছে</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ইতিহাস পৃষ্ঠাটো খোলক</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">এই ফাইলৰ নামটো ইতিমধ্যে আছে</translation>
 <translation id="8666759526542103597">ব্ৰাউজাৰ ভিত্তিক বিজ্ঞাপনৰ ব্যক্তিগতকৰণৰ বিষয়ে</translation>
 <translation id="8676789164135894283">ছাইন ইন কৰাৰ সত্যাপন</translation>
-<translation id="867767487203716855">পৰৱৰ্তী আপডে’ট</translation>
 <translation id="8683039184091909753">প্ৰতিচ্ছবি</translation>
-<translation id="8683081248374354009">গোটটো ৰিছেট কৰক</translation>
 <translation id="869891660844655955">ম্যাদ উকলাৰ তাৰিখ</translation>
 <translation id="8699120352855309748">এই ভাষাসমূহ অনুবাদ কৰাৰ সুবিধা প্ৰদান নকৰিব</translation>
 <translation id="8712637175834984815">বুজি পালোঁ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
index f7968dd..96259f3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Son saat</translation>
 <translation id="1724977129262658800">Parolunuzu redaktə etmək üçün kiliddən çıxarın</translation>
 <translation id="1726477445370128854">Chrome ziyarət edə biləcəyinizi düşündüyü səhifələri əvvəlcədən yüklədikdə daha sürətli gözdən keçirə və axtarış edə bilərsiniz</translation>
-<translation id="173522743738009831">Təhlükəsiz Sandbox haqqında</translation>
 <translation id="1736419249208073774">Araşdırın</translation>
 <translation id="1749561566933687563">Əlfəcinlərinizi sinxronizasiya edin</translation>
 <translation id="1750259112639922169">Tab qrupu - <ph name="TAB_COUNT" /> tab</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> saniyə qaldı</translation>
 <translation id="2779651927720337254">alınmadı</translation>
 <translation id="2781151931089541271">1 saniyə qaldı</translation>
-<translation id="2788468313014644040">Qrup nömrəsi</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> tabı bağlanacaq</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google Hesabınızda<ph name="END_LINK" /> yadda saxlanılmış parollara baxın və idarə edin</translation>
 <translation id="2818669890320396765">Bütün cihazlarda əlfəcinləri əldə etmək üçün daxil olun və sinxronizasiyanı aktiv edin</translation>
 <translation id="2827278682606527653">Təchizat kartı menyusu yarı hündürlükdədir</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Şəkli paylaşın</translation>
 <translation id="3387650086002190359">Fayl sistem xətaları səbəbindən <ph name="FILE_NAME" /> faylı endirilmədi.</translation>
 <translation id="3389286852084373014">Mətn çox böyükdür</translation>
-<translation id="3391512812407811893">Təhlükəsiz Sandbox sınaqları</translation>
 <translation id="3398320232533725830">Əlfəcin menecerini açın</translation>
 <translation id="3407392651057365886">Daha çox səhifə əvvəlcədən yüklənir. Səhifələr başqa saytlar tərəfindən tələb edildikdə Google serverləri vasitəsilə əvvəlcədən yüklənə bilər.</translation>
 <translation id="3414952576877147120">Ölçü:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Yenidən izləyin</translation>
 <translation id="6002122790816966947">Cihazlarınız</translation>
 <translation id="6005538289190791541">Təklif edilən parol</translation>
-<translation id="6032091552407840792">Bu sınaq yalnız <ph name="BEGIN_LINK" />bəzi regionlarda<ph name="END_LINK" /> aktivdir.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Məxfilik Sendboksu<ph name="END_LINK" /> ilə Chrome açıq vebdən sərbəst şəkildə istifadənizi təmin edərkən sizi saytlararası izləmə mexanizmlərindən qoruyacaq yeni texnologiyalar hazırlayır.
-
-Məxfilik Sendboksu sınaqları hələ də aktiv hazırlanma mərhələsindədir və seçilmiş regionlarda əlçatandır. Hələlik saytlar üçüncü tərəf kukiləri kimi cari veb texnologiyalarından istifadə etməyə davam edərkən Məxfilik Sendboksunu sınaqdan keçirə bilər.</translation>
 <translation id="6039379616847168523">Növbəti panelə keşin</translation>
 <translation id="6040143037577758943">Qapat</translation>
 <translation id="604124094241169006">Avtomatik</translation>
@@ -1246,7 +1238,6 @@
 <translation id="7791543448312431591">Əlavə etmək</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> tab bərpa edilib</translation>
 <translation id="780301667611848630">Yox, çox sağ olun</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Bu parolu sildikdə <ph name="SITE" /> saytında hesabınız silinməyəcək. Hesabınızı digərlərindən qorumaq üçün parolunuzu dəyişin, ya da onu <ph name="SITE" /> saytından silin.</translation>
 <translation id="7810647596859435254">Bununla açın...</translation>
 <translation id="7815484226266492798">Uzun Skrinşot</translation>
@@ -1380,11 +1371,6 @@
 <translation id="8461694314515752532">Sinxronizasiya parolunuz ilə sinxronizasiya edilmiş datanı şifrələyin</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> cihazının internetə qoşulduğuna əmin olun</translation>
 <translation id="8473863474539038330">Ünvanlar və s.</translation>
-<translation id="8481921391193215807">Aktiv olduqda, saytlar məzmun və xidmətlərini təmin etmək üçün burada göstərilən məxfiliyi qoruma üsullarından istifadə edə bilərlər. Bunlara saytlararası izləmə üçün alternativlər daxildir. Zamanla daha çox sınaq əlavə edilə bilər.
-
-<ph name="BEGIN_LIST_ITEM1" />Reklamçılar və naşirlər FLoC üsulundan istifadə edə bilərlər.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Reklamçılar reklamların effektivliyini saytlarda sizi izləməyəcək şəkildə araşdıra bilərlər.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Sınaq funksiyaları aktivdir</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Tarixçə səhifəsini açın</translation>
@@ -1430,9 +1416,7 @@
 <translation id="8664979001105139458">Fayl adı artıq mövcuddur</translation>
 <translation id="8666759526542103597">Brauzer əsaslı reklam fərdiləşdirməsi haqqında</translation>
 <translation id="8676789164135894283">Giriş doğrulamaları</translation>
-<translation id="867767487203716855">Növbəti güncəlləmə</translation>
 <translation id="8683039184091909753">şəkil</translation>
-<translation id="8683081248374354009">Qrupu sıfırlayın</translation>
 <translation id="869891660844655955">Bitmə tarixi</translation>
 <translation id="8699120352855309748">Bu dillərin tərcümə edilməsini təklif etməyin</translation>
 <translation id="8712637175834984815">Anladım</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
index ce679e52..9de5ee5 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">За апошнюю гадзіну</translation>
 <translation id="1724977129262658800">Каб змяніць пароль, трэба разблакіраваць прыладу</translation>
 <translation id="1726477445370128854">Вы можаце шукаць і праглядаць змесціва хутчэй, калі Chrome будзе перадзагружаць старонкі, якія вы з высокай імавернасцю наведаеце</translation>
-<translation id="173522743738009831">Пра Privacy Sandbox</translation>
 <translation id="1736419249208073774">Агляд</translation>
 <translation id="1749561566933687563">Сінхранізуйце закладкі</translation>
 <translation id="1750259112639922169">Група ўкладак – Колькасць: <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Засталося <ph name="SECONDS" /> с</translation>
 <translation id="2779651927720337254">не выканана</translation>
 <translation id="2781151931089541271">Засталася 1 секунда</translation>
-<translation id="2788468313014644040">Нумар групы</translation>
 <translation id="2800066122460699237">Укладка "<ph name="TAB_TITLE" />" будзе закрыта</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Праглядайце захаваныя паролі і кіруйце імі праз <ph name="BEGIN_LINK" />Уліковы запіс Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Каб перанесці закладкі на ўсе прылады, увайдзіце ва ўліковы запіс і ўключыце сінхранізацыю</translation>
 <translation id="2827278682606527653">Меню карткі стужкі адкрыта на палову вышыні</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Абагуліць відарыс</translation>
 <translation id="3387650086002190359">Не ўдалося спампаваць файл "<ph name="FILE_NAME" />" з-за памылак файлавай сістэмы.</translation>
 <translation id="3389286852084373014">Тэкст занадта вялікі</translation>
-<translation id="3391512812407811893">Пробныя версіі Privacy Sandbox</translation>
 <translation id="3398320232533725830">Адкрыць менеджар закладак</translation>
 <translation id="3407392651057365886">Перадзагружаецца больш старонак. Перадзагрузка можа ажыццяўляцца праз серверы Google па запыце іншых сайтаў.</translation>
 <translation id="3414952576877147120">Памер:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Падпісацца зноў</translation>
 <translation id="6002122790816966947">Вашы прылады</translation>
 <translation id="6005538289190791541">Прапанаваны пароль</translation>
-<translation id="6032091552407840792">Гэта пробная функцыя дзейнічае толькі ў <ph name="BEGIN_LINK" />некаторых рэгіёнах<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">З дапамогай <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> Chrome падтрымлівае адкрытасць інтэрнэту, распрацоўваючы новыя тэхналогіі для абароны вас ад механізмаў адсочвання паводзін на розных сайтах.
-
-Пробныя функцыі Privacy Sandbox яшчэ знаходзяцца на стадыі распрацоўкі і даступныя не ва ўсіх рэгіёнах. Сайты маюць магчымасць выкарыстоўваць некаторыя функцыі Privacy Sandbox, не адмаўляючыся пакуль што ад існуючых вэб-тэхналогій, такіх як староннія файлы cookie.</translation>
 <translation id="6039379616847168523">Перайсці на наступную ўкладку</translation>
 <translation id="6040143037577758943">Закрыць</translation>
 <translation id="604124094241169006">Аўтаматычна</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Дадаць</translation>
 <translation id="7798392620021911922">Адноўлена ўкладак: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Не, дзякуй</translation>
-<translation id="7805768142964895445">Стан</translation>
 <translation id="7808889146555843082">Пры выдаленні гэтага пароля ўліковы запіс на сайце <ph name="SITE" /> не выдаліцца. Каб абараніць свой уліковы запіс (на <ph name="SITE" />), выдаліце яго або змяніце пароль.</translation>
 <translation id="7810647596859435254">Адкрыць з дапамогай…</translation>
 <translation id="7815484226266492798">Доўгі здымак экрана</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Зашыфраваць сінхранізаваныя даныя з дапамогай фразы-пароля.</translation>
 <translation id="8466613982764129868">Праверце, ці прылада "<ph name="TARGET_DEVICE_NAME" />" падключана да інтэрнэту</translation>
 <translation id="8473863474539038330">Адрасы і іншае</translation>
-<translation id="8481921391193215807">Калі ўключыць функцыі Privacy Sandbox, сайты змогуць выкарыстоўваць пералічаныя тут тэхналогіі, якія забяспечваюць прыватнасць, каб прапаноўваць сваё змесціва і сэрвісы. У прыватнасці, гэта альтэрнатыўныя спосабы рашэння праблемы збору даных пра дзеянні карыстальнікаў на розных сайтах. З цягам часу могуць стаць даступнымі новыя пробныя функцыі.
-
-<ph name="BEGIN_LIST_ITEM1" />Рэкламадаўцы і выдаўцы змогуць выкарыстоўваць FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Рэкламадаўцы і выдаўцы змогуць ацэньваць эфектыўнасць рэкламы, не адсочваючы пры гэтым вашы дзеянні ў інтэрнэце.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Пробныя функцыі ўключаны</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Адкрыць старонку гісторыі</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Файл з такой назвай ужо існуе</translation>
 <translation id="8666759526542103597">Інфармацыя пра персаналізацыю рэкламы на аснове даных браўзера</translation>
 <translation id="8676789164135894283">Спраўджанне ўваходу</translation>
-<translation id="867767487203716855">Наступнае абнаўленне</translation>
 <translation id="8683039184091909753">відарыс</translation>
-<translation id="8683081248374354009">Скінуць параметры групы</translation>
 <translation id="869891660844655955">Тэрмін дзеяння</translation>
 <translation id="8699120352855309748">Не прапаноўваць перакладаць з гэтых моў</translation>
 <translation id="8712637175834984815">Зразумела</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
index 6b621db7..f3a6d61 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Последния час</translation>
 <translation id="1724977129262658800">Отключете, за да редактирате паролата си</translation>
 <translation id="1726477445370128854">Можете да сърфирате и търсите по-бързо, когато Chrome зарежда предварително страниците, които смята, че е възможно да посетите</translation>
-<translation id="173522743738009831">Всичко за Privacy Sandbox</translation>
 <translation id="1736419249208073774">Разглеждане</translation>
 <translation id="1749561566933687563">Синхронизирайте отметките си</translation>
 <translation id="1750259112639922169">Група раздели – <ph name="TAB_COUNT" /> раздела</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Остават <ph name="SECONDS" /> сек</translation>
 <translation id="2779651927720337254">неуспешно</translation>
 <translation id="2781151931089541271">Остава 1 сек</translation>
-<translation id="2788468313014644040">Номер на групата</translation>
 <translation id="2800066122460699237">Разделът <ph name="TAB_TITLE" /> ще бъде затворен</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Преглеждайте и управлявайте запазените пароли в <ph name="BEGIN_LINK" />профила си в Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Влезте в профила си и включете синхронизирането, за да получите отметките си на всичките си устройства</translation>
 <translation id="2827278682606527653">Менюто на картата за емисията се показва на половината височина</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Споделяне на изображението</translation>
 <translation id="3387650086002190359">Изтеглянето на „<ph name="FILE_NAME" />“ не бе успешно поради грешки във файловата система.</translation>
 <translation id="3389286852084373014">Текстът е твърде голям</translation>
-<translation id="3391512812407811893">Изпробване на Privacy Sandbox</translation>
 <translation id="3398320232533725830">Отваряне на диспечера на отметките</translation>
 <translation id="3407392651057365886">Предварително зареждане на още страници. Възможно е страници да бъдат заредени предварително чрез сървърите на Google, когато други сайтове заявят това.</translation>
 <translation id="3414952576877147120">Размер:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Повторно следене</translation>
 <translation id="6002122790816966947">Вашите устройства</translation>
 <translation id="6005538289190791541">Предложена парола</translation>
-<translation id="6032091552407840792">Този експеримент е активен само в <ph name="BEGIN_LINK" />някои региони<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Чрез <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> Chrome разработва нови технологии, за да ви предпазва от проследяване в различни сайтове, съхранявайки отворената мрежа.
-
-Експериментите за Privacy Sandbox продължават да се разработват активно и са налице в избрани региони. Засега сайтовете може да изпробват Privacy Sandbox и да продължат да използват настоящите уеб технологии, като „бисквитките“ на трети страни.</translation>
 <translation id="6039379616847168523">Преминаване към следващия раздел</translation>
 <translation id="6040143037577758943">Затваряне</translation>
 <translation id="604124094241169006">Автоматично</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Добавяне</translation>
 <translation id="7798392620021911922">Бяха възстановени <ph name="TAB_COUNT" /> раздела</translation>
 <translation id="780301667611848630">Не, благодаря</translation>
-<translation id="7805768142964895445">Състояние</translation>
 <translation id="7808889146555843082">Изтриването на тази парола няма да премахне профила ви за <ph name="SITE" />. За да го защитите от други хора, променете паролата си или изтрийте профила си за <ph name="SITE" />.</translation>
 <translation id="7810647596859435254">Отваряне със…</translation>
 <translation id="7815484226266492798">Дълга екранна снимка</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Шифроване на синхронизираните данни със собствения ви пропуск за синхронизиране</translation>
 <translation id="8466613982764129868">Уверете се, че устройството <ph name="TARGET_DEVICE_NAME" /> е свързано с интернет</translation>
 <translation id="8473863474539038330">Адреси и др.</translation>
-<translation id="8481921391193215807">Когато настройката е включена, сайтовете може да използват описаните тук техники за защита на поверителността, за да предоставят съдържанието и услугите си. Техниките съдържат алтернативи на проследяването в различни сайтове. С течение на времето може да бъдат добавени други експерименти.
-
-<ph name="BEGIN_LIST_ITEM1" />Рекламодателите и издателите могат да използват техниката FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Те могат да проучват ефективността на рекламите по начин, който не проследява действията ви в различните сайтове.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Функциите за изпробване са включени</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /><ph name="SEPARATOR" /><ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Отваряне на страницата „История“</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Името на файла вече съществува</translation>
 <translation id="8666759526542103597">Всичко за персонализирането на рекламите въз основа на браузъра</translation>
 <translation id="8676789164135894283">Потвърждения при вход</translation>
-<translation id="867767487203716855">Следваща актуализация</translation>
 <translation id="8683039184091909753">изображение</translation>
-<translation id="8683081248374354009">Повторно задаване на групата</translation>
 <translation id="869891660844655955">Дата на валидност</translation>
 <translation id="8699120352855309748">Да не се предлага превод от тези езици</translation>
 <translation id="8712637175834984815">Разбрах</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
index 1e8a20a..ce772f1a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">শেষ ঘণ্টা</translation>
 <translation id="1724977129262658800">আপনার পাসওয়ার্ড এডিট করতে আনলক করুন</translation>
 <translation id="1726477445370128854">Chrome-এর মতে আপনি দেখতে পারেন এমন পৃষ্ঠা প্রিলোড করা হলে আরও দ্রুত ব্রাউজ ও সার্চ করতে পারবেন</translation>
-<translation id="173522743738009831">প্রাইভেসি স্যান্ডবক্স সম্পর্কে</translation>
 <translation id="1736419249208073774">ঘুরে দেখুন</translation>
 <translation id="1749561566933687563">আপনার বুকমার্কগুলি সিঙ্ক করুন</translation>
 <translation id="1750259112639922169">ট্যাব গ্রুপ - <ph name="TAB_COUNT" />টি ট্যাব</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> সেকেন্ড বাকি আছে</translation>
 <translation id="2779651927720337254">করা যায়নি</translation>
 <translation id="2781151931089541271">১ সেকেন্ড বাকি আছে</translation>
-<translation id="2788468313014644040">গ্রুপ নম্বর</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> নামের ট্যাবটি বন্ধ করা হবে</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">আপনার <ph name="BEGIN_LINK" />Google অ্যাকাউন্ট<ph name="END_LINK" />-এ সেভ করা পাসওয়ার্ড দেখুন এবং পরিচালনা করুন</translation>
 <translation id="2818669890320396765">আপনার সমস্ত ডিভাইসে বুকমার্কগুলি পেতে সাইন-ইন করে সিঙ্ক বিকল্প চালু করুন</translation>
 <translation id="2827278682606527653">স্ক্রিনের অর্ধেক উচ্চতা পর্যন্ত ফিড কার্ড মেনু খোলা আছে</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ছবি শেয়ার করুন</translation>
 <translation id="3387650086002190359">ফাইল সিস্টেম ত্রুটির কারণে <ph name="FILE_NAME" /> ডাউনলোড করা যায়নি।</translation>
 <translation id="3389286852084373014">টেক্সটটি অনেক বড়</translation>
-<translation id="3391512812407811893">প্রাইভেসি স্যান্ডবক্স ট্রায়াল</translation>
 <translation id="3398320232533725830">বুকমার্কস ম্যানেজার খুলুন</translation>
 <translation id="3407392651057365886">আরও পৃষ্ঠা প্রিলোড করা হয়। অন্য সাইট অনুরোধ করলে Google সার্ভারের মাধ্যমে পৃষ্ঠা প্রিলোড করা হতে পারে।</translation>
 <translation id="3414952576877147120">মাপ:</translation>
@@ -915,10 +911,6 @@
 <translation id="6000203700195075278">আবার ফলো করুন</translation>
 <translation id="6002122790816966947">আপনার ডিভাইসগুলি</translation>
 <translation id="6005538289190791541">প্রস্তাবিত পাসওয়ার্ড</translation>
-<translation id="6032091552407840792">এই ট্রায়াল শুধুমাত্র <ph name="BEGIN_LINK" />কিছু অঞ্চলে<ph name="END_LINK" /> অ্যাক্টিভ আছে।</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />প্রাইভেসি স্যান্ডবক্স<ph name="END_LINK" />-এর সাহায্যে 'Chrome' এক নতুন প্রযুক্তি তৈরি করছে। এটি ওপেন ওয়েব সুরক্ষিত করার মাধ্যমে আপনাকে ক্রস-সাইট ট্র্যাক করা থেকে রক্ষা করে।
-
-'প্রাইভেসি স্যান্ডবক্স' ট্রায়াল এখনও তৈরি করা হচ্ছে এবং বাছাই করা অঞ্চলগুলিতেই এটি উপলভ্য। আপাতত, থার্ড-পার্টি কুকির মতো বর্তমান ওয়েব প্রযুক্তি ব্যবহার করা চালিয়ে যাওয়ার সময় সাইটগুলি 'প্রাইভেসি স্যান্ডবক্স' ব্যবহার করে দেখতে পারে।</translation>
 <translation id="6039379616847168523">পরবর্তী ট্যাবে চলে যান</translation>
 <translation id="6040143037577758943">বন্ধ</translation>
 <translation id="604124094241169006">স্বয়ংক্রিয়</translation>
@@ -1250,7 +1242,6 @@
 <translation id="7791543448312431591">জুড়ুন</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" />টি ট্যাব ফিরিয়ে আনা হয়েছে</translation>
 <translation id="780301667611848630">না থাক</translation>
-<translation id="7805768142964895445">স্থিতি</translation>
 <translation id="7808889146555843082">এই পাসওয়ার্ডটি মুছে দিলেও, <ph name="SITE" />-এ থাকা আপনার অ্যাকাউন্ট মুছে যাবে না। অন্যদের কাছ থেকে গোপন রাখতে, <ph name="SITE" />-এ আপনার দেওয়া পাসওয়ার্ড পরিবর্তন করুন বা অ্যাকাউন্ট মুছে দিন।</translation>
 <translation id="7810647596859435254">এর মাধ্যমে খুলুন...</translation>
 <translation id="7815484226266492798">বড় স্ক্রিনশট নেওয়ার বোতাম</translation>
@@ -1384,11 +1375,6 @@
 <translation id="8461694314515752532">আপনার নিজস্ব সিঙ্ক পাসফ্রেজ দিয়ে সিঙ্ক করা ডেটা এনক্রিপ্ট করুন</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> ডিভাইসটি ইন্টারনেটের সাথে কানেক্ট করা আছে কিনা দেখে নিন</translation>
 <translation id="8473863474539038330">ঠিকানা ও আরও অনেককিছু</translation>
-<translation id="8481921391193215807">চালু করা থাকলে, সাইটগুলি নিজের কন্টেন্ট এবং পরিষেবা প্রদান করতে এখানে উল্লেখ করা গোপনীয়তা-রক্ষা করার বিভিন্ন কৌশল অবলম্বন করতে পারে। এর মধ্যে ক্রস-সাইট ট্র্যাকিংয়ের বিকল্পও অন্তর্ভুক্ত রয়েছে। সময়ে সময়ে আরও ট্রায়াল যোগ করা হতে পারে।
-
-<ph name="BEGIN_LIST_ITEM1" />বিজ্ঞাপনদাতা এবং প্রকাশকরা FLoC ব্যবহার করতে পারেন।<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />বিজ্ঞাপনদাতা এবং প্রকাশকরা এমন পদ্ধতিতেও কোনও বিজ্ঞাপনের কার্যকারিতা সম্পর্কে সমীক্ষা করতে পারেন যেটি বিভিন্ন সাইট জুড়ে আপনার অ্যাক্টিভি ট্র্যাক করবে না।<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ট্রায়াল ফিচার চালু আছে</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ইতিহাস পৃষ্ঠাটি খুলুন</translation>
@@ -1434,9 +1420,7 @@
 <translation id="8664979001105139458">ফাইলের নামটি আগে থেকেই আছে</translation>
 <translation id="8666759526542103597">ব্রাউজার ভিত্তিক পছন্দ অনুযায়ী বিজ্ঞাপন বেছে নেওয়া সম্পর্কে</translation>
 <translation id="8676789164135894283">সাইন-ইন করার ক্ষেত্রে যাচাইকরণ</translation>
-<translation id="867767487203716855">পরবর্তী আপডেট</translation>
 <translation id="8683039184091909753">ছবি</translation>
-<translation id="8683081248374354009">গ্রুপ রিসেট করুন</translation>
 <translation id="869891660844655955">মেয়াদকাল সমাপ্তির তারিখ</translation>
 <translation id="8699120352855309748">এইসব ভাষায় অনুবাদ হবে না</translation>
 <translation id="8712637175834984815">বুঝেছি</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
index 011d441..94e82b6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Posljednji sat</translation>
 <translation id="1724977129262658800">Otključajte da uredite lozinku</translation>
 <translation id="1726477445370128854">Možete brže pregledati i pretraživati kada Chrome predučita stranice za koje smatra da ih možete posjetiti</translation>
-<translation id="173522743738009831">O Okruženju zaštićene privatnosti</translation>
 <translation id="1736419249208073774">Istraži</translation>
 <translation id="1749561566933687563">Sinhronizirajte svoje oznake</translation>
 <translation id="1750259112639922169">Grupa kartica – <ph name="TAB_COUNT" /> kart.</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Preostalo je <ph name="SECONDS" /> s</translation>
 <translation id="2779651927720337254">neuspjelo</translation>
 <translation id="2781151931089541271">Preostala je 1 sek</translation>
-<translation id="2788468313014644040">Član grupe</translation>
 <translation id="2800066122460699237">Kartica <ph name="TAB_TITLE" /> će se zatvoriti</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Prikažite i upravljajte sačuvanim lozinkama u svom <ph name="BEGIN_LINK" />Google računu<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Da biste imali svoje oznake na svim svojim uređajima, prijavite se i uključite sinhronizaciju</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Dijeli sliku</translation>
 <translation id="3387650086002190359">Preuzimanje fajla <ph name="FILE_NAME" /> nije uspjelo zbog sistemskih grešaka.</translation>
 <translation id="3389286852084373014">Tekst je predug</translation>
-<translation id="3391512812407811893">Probe Okruženja zaštićene privatnosti</translation>
 <translation id="3398320232533725830">Otvori upravitelja oznaka</translation>
 <translation id="3407392651057365886">Više stranica se predučitava. Stranice se mogu predučitati putem Googleovih servera kada to zatraže druge web lokacije.</translation>
 <translation id="3414952576877147120">Veličina:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Prati ponovo</translation>
 <translation id="6002122790816966947">Vaši uređaji</translation>
 <translation id="6005538289190791541">Prijedlog za lozinku</translation>
-<translation id="6032091552407840792">Ovaj probni period je aktivan samo u <ph name="BEGIN_LINK" />određenim regijama<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Pomoću <ph name="BEGIN_LINK" />Okruženja zaštićene privatnosti<ph name="END_LINK" />, Chrome razvija nove tehnologije da vas zaštiti od praćenja između web lokacija, a pri tome će očuvati otvoreni web.
-
-Probni periodi Okruženja zaštićene privatnosti i dalje su u fazi aktivnog razvoja i dostupni su u odabranim područjima. Za sada web lokacije mogu isprobati Zaštićeno okruženje za privatnost dok pri tome nastavljaju koristiti web tehnologije kao što su kolačići trećih strana.</translation>
 <translation id="6039379616847168523">Pređite na sljedeću karticu</translation>
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="604124094241169006">Automatski</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Dodaj</translation>
 <translation id="7798392620021911922">Vraćeno kartica: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Ne, hvala</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Brisanjem ove lozinke se neće izbrisati vaš račun na web lokaciji <ph name="SITE" />. Promijenite lozinku ili izbrišite račun na web lokaciji <ph name="SITE" /> da ga zaštitite od drugih.</translation>
 <translation id="7810647596859435254">Otvori koristeći…</translation>
 <translation id="7815484226266492798">Dugi snimak ekrana</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Šifrirajte sinhronizirane podatke svojim pristupnim izrazom</translation>
 <translation id="8466613982764129868">Provjerite je li uređaj <ph name="TARGET_DEVICE_NAME" /> povezan na internet</translation>
 <translation id="8473863474539038330">Adrese i još mnogo toga</translation>
-<translation id="8481921391193215807">Kada je uključeno, web lokacije mogu koristiti tehnike kojima se štiti privatnost prikazane ovdje u svrhu pružanja sadržaja i usluga. Tehnike uključuju alternative praćenju kretanja između web lokacija. S vremenom se može dodati više probnih perioda.
-
-<ph name="BEGIN_LIST_ITEM1" />Oglašivači i izdavači mogu koristiti FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Oglašivači i izdavači mogu proučavati učinkovitost oglasa, a da pri tome ne prate vaše aktivnosti na web lokacijama.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Funkcije probnog perioda su uključene</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Otvori stranicu sa historijom</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Naziv fajla već postoji</translation>
 <translation id="8666759526542103597">O personalizaciji oglasa zasnovanoj na pregledniku</translation>
 <translation id="8676789164135894283">Potvrde prijave</translation>
-<translation id="867767487203716855">Sljedeće ažuriranje</translation>
 <translation id="8683039184091909753">slika</translation>
-<translation id="8683081248374354009">Poništi grupu</translation>
 <translation id="869891660844655955">Datum isteka</translation>
 <translation id="8699120352855309748">Nemoj nuditi prevođenje ovih jezika</translation>
 <translation id="8712637175834984815">Razumijem</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
index fbd321a1..7b69bd01 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Darrera hora</translation>
 <translation id="1724977129262658800">Desbloqueja per editar la contrasenya</translation>
 <translation id="1726477445370128854">Pots navegar i fer cerques més ràpidament quan Chrome carrega prèviament les pàgines que considera que podries visitar</translation>
-<translation id="173522743738009831">Sobre Privacy Sandbox</translation>
 <translation id="1736419249208073774">Explora</translation>
 <translation id="1749561566933687563">Sincronitzeu les adreces d'interès</translation>
 <translation id="1750259112639922169">Grup de pestanyes: <ph name="TAB_COUNT" /> pestanyes</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Queden <ph name="SECONDS" /> segons</translation>
 <translation id="2779651927720337254">ha fallat</translation>
 <translation id="2781151931089541271">Queda 1 segon</translation>
-<translation id="2788468313014644040">Número de grup</translation>
 <translation id="2800066122460699237">Es tancarà la pestanya <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Consulta i gestiona les contrasenyes desades al <ph name="BEGIN_LINK" />Compte de Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Per accedir a les adreces d'interès des de tots els dispositius, inicia la sessió i activa la sincronització</translation>
 <translation id="2827278682606527653">El menú de la targeta del tauler ocupa la meitat inferior de la pantalla</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Comparteix la imatge</translation>
 <translation id="3387650086002190359">No s'ha pogut baixar <ph name="FILE_NAME" /> a causa d'errors amb el sistema de fitxers.</translation>
 <translation id="3389286852084373014">El text és massa llarg</translation>
-<translation id="3391512812407811893">Proves de Privacy Sandbox</translation>
 <translation id="3398320232533725830">Obre el gestor d'adreces d'interès</translation>
 <translation id="3407392651057365886">Es precarreguen més pàgines. És possible que les pàgines estiguin precarregades mitjançant els servidors de Google quan altres llocs web ho sol·licitin.</translation>
 <translation id="3414952576877147120">Mida:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Torna a seguir</translation>
 <translation id="6002122790816966947">Els teus dispositius</translation>
 <translation id="6005538289190791541">Contrasenya suggerida</translation>
-<translation id="6032091552407840792">Aquesta prova només està activa en <ph name="BEGIN_LINK" />algunes regions<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Amb <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome està desenvolupant noves tecnologies per protegir-te dels mecanismes de seguiment entre llocs web, alhora que preserva el web obert.
-
-Les proves de Privacy Sandbox encara s'estan desenvolupant i només estan disponibles en determinades regions. Per ara, és possible que els llocs web provin Privacy Sandbox mentre continuen utilitzant les tecnologies web actuals, com ara les galetes de tercers.</translation>
 <translation id="6039379616847168523">Ves a la pestanya següent</translation>
 <translation id="6040143037577758943">Tanca</translation>
 <translation id="604124094241169006">Automàtic</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Afegeix</translation>
 <translation id="7798392620021911922">S'han restaurat <ph name="TAB_COUNT" /> pestanyes</translation>
 <translation id="780301667611848630">No, gràcies</translation>
-<translation id="7805768142964895445">Estat</translation>
 <translation id="7808889146555843082">Encara que suprimeixis aquesta contrasenya, no se suprimirà el teu compte de <ph name="SITE" />. Canvia la contrasenya o suprimeix el teu compte de <ph name="SITE" /> per protegir-lo dels altres.</translation>
 <translation id="7810647596859435254">Obre amb…</translation>
 <translation id="7815484226266492798">Captura de pantalla llarga</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Encripta les dades sincronitzades amb la teva frase de contrasenya de sincronització</translation>
 <translation id="8466613982764129868">Comprova que el dispositiu <ph name="TARGET_DEVICE_NAME" /> estigui connectat a Internet</translation>
 <translation id="8473863474539038330">Adreces i més</translation>
-<translation id="8481921391193215807">Quan està activada, els llocs web poden utilitzar les tècniques de protecció de la privadesa que es mostren aquí per oferir el seu contingut i els seus serveis. Per exemple, alternatives per fer seguiments entre llocs web. Pot ser que més endavant s'hi afegeixin més proves.
-
-<ph name="BEGIN_LIST_ITEM1" />Els anunciants i els editors poden utilitzar la tècnica FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Els anunciants i els editors poden estudiar l'efectivitat dels anuncis sense fer un seguiment del que fas als llocs web.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Les funcions de prova estan activades</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Obre la pàgina de l'historial</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">El nom del fitxer ja existeix</translation>
 <translation id="8666759526542103597">Sobre la personalització d'anuncis basada en el navegador</translation>
 <translation id="8676789164135894283">Verificacions d'inici de sessió</translation>
-<translation id="867767487203716855">Propera actualització</translation>
 <translation id="8683039184091909753">imatge</translation>
-<translation id="8683081248374354009">Restableix el grup</translation>
 <translation id="869891660844655955">Data de caducitat</translation>
 <translation id="8699120352855309748">No proposis traduir aquests idiomes</translation>
 <translation id="8712637175834984815">Entesos</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 a6638ab..45df7602 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Poslední hodina</translation>
 <translation id="1724977129262658800">Chcete-li upravit heslo, odemkněte zařízení</translation>
 <translation id="1726477445370128854">Když bude Chrome předběžně načítat stránky, které byste podle něj mohli navštívit, budete moci procházet web a vyhledávat rychleji.</translation>
-<translation id="173522743738009831">Informace o funkci Privacy Sandbox</translation>
 <translation id="1736419249208073774">Prozkoumat</translation>
 <translation id="1749561566933687563">Synchronizace záložek</translation>
 <translation id="1750259112639922169">Skupina karet – počet karet: <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Zbývá: <ph name="SECONDS" /> s</translation>
 <translation id="2779651927720337254">nezdařilo se</translation>
 <translation id="2781151931089541271">Zbývá: 1 s</translation>
-<translation id="2788468313014644040">Číslo skupiny</translation>
 <translation id="2800066122460699237">Zavře se karta <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">Federované učení kohort</translation>
 <translation id="281504910091592009">Zobrazit a spravovat uložená hesla v <ph name="BEGIN_LINK" />účtu Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Chcete-li mít záložky ve všech zařízeních, přihlaste se a zapněte synchronizaci</translation>
 <translation id="2827278682606527653">Napůl otevřená nabídka karty informačního kanálu</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Sdílet obrázek</translation>
 <translation id="3387650086002190359">Stažení souboru <ph name="FILE_NAME" /> se nezdařilo z důvodu chyb systému souborů.</translation>
 <translation id="3389286852084373014">Text je příliš dlouhý</translation>
-<translation id="3391512812407811893">Privacy Sandbox</translation>
 <translation id="3398320232533725830">Otevřít správce záložek</translation>
 <translation id="3407392651057365886">Předběžně se načítá více stránek. Stránky, o které žádají jiné weby, se mohou předběžně načíst prostřednictvím serverů Google.</translation>
 <translation id="3414952576877147120">Velikost:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Znovu sledovat</translation>
 <translation id="6002122790816966947">Vaše zařízení</translation>
 <translation id="6005538289190791541">Navrhované heslo</translation>
-<translation id="6032091552407840792">Tato zkušební funkce je k dispozici pouze v <ph name="BEGIN_LINK" />některých oblastech<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">V rámci sady <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> vyvíjí tým Chrome nové technologie, které uživatele chrání před sledováním mezi weby a přitom zachovávají otevřenost webu.
-
-Zkušební technologie Privacy Sandbox jsou stále aktivně vyvíjeny a jsou dostupné jen ve vybraných oblastech. Prozatím mohou weby technologie Privacy Sandbox zkoušet a přitom nadále používat aktuální technologie, jako jsou soubory cookie třetích stran.</translation>
 <translation id="6039379616847168523">Přejít na další kartu</translation>
 <translation id="6040143037577758943">Zavřít</translation>
 <translation id="604124094241169006">Automaticky</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Přidat</translation>
 <translation id="7798392620021911922">Obnovené karty: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Ne, děkuji</translation>
-<translation id="7805768142964895445">Stav</translation>
 <translation id="7808889146555843082">Odstraněním tohoto hesla nesmažete svůj účet na webu <ph name="SITE" />. Pokud chcete ochránit svá data, změňte své heslo nebo účet na <ph name="SITE" /> smažte.</translation>
 <translation id="7810647596859435254">Otevřít v aplikaci…</translation>
 <translation id="7815484226266492798">Dlouhý snímek obrazovky</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Šifrovat synchronizovaná data pomocí vlastní heslové fráze pro synchronizaci</translation>
 <translation id="8466613982764129868">Zkontrolujte, zda je zařízení <ph name="TARGET_DEVICE_NAME" /> připojené k internetu</translation>
 <translation id="8473863474539038330">Adresy a další</translation>
-<translation id="8481921391193215807">Když je tato možnost zapnutá, weby při poskytování obsahu a služeb mohou používat zde uvedené techniky zajišťující ochranu soukromí. Patří sem i alternativy ke sledování napříč weby. Časem mohou přibýt další zkušební funkce.
-
-<ph name="BEGIN_LIST_ITEM1" />Inzerenti a majitelé obsahu mohou používat federované učení kohort.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Inzerenti a majitelé obsahu mohou posuzovat účinnost reklam způsobem, při kterém nebudete sledováni napříč weby.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Zkušební funkce jsou zapnuté</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Otevřít stránku historie</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Název souboru již existuje</translation>
 <translation id="8666759526542103597">Personalizace reklam na základě prohlížeče</translation>
 <translation id="8676789164135894283">Ověření přihlášení</translation>
-<translation id="867767487203716855">Další aktualizace</translation>
 <translation id="8683039184091909753">obrázek</translation>
-<translation id="8683081248374354009">Resetovat skupinu</translation>
 <translation id="869891660844655955">Datum vypršení platnosti</translation>
 <translation id="8699120352855309748">Nenabízet překlad do těchto jazyků</translation>
 <translation id="8712637175834984815">Hotovo</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
index e8c19341..49248571 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Awr ddiwethaf</translation>
 <translation id="1724977129262658800">Datglowch i olygu eich cyfrinair</translation>
 <translation id="1726477445370128854">Gallwch bori a chwilio'n gyflymach pan fydd Chrome yn rhaglwytho tudalennau y mae'n credu y byddwch yn ymweld â nhw</translation>
-<translation id="173522743738009831">Ynghylch Privacy Sandbox</translation>
 <translation id="1736419249208073774">Archwilio</translation>
 <translation id="1749561566933687563">Cysonwch eich nodau tudalen</translation>
 <translation id="1750259112639922169">Grŵp tabiau - <ph name="TAB_COUNT" /> o dabiau</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> eiliad ar ôl</translation>
 <translation id="2779651927720337254">wedi methu</translation>
 <translation id="2781151931089541271">1 eiliad ar ôl</translation>
-<translation id="2788468313014644040">Rhif grŵp</translation>
 <translation id="2800066122460699237">Bydd y tab <ph name="TAB_TITLE" /> yn cael ei gau</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Gweld a rheoli cyfrineiriau sydd wedi'u cadw yn eich <ph name="BEGIN_LINK" />Cyfrif Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">I gael eich nodau tudalen ar eich holl ddyfeisiau, mewngofnodwch a throwch gysoni ymlaen</translation>
 <translation id="2827278682606527653">Mae dewislen cardiau'r ffrwd wedi ei hagor ar hanner uchder</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Rhannu llun</translation>
 <translation id="3387650086002190359">Methwyd â lawrlwytho <ph name="FILE_NAME" /> oherwydd gwallau system.</translation>
 <translation id="3389286852084373014">Mae'r testun yn rhy fawr</translation>
-<translation id="3391512812407811893">Treialon Privacy Sandbox</translation>
 <translation id="3398320232533725830">Agor y rheolwr nodau tudalen</translation>
 <translation id="3407392651057365886">Mae rhagor o dudalennau'n cael eu rhaglwytho. Gellir rhaglwytho tudalennau drwy weinyddion Google pan ofynnir amdanynt gan wefannau eraill.</translation>
 <translation id="3414952576877147120">Maint:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Ail-ddilyn</translation>
 <translation id="6002122790816966947">Eich dyfeisiau</translation>
 <translation id="6005538289190791541">Cyfrinair a awgrymir</translation>
-<translation id="6032091552407840792">Mae'r treial hwn yn weithredol mewn <ph name="BEGIN_LINK" />rhai rhanbarthau<ph name="END_LINK" /> yn unig.</translation>
-<translation id="6033245666633565791">Gyda <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, mae Chrome yn datblygu technolegau newydd i'ch amddiffyn rhag olrhain traws-wefan wrth ddiogelu'r we agored.
-
-Mae treialon Privacy Sandbox yn dal i gael eu datblygu ac maent ar gael mewn rhanbarthau penodol. Am y tro, gall gwefannau roi cynnig ar Privacy Sandbox wrth barhau i ddefnyddio technolegau gwe presennol megis cwcis trydydd parti.</translation>
 <translation id="6039379616847168523">Neidio i'r tab nesaf</translation>
 <translation id="6040143037577758943">Cau</translation>
 <translation id="604124094241169006">Awtomatig</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Ychwanegu</translation>
 <translation id="7798392620021911922">Adferwyd <ph name="TAB_COUNT" /> o dabiau</translation>
 <translation id="780301667611848630">Dim diolch</translation>
-<translation id="7805768142964895445">Statws</translation>
 <translation id="7808889146555843082">Ni fydd dileu'r cyfrinair hwn yn dileu'ch cyfrif ar <ph name="SITE" />. Newidiwch eich cyfrinair neu dilëwch eich cyfrif ar <ph name="SITE" /> i'w gadw'n ddiogel rhag eraill.</translation>
 <translation id="7810647596859435254">Agor gyda…</translation>
 <translation id="7815484226266492798">Sgrinlun hir</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Amgryptio data sydd wedi'u cysoni gyda'ch cyfrinymadrodd cysoni eich hun</translation>
 <translation id="8466613982764129868">Gwnewch yn siŵr bod <ph name="TARGET_DEVICE_NAME" /> wedi'i gysylltu â'r rhyngrwyd</translation>
 <translation id="8473863474539038330">Cyfeiriadau a rhagor</translation>
-<translation id="8481921391193215807">Pan fydd wedi'i droi ymlaen, gall gwefannau ddefnyddio'r technegau amddiffyn preifatrwydd a ddangosir yma i ddarparu eu cynnwys a'u gwasanaethau. Mae hyn yn cynnwys dewisiadau amgen i olrhain ar draws gwefannau. Gellir ychwanegu rhagor o brofion dros amser.
-
-<ph name="BEGIN_LIST_ITEM1" />Gall hysbysebwyr a chyhoeddwyr ddefnyddio FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Gall hysbysebwyr a chyhoeddwyr astudio effeithiolrwydd hysbysebion mewn ffordd nad yw'n eich olrhain ar draws gwefannau.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Mae nodweddion prawf wedi'u troi ymlaen</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Agor y dudalen hanes</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Mae'r enw ffeil eisoes yn bodoli</translation>
 <translation id="8666759526542103597">Ynglŷn â phersonoleiddio hysbysebion ar sail Porwr</translation>
 <translation id="8676789164135894283">Gwiriadau mewngofnodi</translation>
-<translation id="867767487203716855">Diweddariad nesaf</translation>
 <translation id="8683039184091909753">llun</translation>
-<translation id="8683081248374354009">Ailosod grŵp</translation>
 <translation id="869891660844655955">Dyddiad darfod</translation>
 <translation id="8699120352855309748">Peidiwch â chynnig cyfieithu'r ieithoedd hyn</translation>
 <translation id="8712637175834984815">Iawn</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 c12bcfe..f740c61 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Den seneste time</translation>
 <translation id="1724977129262658800">Lås op for at redigere din adgangskode</translation>
 <translation id="1726477445370128854">Du kan browse og søge hurtigere, når Chrome forudindlæser sider, som Chrome tror, du kunne være interesseret i at besøge</translation>
-<translation id="173522743738009831">Om Privacy Sandbox</translation>
 <translation id="1736419249208073774">Mere</translation>
 <translation id="1749561566933687563">Synkroniser dine bogmærker</translation>
 <translation id="1750259112639922169">Fanegruppe – <ph name="TAB_COUNT" /> faner</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sekunder tilbage</translation>
 <translation id="2779651927720337254">mislykkedes</translation>
 <translation id="2781151931089541271">1 sekund tilbage</translation>
-<translation id="2788468313014644040">Gruppenummer</translation>
 <translation id="2800066122460699237">Fanen <ph name="TAB_TITLE" /> lukkes</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Se og administrer gemte adgangskoder på din <ph name="BEGIN_LINK" />Google-konto<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Log ind, og aktivér synkronisering for at få vist dine bogmærker på alle dine enheder</translation>
 <translation id="2827278682606527653">Feedkortmenu i halv højde</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Del billede</translation>
 <translation id="3387650086002190359">Download af <ph name="FILE_NAME" /> mislykkedes på grund af fejl i filsystemet.</translation>
 <translation id="3389286852084373014">Teksten er for lang</translation>
-<translation id="3391512812407811893">Prøveperioder til Privacy Sandbox</translation>
 <translation id="3398320232533725830">Åbn bogmærkeadministratoren</translation>
 <translation id="3407392651057365886">Flere sider forudindlæses. Sider forudindlæses muligvis via Googles servere, når andre websites anmoder om siderne.</translation>
 <translation id="3414952576877147120">Størrelse:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Følg igen</translation>
 <translation id="6002122790816966947">Dine enheder</translation>
 <translation id="6005538289190791541">Foreslået adgangskode</translation>
-<translation id="6032091552407840792">Denne prøveperiode er kun aktiv i <ph name="BEGIN_LINK" />nogle områder<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Med <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> udvikler Chrome nye teknologier, der beskytter dig mod sporing på tværs af forskellige websites og samtidig bevarer det åbne net.
-
-Prøveperioder til Privacy Sandbox er stadig under udvikling og kan anvendes i udvalgte områder. Indtil videre kan websites afprøve Privacy Sandbox, samtidig med at de anvender aktuelle webteknologier som f.eks. tredjepartscookies.</translation>
 <translation id="6039379616847168523">Gå til den næste fane</translation>
 <translation id="6040143037577758943">Luk</translation>
 <translation id="604124094241169006">Automatisk</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Tilføj</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> faner blev gendannet</translation>
 <translation id="780301667611848630">Nej tak</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Fjernelse af denne adgangskode sletter ikke din konto på <ph name="SITE" />. Skift din adgangskode, eller slet din konto på <ph name="SITE" /> for at beskytte den mod andre.</translation>
 <translation id="7810647596859435254">Åbn med…</translation>
 <translation id="7815484226266492798">Langt screenshot</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Kryptér synkroniserede data med din egen adgangssætning til synkronisering</translation>
 <translation id="8466613982764129868">Sørg for, at <ph name="TARGET_DEVICE_NAME" /> har forbindelse til internettet</translation>
 <translation id="8473863474539038330">Adresser m.m.</translation>
-<translation id="8481921391193215807">Når Privacy Sandbox er aktiveret, kan websites levere deres indhold og tjenester via den teknologi til beskyttelse af personlige oplysninger, som vises her. Denne teknologi omfatter alternative metoder til sporing på tværs af forskellige websites. Der kan blive tilføjet flere prøveperioder over tid.
-
-<ph name="BEGIN_LIST_ITEM1" />Annoncører og udgivere kan bruge FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Annoncører og udgivere kan undersøge effektiviteten af annoncer på en måde, der ikke sporer dig på tværs af forskellige websites.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Prøvefunktioner er slået til</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Åbn siden med historik</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Filnavnet findes allerede</translation>
 <translation id="8666759526542103597">Om browserbaseret annoncetilpasning</translation>
 <translation id="8676789164135894283">Loginbekræftelser</translation>
-<translation id="867767487203716855">Næste opdatering</translation>
 <translation id="8683039184091909753">billede</translation>
-<translation id="8683081248374354009">Nulstil gruppe</translation>
 <translation id="869891660844655955">Udløbsdato</translation>
 <translation id="8699120352855309748">Tilbyd ikke at oversætte disse sprog</translation>
 <translation id="8712637175834984815">Forstået</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
index 73e788da..9b2f8e2 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Letzte Stunde</translation>
 <translation id="1724977129262658800">Entsperren, um dein Passwort zu bearbeiten</translation>
 <translation id="1726477445370128854">Du kannst schneller surfen und suchen, wenn Chrome Seiten vorab lädt, die du wahrscheinlich aufrufen wirst</translation>
-<translation id="173522743738009831">Informationen zu Privacy Sandbox</translation>
 <translation id="1736419249208073774">Entdecken</translation>
 <translation id="1749561566933687563">Lesezeichen synchronisieren</translation>
 <translation id="1750259112639922169">Tabgruppe – <ph name="TAB_COUNT" /> Tabs</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> Sekunden übrig</translation>
 <translation id="2779651927720337254">fehlgeschlagen</translation>
 <translation id="2781151931089541271">1 Sekunde übrig</translation>
-<translation id="2788468313014644040">Gruppennummer</translation>
 <translation id="2800066122460699237">Der Tab „<ph name="TAB_TITLE" />“ wird geschlossen</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Gespeicherte Passwörter in meinem <ph name="BEGIN_LINK" />Google-Konto<ph name="END_LINK" /> ansehen und verwalten</translation>
 <translation id="2818669890320396765">Melde dich an und aktiviere die Synchronisierung, um deine Lesezeichen auf allen deinen Geräten zu sehen</translation>
 <translation id="2827278682606527653">Feedkartenmenü halb geöffnet</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Bild teilen</translation>
 <translation id="3387650086002190359"><ph name="FILE_NAME" /> konnte aufgrund von Dateisystemfehlern nicht heruntergeladen werden.</translation>
 <translation id="3389286852084373014">SMS zu lang</translation>
-<translation id="3391512812407811893">Privacy Sandbox-Probenutzung</translation>
 <translation id="3398320232533725830">Lesezeichen-Manager öffnen</translation>
 <translation id="3407392651057365886">Es werden mehr Seiten vorab geladen. Seiten können über Google-Server vorab geladen werden, wenn dies von anderen Websites angefordert wird.</translation>
 <translation id="3414952576877147120">Größe:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Wieder folgen</translation>
 <translation id="6002122790816966947">Meine Geräte</translation>
 <translation id="6005538289190791541">Vorgeschlagenes Passwort</translation>
-<translation id="6032091552407840792">Diese Testversion ist probeweise nur in <ph name="BEGIN_LINK" />ausgewählten Regionen verfügbar<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Im Rahmen der Initiative <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> werden neue Technologien entwickelt, die zum Schutz vor websiteübergreifenden Tracking-Mechanismen und zum Erhalt des offenen Webs beitragen.
-
-Privacy Sandbox befindet sich noch in der Entwicklung und Testversionen sind nur in ausgewählten Regionen verfügbar. Manche Websites, die Privacy Sandbox probeweise nutzen, verwenden momentan möglicherweise weiterhin aktuelle Web-Technologien wie Drittanbieter-Cookies.</translation>
 <translation id="6039379616847168523">Zum nächsten Tab wechseln</translation>
 <translation id="6040143037577758943">Schließen</translation>
 <translation id="604124094241169006">Automatisch</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Hinzufügen</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> Tabs wiederhergestellt</translation>
 <translation id="780301667611848630">Kein Interesse</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Durch das Entfernen dieses Passworts wird dein <ph name="SITE" />-Konto nicht gelöscht. Ändere dein Passwort oder lösche dein Konto auf <ph name="SITE" />, um das Konto gegen unbefugten Zugriff zu schützen.</translation>
 <translation id="7810647596859435254">Öffnen mit…</translation>
 <translation id="7815484226266492798">Langer Screenshot</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Synchronisierte Daten mit eigener Synchronisierungspassphrase verschlüsseln</translation>
 <translation id="8466613982764129868">Prüfe, ob <ph name="TARGET_DEVICE_NAME" /> mit dem Internet verbunden ist</translation>
 <translation id="8473863474539038330">Adressen</translation>
-<translation id="8481921391193215807">Wenn diese Option aktiviert ist, können Websites die hier aufgeführten Technologien, die zu einem besseren Datenschutz beitragen, zur Bereitstellung ihrer Inhalte und Dienste verwenden. Hierzu zählen unter anderem Alternativen zum websiteübergreifenden Tracking. Mit der Zeit können weitere Testfunktionen hinzukommen.
-
-<ph name="BEGIN_LIST_ITEM1" />Werbetreibende und Publisher können FLoC verwenden.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Werbetreibende und Publisher können die Wirksamkeit von Anzeigen prüfen, ohne dich dabei websiteübergreifend zu tracken.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Testfunktionen sind aktiviert</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Verlaufsseite öffnen</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Dateiname schon vorhanden</translation>
 <translation id="8666759526542103597">Informationen zu browserbasierter personalisierter Werbung</translation>
 <translation id="8676789164135894283">Anmeldebestätigungen</translation>
-<translation id="867767487203716855">Nächste Aktualisierung</translation>
 <translation id="8683039184091909753">Bild</translation>
-<translation id="8683081248374354009">Gruppe zurücksetzen</translation>
 <translation id="869891660844655955">Ablaufdatum</translation>
 <translation id="8699120352855309748">Übersetzen dieser Sprachen nicht anbieten</translation>
 <translation id="8712637175834984815">Alles klar</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
index f706acc5..b26b68d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Τελευταία ώρα</translation>
 <translation id="1724977129262658800">Ξεκλειδώστε για να επεξεργαστείτε τον κωδικό πρόσβασής σας.</translation>
 <translation id="1726477445370128854">Έχετε τη δυνατότητα να περιηγείστε και να αναζητάτε ταχύτερα όταν το Chrome προφορτώνει σελίδες που πιστεύει ότι μπορεί να επισκεφτείτε</translation>
-<translation id="173522743738009831">Σχετικά με το Πλαίσιο ιδιωτικότητας</translation>
 <translation id="1736419249208073774">Εξερεύνηση</translation>
 <translation id="1749561566933687563">Συγχρονίστε τους σελιδοδείκτες σας</translation>
 <translation id="1750259112639922169">Ομάδα καρτελών – <ph name="TAB_COUNT" /> καρτέλες</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Απομένουν <ph name="SECONDS" /> δευτερόλεπτα</translation>
 <translation id="2779651927720337254">απέτυχε</translation>
 <translation id="2781151931089541271">Απομένει 1 δευτερόλεπτο</translation>
-<translation id="2788468313014644040">Αριθμός ομάδας</translation>
 <translation id="2800066122460699237">Πρόκειται να κλείσει η καρτέλα <ph name="TAB_TITLE" />.</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Προβολή και διαχείριση αποθηκευμένων κωδικών πρόσβασης στον <ph name="BEGIN_LINK" />Λογαριασμό σας Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Για να εμφανίζονται οι σελιδοδείκτες σας σε όλες τις συσκευές σας, συνδεθείτε και ενεργοποιήστε τον συγχρονισμό</translation>
 <translation id="2827278682606527653">Μενού της κάρτας ροής στο μισό ύψος</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Κοινοποίηση εικόνας</translation>
 <translation id="3387650086002190359">Η λήψη του αρχείου <ph name="FILE_NAME" /> απέτυχε λόγω σφαλμάτων του συστήματος αρχείων.</translation>
 <translation id="3389286852084373014">Το κείμενο είναι υπερβολικά μεγάλο</translation>
-<translation id="3391512812407811893">Δοκιμές του Πλαισίου ιδιωτικότητας</translation>
 <translation id="3398320232533725830">Άνοιγμα του διαχειριστή σελιδοδεικτών</translation>
 <translation id="3407392651057365886">Προφορτώνονται περισσότερες σελίδες. Οι σελίδες μπορεί να προφορτωθούν μέσω των διακομιστών Google όταν ζητούνται από άλλους ιστοτόπους.</translation>
 <translation id="3414952576877147120">Μέγεθος:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Ακολουθήστε ξανά</translation>
 <translation id="6002122790816966947">Οι συσκευές σας</translation>
 <translation id="6005538289190791541">Προτεινόμενος κωδικός πρόσβασης</translation>
-<translation id="6032091552407840792">Αυτή η δοκιμή είναι ενεργή μόνο σε <ph name="BEGIN_LINK" />ορισμένες περιοχές<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Με το <ph name="BEGIN_LINK" />Πλαίσιο ιδιωτικότητας<ph name="END_LINK" />, το Chrome αναπτύσσει νέες τεχνολογίες για να σας προστατεύσει από την παρακολούθηση μεταξύ ιστοτόπων, διατηρώντας παράλληλα τον ανοικτό ιστό.
-
-Οι δοκιμές του Πλαισίου ιδιωτικότητας βρίσκονται ακόμα υπό ενεργή ανάπτυξη και διατίθενται σε επιλεγμένες περιοχές. Προς το παρόν, οι ιστότοποι μπορούν να δοκιμάσουν το Πλαίσιο ιδιωτικότητας ενώ συνεχίζουν να χρησιμοποιούν τρέχουσες τεχνολογίες ιστού, όπως τα cookie τρίτου μέρους.</translation>
 <translation id="6039379616847168523">Μετάβαση στην επόμενη καρτέλα</translation>
 <translation id="6040143037577758943">Κλείσιμο</translation>
 <translation id="604124094241169006">Αυτόματη</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Προσθήκη</translation>
 <translation id="7798392620021911922">Έγινε επαναφορά <ph name="TAB_COUNT" /> καρτελών</translation>
 <translation id="780301667611848630">Όχι, ευχαριστώ</translation>
-<translation id="7805768142964895445">Κατάσταση</translation>
 <translation id="7808889146555843082">Η κατάργηση αυτού του κωδικού πρόσβασης δεν θα διαγράψει τον λογαριασμό σας στον ιστότοπο <ph name="SITE" />. Αλλάξτε τον κωδικό πρόσβασης ή διαγράψτε τον λογαριασμό σας στον ιστότοπο <ph name="SITE" /> για να τον διατηρήσετε ασφαλή.</translation>
 <translation id="7810647596859435254">Άνοιγμα με…</translation>
 <translation id="7815484226266492798">Στιγμιότυπο οθόνης μεγάλης έκτασης</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Κρυπτογράφηση συγχρονισμένων δεδομένων με τη δική σας φράση πρόσβασης συγχρονισμού</translation>
 <translation id="8466613982764129868">Βεβαιωθείτε ότι η συσκευή <ph name="TARGET_DEVICE_NAME" /> είναι συνδεδεμένη στο διαδίκτυο.</translation>
 <translation id="8473863474539038330">Διευθύνσεις και άλλα</translation>
-<translation id="8481921391193215807">Όταν είναι ενεργοποιημένο, οι ιστότοποι μπορούν να χρησιμοποιούν τις τεχνικές διατήρησης απορρήτου που εμφανίζονται εδώ για την παροχή του περιεχομένου και των υπηρεσιών τους. Σε αυτές περιλαμβάνονται εναλλακτικές λύσεις για την παρακολούθηση μεταξύ ιστοτόπων. Περισσότερες δοκιμές ενδέχεται να προστεθούν με την πάροδο του χρόνου.
-
-<ph name="BEGIN_LIST_ITEM1" />Οι διαφημιζόμενοι και οι εκδότες μπορούν να χρησιμοποιήσουν την τεχνολογία FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Οι διαφημιζόμενοι και οι εκδότες μπορούν να εξετάζουν την αποδοτικότητα των διαφημίσεων, με τέτοιον τρόπο ώστε να μην γίνεται εντοπισμός καθώς περιηγείστε μεταξύ ιστοτόπων.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Οι δοκιμαστικές λειτουργίες είναι ενεργοποιημένες</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Άνοιγμα σελίδας "Ιστορικό"</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Το αρχείο υπάρχει ήδη</translation>
 <translation id="8666759526542103597">Σχετικά με την εξατομίκευση διαφημίσεων βάσει προγράμματος περιήγησης</translation>
 <translation id="8676789164135894283">Επαληθεύσεις σύνδεσης</translation>
-<translation id="867767487203716855">Επόμενη ενημέρωση</translation>
 <translation id="8683039184091909753">εικόνα</translation>
-<translation id="8683081248374354009">Επαναφορά ομάδας</translation>
 <translation id="869891660844655955">Ημερομηνία λήξης</translation>
 <translation id="8699120352855309748">Να μην παρέχεται δυνατότητα μετάφρασης αυτών των γλωσσών</translation>
 <translation id="8712637175834984815">Κατάλαβα!</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
index 3bd28d8..084b7ff5 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Last hour</translation>
 <translation id="1724977129262658800">Unlock to edit your password</translation>
 <translation id="1726477445370128854">You can browse and search faster when Chrome preloads pages that it thinks you might visit</translation>
-<translation id="173522743738009831">About Privacy Sandbox</translation>
 <translation id="1736419249208073774">Explore</translation>
 <translation id="1749561566933687563">Sync your bookmarks</translation>
 <translation id="1750259112639922169">Tab group – <ph name="TAB_COUNT" /> tabs</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> secs left</translation>
 <translation id="2779651927720337254">failed</translation>
 <translation id="2781151931089541271">1 sec left</translation>
-<translation id="2788468313014644040">Group number</translation>
 <translation id="2800066122460699237">The tab <ph name="TAB_TITLE" /> will be closed</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">View and manage saved passwords in your <ph name="BEGIN_LINK" />Google Account<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">To get your bookmarks on all your devices, sign in and turn on sync</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Share image</translation>
 <translation id="3387650086002190359"><ph name="FILE_NAME" /> download failed due to file system errors.</translation>
 <translation id="3389286852084373014">Text is too large</translation>
-<translation id="3391512812407811893">Privacy Sandbox trials</translation>
 <translation id="3398320232533725830">Open the bookmarks manager</translation>
 <translation id="3407392651057365886">More pages are preloaded. Pages may be preloaded through Google servers when requested by other sites.</translation>
 <translation id="3414952576877147120">Size:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Refollow</translation>
 <translation id="6002122790816966947">Your devices</translation>
 <translation id="6005538289190791541">Suggested password</translation>
-<translation id="6032091552407840792">This trial is active only in <ph name="BEGIN_LINK" />some regions<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">With <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome is developing new technologies to safeguard you from cross-site tracking while preserving the open web.
-
-Privacy Sandbox trials are still in active development and are available in selected regions. For now, sites may try out Privacy Sandbox while continuing to use current web technologies like third-party cookies.</translation>
 <translation id="6039379616847168523">Jump to the next tab</translation>
 <translation id="6040143037577758943">Close</translation>
 <translation id="604124094241169006">Automatic</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Add</translation>
 <translation id="7798392620021911922">Restored <ph name="TAB_COUNT" /> tabs</translation>
 <translation id="780301667611848630">No, thanks</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Deleting this password will not delete your account on <ph name="SITE" />. Change your password or delete your account on <ph name="SITE" /> to keep it safe from others.</translation>
 <translation id="7810647596859435254">Open with…</translation>
 <translation id="7815484226266492798">Long screenshot</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Encrypt synced data with your own sync passphrase</translation>
 <translation id="8466613982764129868">Make sure that <ph name="TARGET_DEVICE_NAME" /> is connected to the Internet</translation>
 <translation id="8473863474539038330">Addresses and more</translation>
-<translation id="8481921391193215807">When on, sites may use the privacy-preserving techniques shown here to provide their content and services. These include alternatives to cross-site tracking. More trials may be added over time.
-
-<ph name="BEGIN_LIST_ITEM1" />Advertisers and publishers can use FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Advertisers and publishers can study the effectiveness of ads in a way that does not track you across sites.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Trial features are on</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Open the history page</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">File name already exists</translation>
 <translation id="8666759526542103597">About browser-based ad personalisation</translation>
 <translation id="8676789164135894283">Sign-in verifications</translation>
-<translation id="867767487203716855">Next update</translation>
 <translation id="8683039184091909753">image</translation>
-<translation id="8683081248374354009">Reset group</translation>
 <translation id="869891660844655955">Expiry date</translation>
 <translation id="8699120352855309748">Don’t offer to translate these languages</translation>
 <translation id="8712637175834984815">Got it</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
index a35eb17..4c2ef25d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Última hora</translation>
 <translation id="1724977129262658800">Desbloquea la pantalla para editar tu contraseña.</translation>
 <translation id="1726477445370128854">Puedes navegar y realizar búsquedas más rápidas cuando Chrome precarga las páginas que considera que puedes visitar</translation>
-<translation id="173522743738009831">Información sobre Privacy Sandbox</translation>
 <translation id="1736419249208073774">Explorar</translation>
 <translation id="1749561566933687563">Sincroniza tus favoritos</translation>
 <translation id="1750259112639922169">Grupo de pestañas: <ph name="TAB_COUNT" /> pestañas</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> segundos restantes</translation>
 <translation id="2779651927720337254">error</translation>
 <translation id="2781151931089541271">1 segundo restante</translation>
-<translation id="2788468313014644040">Número de grupo</translation>
 <translation id="2800066122460699237">Se cerrará la pestaña <ph name="TAB_TITLE" />.</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Ver y administrar las contraseñas guardadas en tu <ph name="BEGIN_LINK" />cuenta de Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Para que tus favoritos estén en todos tus dispositivos, accede a tu cuenta y activa la sincronización</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Compartir imagen</translation>
 <translation id="3387650086002190359"><ph name="FILE_NAME" /> no se pudo descargar debido a errores del sistema de archivos.</translation>
 <translation id="3389286852084373014">El texto es demasiado largo</translation>
-<translation id="3391512812407811893">Pruebas de Privacy Sandbox</translation>
 <translation id="3398320232533725830">Abrir el administrador de favoritos</translation>
 <translation id="3407392651057365886">Se precargan más páginas. Las páginas pueden precargarse mediante servidores de Google cuando las solicitan otros sitios.</translation>
 <translation id="3414952576877147120">Tamaño:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Volver a seguir</translation>
 <translation id="6002122790816966947">Tus dispositivos</translation>
 <translation id="6005538289190791541">Contraseña sugerida</translation>
-<translation id="6032091552407840792">Esta prueba está activada solo en <ph name="BEGIN_LINK" />algunas regiones<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">A través de <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome está desarrollando nuevas tecnologías para protegerte ante el seguimiento entre sitios, a la vez que se preserva la Web abierta.
-
-Las pruebas de Privacy Sandbox siguen en desarrollo y están disponibles en ciertas regiones. Por ahora, los sitios pueden usar Privacy Sandbox y seguir utilizando tecnologías web actuales, como las cookies de terceros.</translation>
 <translation id="6039379616847168523">Ir a la pestaña siguiente</translation>
 <translation id="6040143037577758943">Cerrar</translation>
 <translation id="604124094241169006">Automático</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Agregar</translation>
 <translation id="7798392620021911922">Se restablecieron <ph name="TAB_COUNT" /> pestañas</translation>
 <translation id="780301667611848630">No, gracias</translation>
-<translation id="7805768142964895445">Estado</translation>
 <translation id="7808889146555843082">Si borras esta contraseña, no se quitará tu cuenta de <ph name="SITE" />. Cambia la contraseña o quita la cuenta de <ph name="SITE" /> para protegerla.</translation>
 <translation id="7810647596859435254">Abrir con…</translation>
 <translation id="7815484226266492798">Captura de pantalla completa</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Encriptar los datos sincronizados con tu propia frase de contraseña de sincronización</translation>
 <translation id="8466613982764129868">Comprueba que <ph name="TARGET_DEVICE_NAME" /> tenga conexión a Internet</translation>
 <translation id="8473863474539038330">Direcciones y más</translation>
-<translation id="8481921391193215807">Si habilitas esta opción, los sitios podrán utilizar las técnicas de protección de la privacidad que se muestran aquí para ofrecer su contenido y sus servicios. Estas técnicas incluyen alternativas al seguimiento entre sitios. Es posible que se agreguen más pruebas a lo largo del tiempo.
-
-<ph name="BEGIN_LIST_ITEM1" />Los anunciantes y los publicadores pueden usar el FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Los anunciantes y los publicadores pueden analizar la eficacia de los anuncios sin que estos hagan un seguimiento de los sitios que visitas.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Las funciones de prueba están activadas</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Abrir la página del historial</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Ya existe el nombre del archivo</translation>
 <translation id="8666759526542103597">Acerca de la personalización de anuncios basada en el navegador</translation>
 <translation id="8676789164135894283">Verificaciones para acceder</translation>
-<translation id="867767487203716855">Próxima actualización</translation>
 <translation id="8683039184091909753">imagen</translation>
-<translation id="8683081248374354009">Restablecer grupo</translation>
 <translation id="869891660844655955">Fecha de vencimiento</translation>
 <translation id="8699120352855309748">No ofrecer la traducción de estos idiomas</translation>
 <translation id="8712637175834984815">Entendido</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
index aef5bcce..da218a1 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Última hora</translation>
 <translation id="1724977129262658800">Desbloquea para cambiar tu contraseña</translation>
 <translation id="1726477445370128854">Puedes navegar y buscar más rápido cuando Chrome precarga las páginas que considera que podrías visitar.</translation>
-<translation id="173522743738009831">Información sobre Privacy Sandbox</translation>
 <translation id="1736419249208073774">Más información</translation>
 <translation id="1749561566933687563">Sincronizar marcadores</translation>
 <translation id="1750259112639922169">Grupo de pestañas: <ph name="TAB_COUNT" /> pestañas</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Quedan <ph name="SECONDS" /> segundos</translation>
 <translation id="2779651927720337254">ha fallado</translation>
 <translation id="2781151931089541271">Queda 1 segundo</translation>
-<translation id="2788468313014644040">Número de grupo</translation>
 <translation id="2800066122460699237">Se cerrará la pestaña <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">Aprendizaje federado de cohortes (FLoC)</translation>
 <translation id="281504910091592009">Consulta y gestiona las contraseñas guardadas en tu <ph name="BEGIN_LINK" />cuenta de Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Inicia sesión y activa la sincronización para ver tus marcadores en todos tus dispositivos</translation>
 <translation id="2827278682606527653">Menú de tarjeta de feed a media altura</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Compartir imagen</translation>
 <translation id="3387650086002190359">No se ha podido descargar <ph name="FILE_NAME" /> debido a problemas con el sistema de archivos.</translation>
 <translation id="3389286852084373014">El texto es demasiado largo</translation>
-<translation id="3391512812407811893">Pruebas de Privacy Sandbox</translation>
 <translation id="3398320232533725830">Abre el administrador de marcadores</translation>
 <translation id="3407392651057365886">Se precargan más páginas. Es posible que las páginas se precarguen a través de los servidores de Google cuando lo soliciten otros sitios.</translation>
 <translation id="3414952576877147120">Tamaño:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Volver a seguir</translation>
 <translation id="6002122790816966947">Tus dispositivos</translation>
 <translation id="6005538289190791541">Contraseña sugerida</translation>
-<translation id="6032091552407840792">Esta prueba solo está activa en <ph name="BEGIN_LINK" />algunas regiones<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Con <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome desarrolla nuevas tecnologías que te protegerán de mecanismos de seguimiento entre sitios y, a la vez, preservarán la Web abierta.
-
-Las pruebas de Privacy Sandbox aún se encuentran en desarrollo y solo están disponibles en algunas regiones. Por ahora, los sitios pueden probar Privacy Sandbox y seguir utilizando tecnologías web actuales, como las cookies de terceros.</translation>
 <translation id="6039379616847168523">Te dirige a la siguiente pestaña</translation>
 <translation id="6040143037577758943">Cerrar</translation>
 <translation id="604124094241169006">Automático</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Añadir</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> pestañas restauradas</translation>
 <translation id="780301667611848630">No, gracias</translation>
-<translation id="7805768142964895445">Estado</translation>
 <translation id="7808889146555843082">Aunque quites esta contraseña, no se eliminará tu cuenta de <ph name="SITE" />. Cambia la contraseña o elimina tu cuenta de <ph name="SITE" /> para protegerla de otros.</translation>
 <translation id="7810647596859435254">Abrir con…</translation>
 <translation id="7815484226266492798">Captura de página completa</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Cifrar datos sincronizados con tu propia frase de contraseña de sincronización</translation>
 <translation id="8466613982764129868">Comprueba que tu <ph name="TARGET_DEVICE_NAME" /> esté conectado a Internet</translation>
 <translation id="8473863474539038330">Direcciones y más</translation>
-<translation id="8481921391193215807">Si está habilitado, los sitios podrán utilizar las técnicas de protección de la privacidad que se muestran aquí para ofrecer su contenido y sus servicios. Entre estas técnicas, se incluyen alternativas al seguimiento entre sitios. Es posible que se añadan más pruebas a lo largo del tiempo.
-
-<ph name="BEGIN_LIST_ITEM1" />Los anunciantes y editores pueden usar el aprendizaje federado de cohortes (FLoC).<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Los anunciantes y editores pueden analizar la efectividad de los anuncios sin hacer un seguimiento de los sitios que visitas.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Las funciones de prueba están activadas</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Abre la página Historial</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">El nombre del archivo ya existe</translation>
 <translation id="8666759526542103597">Acerca de la personalización de anuncios basada en el navegador</translation>
 <translation id="8676789164135894283">Verificar inicio de sesión</translation>
-<translation id="867767487203716855">Próxima actualización</translation>
 <translation id="8683039184091909753">imagen</translation>
-<translation id="8683081248374354009">Restablecer grupo</translation>
 <translation id="869891660844655955">Fecha de caducidad</translation>
 <translation id="8699120352855309748">No ofrecer que se traduzcan estos idiomas</translation>
 <translation id="8712637175834984815">Entendido</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
index 6d7025c..bef8894 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Viimase tunni jooksul</translation>
 <translation id="1724977129262658800">Parooli muutmiseks avage</translation>
 <translation id="1726477445370128854">Kui Chrome eellaadib lehed, mida võite arvatavasti külastada, võimaldab see teil kiiremini sirvida ja otsida</translation>
-<translation id="173522743738009831">Teave privaatsuse liivakasti kohta</translation>
 <translation id="1736419249208073774">Avastage</translation>
 <translation id="1749561566933687563">Järjehoidjate sünkroonimine</translation>
 <translation id="1750259112639922169">Vahelehegrupp – <ph name="TAB_COUNT" /> vahelehte</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Jäänud on <ph name="SECONDS" /> sekundit</translation>
 <translation id="2779651927720337254">ebaõnnestus</translation>
 <translation id="2781151931089541271">Jäänud on 1 sekund</translation>
-<translation id="2788468313014644040">Grupi number</translation>
 <translation id="2800066122460699237">Vaheleht <ph name="TAB_TITLE" /> suletakse</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Vaadake ja hallake salvestatud paroole oma <ph name="BEGIN_LINK" />Google'i kontol<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Järjehoidjate kõikidesse seadmetesse hankimiseks logige sisse ja lülitage sünkroonimine sisse</translation>
 <translation id="2827278682606527653">Voo kaardimenüü on poole kõrgusega</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Jaga kujutist</translation>
 <translation id="3387650086002190359">Faili <ph name="FILE_NAME" /> allalaadimine ebaõnnestus failisüsteemi vigade tõttu.</translation>
 <translation id="3389286852084373014">Tekst on liiga pikk</translation>
-<translation id="3391512812407811893">Privaatsuse liivakasti prooviversioonid</translation>
 <translation id="3398320232533725830">Järjehoidjate halduri avamine</translation>
 <translation id="3407392651057365886">Rohkem lehti eellaaditakse. Lehed võidakse eellaadida Google'i serverite kaudu, kui muud saidid seda taotlevad.</translation>
 <translation id="3414952576877147120">Suurus:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Jälgi uuesti</translation>
 <translation id="6002122790816966947">Teie seadmed</translation>
 <translation id="6005538289190791541">Soovitatud parool</translation>
-<translation id="6032091552407840792">See prooviperiood on aktiivne vaid <ph name="BEGIN_LINK" />teatud piirkondades<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privaatsuse liivakasti<ph name="END_LINK" /> abil arendab Chrome uusi tehnoloogiaid, mille abil kaitsta teid saidiülese jälgimise eest, säilitades siiski juurdepääsu avatud veebile.
-
-Privaatsuse liivakasti prooviperioodid on endiselt arendusjärgus ja saadaval vaid valitud piirkondades. Praegu võivad saidid privaatsuse liivakasti proovida, kasutades jätkuvalt ka muid veebitehnoloogiaid, nagu kolmandate osapoolte küpsisefailid.</translation>
 <translation id="6039379616847168523">Järgmisele vahelehele liikumine</translation>
 <translation id="6040143037577758943">Sulge</translation>
 <translation id="604124094241169006">Automaatne</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Lisa</translation>
 <translation id="7798392620021911922">Taastati <ph name="TAB_COUNT" /> vahelehte</translation>
 <translation id="780301667611848630">Ei, aitäh</translation>
-<translation id="7805768142964895445">Olek</translation>
 <translation id="7808889146555843082">Selle parooli eemaldamisel ei kustutata teie kontot saidil <ph name="SITE" />. Muutke oma parooli või kustutage saidil <ph name="SITE" /> olev konto, et parooli kaitsta.</translation>
 <translation id="7810647596859435254">Ava rakendusega …</translation>
 <translation id="7815484226266492798">Pikk ekraanipilt</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Krüpteeri sünkroonitud andmed sünkroonimisparooliga</translation>
 <translation id="8466613982764129868">Veenduge, et seadmel <ph name="TARGET_DEVICE_NAME" /> oleks internetiühendus</translation>
 <translation id="8473863474539038330">Aadressid ja muu</translation>
-<translation id="8481921391193215807">Kui see on sisse lülitatud, võivad saidid oma sisu ja teenuste pakkumiseks kasutada siin kuvatud privaatsust säilitavaid meetodeid. Need hõlmavad saitidevahelise jälgimise alternatiive. Aja jooksul võidakse lisada rohkem prooviversioone.
-
-<ph name="BEGIN_LIST_ITEM1" />Reklaamijad ja väljaandjad saavad kasutada FLoC-tehnoloogiat.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Reklaamijad ja väljaandjad saavad reklaamide tõhusust uurida viisil, mis teie tegevusi saitidel ei jälgi.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Prooviversiooni funktsioonid on sisse lülitatud</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Lehe Ajalugu avamine</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Faili nimi on juba olemas</translation>
 <translation id="8666759526542103597">Teave brauseripõhise reklaamide isikupärastamise kohta</translation>
 <translation id="8676789164135894283">Sisselogimise kinnitused</translation>
-<translation id="867767487203716855">Järgmine värskendus</translation>
 <translation id="8683039184091909753">pilt</translation>
-<translation id="8683081248374354009">Lähtesta grupp</translation>
 <translation id="869891660844655955">Aegumiskuupäev</translation>
 <translation id="8699120352855309748">Ära paku nende keelte tõlkimist</translation>
 <translation id="8712637175834984815">Selge</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
index de67e69..8b71dcc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Azken ordukoak</translation>
 <translation id="1724977129262658800">Pasahitza editatzeko, desblokeatu gailua</translation>
 <translation id="1726477445370128854">Ustez bisitatuko dituzun orriak aurrez kargatzen baditu Chrome-k, azkarrago arakatu ahalko dituzu webguneak, bai eta bilaketak bizkorrago egin ere.</translation>
-<translation id="173522743738009831">Privacy Sandbox-ari buruz</translation>
 <translation id="1736419249208073774">Arakatu</translation>
 <translation id="1749561566933687563">Sinkronizatu laster-markak</translation>
 <translation id="1750259112639922169">Fitxa taldea (<ph name="TAB_COUNT" /> fitxa)</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> segundo gelditzen dira</translation>
 <translation id="2779651927720337254">huts egin du</translation>
 <translation id="2781151931089541271">Segundo bat gelditzen da</translation>
-<translation id="2788468313014644040">Taldearen zenbakia</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> izeneko fitxa itxi egingo da</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Ikusi eta kudeatu <ph name="BEGIN_LINK" />Google-ko kontuan<ph name="END_LINK" /> gordetako pasahitzak</translation>
 <translation id="2818669890320396765">Laster-markak gailu guztietan izateko, hasi saioa eta aktibatu sinkronizazioa</translation>
 <translation id="2827278682606527653">Jarioko txartelaren menua altuera erdian irekita dago</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Partekatu irudia</translation>
 <translation id="3387650086002190359">Ezin izan da deskargatu <ph name="FILE_NAME" />, fitxategi-sisteman erroreak daudelako.</translation>
 <translation id="3389286852084373014">Testua luzeegia da</translation>
-<translation id="3391512812407811893">Privacy Sandbox-aren probaldiak</translation>
 <translation id="3398320232533725830">Ireki laster-marken kudeatzailea</translation>
 <translation id="3407392651057365886">Orri gehiago kargatzen dira aurrez. Baliteke orriak Google-ren zerbitzarien bidez aurrez kargatzea beste webgune batzuek hala eskatzen dutenean.</translation>
 <translation id="3414952576877147120">Tamaina:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Jarraitu berriro</translation>
 <translation id="6002122790816966947">Zure gailuak</translation>
 <translation id="6005538289190791541">Iradokitako pasahitza</translation>
-<translation id="6032091552407840792"><ph name="BEGIN_LINK" />Lurralde batzuetan<ph name="END_LINK" /> soilik dago aktibo probaldia.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privacy Sandbox-arekin<ph name="END_LINK" />, Chrome teknologia berriak garatzen ari da sare irekia mantendu bitartean zu webguneen arteko jarraipenetik babesteko.
-
-Privacy Sandbox-eko probaldiak garapen-prozesuan daude oraindik eta lurralde jakin batzuetan baino ezin dira egin. Oraingoz, une honetako web-teknologiak (hirugarrenen cookieak, kasu) erabiltzen jarraitzen duten bitartean probatu ahal izango dute webguneek Privacy Sandbox-a.</translation>
 <translation id="6039379616847168523">Saltatu hurrengo fitxara</translation>
 <translation id="6040143037577758943">Itxi</translation>
 <translation id="604124094241169006">Automatikoa</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Gehitu</translation>
 <translation id="7798392620021911922">Leheneratu egin dira <ph name="TAB_COUNT" /> fitxa</translation>
 <translation id="780301667611848630">Ez, eskerrik asko</translation>
-<translation id="7805768142964895445">Egoera</translation>
 <translation id="7808889146555843082">Pasahitza ezabatzen baduzu ere, ez da ezabatuko <ph name="SITE" /> webguneko kontua. <ph name="SITE" /> domeinuko kontua babestuta mantentzeko, ezaba ezazu edo alda iezaiozu pasahitza.</translation>
 <translation id="7810647596859435254">Ireki honekin…</translation>
 <translation id="7815484226266492798">Orri osoaren pantaila-argazkia</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Enkriptatu sinkronizatutako datuak sinkronizazio-pasaesaldiarekin</translation>
 <translation id="8466613982764129868">Ziurtatu <ph name="TARGET_DEVICE_NAME" /> Internetera konektatuta dagoela</translation>
 <translation id="8473863474539038330">Helbideak eta beste</translation>
-<translation id="8481921391193215807">Aktibatuta dagoenean, hemen agertzen diren pribatutasuna babesteko teknikak erabil ditzakete webguneek haien edukia eta zerbitzuak eskaintzeko. Besteak beste, webguneen arteko jarraipenaren ordezko aukerak hartzen dira barnean. Litekeena da beste probaldi batzuk gehitzea denborak aurrera egin ahala.
-
-<ph name="BEGIN_LIST_ITEM1" />Iragarleek eta argitaratzaileek FLoC teknika erabil dezakete.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Iragarleek eta argitaratzaileek iragarkien eraginkortasuna azter dezakete, webguneetan zure jarraipena egin beharrik gabe.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Probako eginbideak aktibatuta daude</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Ireki historiaren orria</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Badago izen hori duen fitxategi bat</translation>
 <translation id="8666759526542103597">Iragarkiak arakatzailean oinarrituta pertsonalizatzeari buruz</translation>
 <translation id="8676789164135894283">Saioa hasteko egiaztapenak</translation>
-<translation id="867767487203716855">Hurrengo eguneratzea</translation>
 <translation id="8683039184091909753">irudia</translation>
-<translation id="8683081248374354009">Berrezarri taldea</translation>
 <translation id="869891660844655955">Iraungitze-data</translation>
 <translation id="8699120352855309748">Ez eskaini hizkuntza hauek itzultzea</translation>
 <translation id="8712637175834984815">Ados</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
index 87fc2e7..2904db7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">ساعت قبل</translation>
 <translation id="1724977129262658800">برای ویرایش گذرواژه‌تان، قفل صفحه را باز کنید</translation>
 <translation id="1726477445370128854">‏وقتی Chrome صفحاتی را که فکر می‌کند ممکن است بازدید کنید پیش‌بارگیری می‌کند، می‌توانید سریع‌تر مرور و جستجو کنید.</translation>
-<translation id="173522743738009831">درباره «جعبه ایمنی حریم خصوصی»</translation>
 <translation id="1736419249208073774">کاوش</translation>
 <translation id="1749561566933687563">همگام‌سازی نشانک‌ها</translation>
 <translation id="1750259112639922169">گروه برگه - <ph name="TAB_COUNT" /> برگه</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> ثانیه باقی‌مانده است</translation>
 <translation id="2779651927720337254">انجام نشد</translation>
 <translation id="2781151931089541271">۱ ثانیه باقی‌مانده است</translation>
-<translation id="2788468313014644040">شماره گروه</translation>
 <translation id="2800066122460699237">برگه <ph name="TAB_TITLE" /> بسته خواهد شد</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">‏در <ph name="BEGIN_LINK" />حساب Google<ph name="END_LINK" /> خود گذرواژه‌های ذخیره‌شده را مشاهده و مدیریت کنید</translation>
 <translation id="2818669890320396765">برای اینکه نشانک‌هایتان را در همه دستگاه‌ها داشته باشید، به سیستم وارد شوید و همگام‌سازی را روشن کنید</translation>
 <translation id="2827278682606527653">منوی کارت فید تا نیمه باز شد</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">اشتراک‌گذاری تصویر</translation>
 <translation id="3387650086002190359">به‌دلیل خطاهای سیستم فایل، بارگیری <ph name="FILE_NAME" /> انجام نشد.</translation>
 <translation id="3389286852084373014">نوشتار خیلی بزرگ است</translation>
-<translation id="3391512812407811893">دوره‌های آزمایشی «جعبه ایمنی حریم خصوصی»</translation>
 <translation id="3398320232533725830">باز کردن مدیر نشانک‌ها</translation>
 <translation id="3407392651057365886">‏صفحات بیشتری پیش‌بارگیری می‌شوند. اگر درخواست ازطرف سایت‌های دیگر انجام شود، ممکن است صفحات ازطریق سرورهای Google پیش‌بارگیری شوند.</translation>
 <translation id="3414952576877147120">اندازه:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">دنبال کردن مجدد</translation>
 <translation id="6002122790816966947">دستگاه‌های شما</translation>
 <translation id="6005538289190791541">گذرواژه پیشنهادی</translation>
-<translation id="6032091552407840792">این دوره آزمایشی فقط در <ph name="BEGIN_LINK" />برخی مناطق<ph name="END_LINK" /> فعال است.</translation>
-<translation id="6033245666633565791">‏Chrome بااستفاده از <ph name="BEGIN_LINK" />جعبه ایمنی حریم خصوصی<ph name="END_LINK" /> درحال توسعه فناوری‌های جدیدی است که ضمن حفظ وبِ باز، از شما در برابر ردیابی بین‌سایتی محافظت می‌کند.
-
-دوره آزمایشی «جعبه ایمنی حریم خصوصی» هنوز در مرحله توسعه فعال است و در مناطق منتخب دردسترس است. درحال‌حاضر، ممکن است سایت‌ها همچنان که از فناوری‌های کوکی‌های شخص ثالث استفاده می‌کنند، «جعبه ایمنی حریم خصوصی» را نیز امتحان کنند.</translation>
 <translation id="6039379616847168523">رفتن به برگه بعدی</translation>
 <translation id="6040143037577758943">بستن</translation>
 <translation id="604124094241169006">خودکار</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">افزودن</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> برگه بازیابی شد</translation>
 <translation id="780301667611848630">نه متشکرم</translation>
-<translation id="7805768142964895445">وضعیت</translation>
 <translation id="7808889146555843082">حذف این گذرواژه باعث حذف شدن حساب شما در <ph name="SITE" /> نمی‌شود. برای ایمن نگه‌داشتن گذرواژه‌تان، آن را تغییر دهید یا حساب‌تان را در <ph name="SITE" /> حذف کنید.</translation>
 <translation id="7810647596859435254">باز کردن با…</translation>
 <translation id="7815484226266492798">نماگرفت طولانی</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">رمزگذاری داده‌های همگام‌سازی‌شده با گذرعبارت همگام‌سازی خودتان</translation>
 <translation id="8466613982764129868">مطمئن شوید <ph name="TARGET_DEVICE_NAME" /> به اینترنت متصل باشد</translation>
 <translation id="8473863474539038330">نشانی‌ها و سایر موارد</translation>
-<translation id="8481921391193215807">‏وقتی روشن باشد، سایت‌ها می‌توانند برای ارائه محتوا و سرویس‌هایشان از تکنیک‌های حفظ حریم خصوصی نشان داده‌شده در اینجا استفاده کنند. این تکنیک‌ها شامل روش‌های جایگزین برای ردیابی بین‌سایتی می‌شود. ممکن است در گذر زمان، دوره‌های آزمایشی بیشتری اضافه شود.
-
-<ph name="BEGIN_LIST_ITEM1" />تبلیغ‌کنندگان و ناشران می‌توانند از FLoC استفاده کنند.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />تبلیغ‌کنندگان و ناشران می‌توانند اثربخشی آگهی‌ها را به‌گونه‌ای بررسی کنند که شما را در سایت‌ها ردیابی نکند.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ویژگی‌های آزمایشی روشن است</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">باز کردن صفحه سابقه</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">نام فایل از قبل وجود دارد</translation>
 <translation id="8666759526542103597">درباره «شخصی‌سازی آگهی مبتنی بر مرورگر»</translation>
 <translation id="8676789164135894283">درستی‌سنجی‌های ورود به سیستم</translation>
-<translation id="867767487203716855">به‌روزرسانی بعدی</translation>
 <translation id="8683039184091909753">تصویر</translation>
-<translation id="8683081248374354009">بازنشانی گروه</translation>
 <translation id="869891660844655955">تاریخ انقضا</translation>
 <translation id="8699120352855309748">ترجمه این زبان‌ها پیشنهاد نشود</translation>
 <translation id="8712637175834984815">متوجه شدم</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
index d9992a0..26679a5 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Viimeinen tunti</translation>
 <translation id="1724977129262658800">Avaa lukitus muokataksesi salasanaasi</translation>
 <translation id="1726477445370128854">Voit selata ja hakea nopeammin, kun Chrome esilataa sivuja, joita saatat sen mukaan avata</translation>
-<translation id="173522743738009831">Tietoja Privacy Sandboxista</translation>
 <translation id="1736419249208073774">Tutustu</translation>
 <translation id="1749561566933687563">Synkronoi kirjanmerkit</translation>
 <translation id="1750259112639922169">Välilehtiryhmä – <ph name="TAB_COUNT" /> välilehteä</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sekuntia jäljellä</translation>
 <translation id="2779651927720337254">epäonnistui</translation>
 <translation id="2781151931089541271">1 sekunti jäljellä</translation>
-<translation id="2788468313014644040">Ryhmän numero</translation>
 <translation id="2800066122460699237">Tämä välilehti suljetaan: <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">FLoC-kohdentaminen</translation>
 <translation id="281504910091592009">Katso ja ylläpidä <ph name="BEGIN_LINK" />Google-tilille<ph name="END_LINK" /> tallennettuja salasanoja</translation>
 <translation id="2818669890320396765">Kirjaudu sisään ja ota synkronointi käyttöön, niin voit käyttää kirjanmerkkejäsi kaikilla laitteilla</translation>
 <translation id="2827278682606527653">Fiidikorttien valikko puolivälin korkuinen</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Jaa kuva</translation>
 <translation id="3387650086002190359">Tiedoston <ph name="FILE_NAME" /> lataus epäonnistui tiedostojärjestelmävirheen vuoksi.</translation>
 <translation id="3389286852084373014">Teksti on liian suuri</translation>
-<translation id="3391512812407811893">Privacy Sandbox ‑kokeilut</translation>
 <translation id="3398320232533725830">Avaa kirjanmerkkien hallinta</translation>
 <translation id="3407392651057365886">Enemmän sivuja esiladataan. Sivuja voidaan esiladata Googlen palvelimien kautta, kun muut sivustot pyytävät tätä.</translation>
 <translation id="3414952576877147120">Koko:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Seuraa uudelleen</translation>
 <translation id="6002122790816966947">Omat laitteet</translation>
 <translation id="6005538289190791541">Salasanaehdotus</translation>
-<translation id="6032091552407840792">Tämä kokeilu on aktiivinen vain <ph name="BEGIN_LINK" />tietyillä alueilla<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Chrome kehittää <ph name="BEGIN_LINK" />Privacy Sandboxin<ph name="END_LINK" /> avulla uusia tekniikoita, joiden avulla sinua voidaan suojata sivustojen väliseltä seurannalta verkon pysyessä avoimena.
-
-Privacy Sandbox ‑kokeiluja kehitetään yhä aktiivisesti, ja ne ovat saatavilla vain tietyillä alueilla. Tällä hetkellä sivustot voivat kokeilla Privacy Sandboxia ja jatkaa samalla nykyisten verkkoteknologioiden, esim. kolmansien osapuolten evästeiden, käyttöä.</translation>
 <translation id="6039379616847168523">Siirry seuraavalle välilehdelle</translation>
 <translation id="6040143037577758943">Sulje</translation>
 <translation id="604124094241169006">Automaattinen</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Lisää</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> välilehteä palautettu</translation>
 <translation id="780301667611848630">Ei kiitos</translation>
-<translation id="7805768142964895445">Tila</translation>
 <translation id="7808889146555843082">Vaikka poistat salasanan, tiliäsi (<ph name="SITE" />) ei poisteta. Vaihda salasana tai poista tili (<ph name="SITE" />), jotta se pysyy turvassa muilta.</translation>
 <translation id="7810647596859435254">Avaa sovelluksessa…</translation>
 <translation id="7815484226266492798">Pitkä kuvakaappaus</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Salaa synkronoidut tiedot oman synkronoinnin tunnuslauseesi avulla</translation>
 <translation id="8466613982764129868">Varmista, että <ph name="TARGET_DEVICE_NAME" /> on yhteydessä internetiin</translation>
 <translation id="8473863474539038330">Osoitteet ja muita tietoja</translation>
-<translation id="8481921391193215807">Kun se on päällä, sivustot voivat käyttää täällä näkyvää yksityisyyttä suojaavaa tekniikkaa sisällön ja palveluiden tarjoamiseen. Saatavilla on esimerkiksi vaihtoehtoja sivustojen väliselle seurannalle. Muita kokeiluja voidaan lisätä ajan myötä.
-
-<ph name="BEGIN_LIST_ITEM1" />Mainostajat ja julkaisijat voivat käyttää FLoC-tekniikkaa.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Mainostajat ja julkaisijat voivat tutkia mainosten vaikuttavuutta tavalla, joka ei seuraa sinua eri sivustoilla.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Kokeiluominaisuudet ovat käytössä</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Avaa Historia-sivu</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Tiedoston nimi on jo käytössä</translation>
 <translation id="8666759526542103597">Tietoa selainpohjaisesta mainosten personoinnista</translation>
 <translation id="8676789164135894283">Sisäänkirjautumisen todennukset</translation>
-<translation id="867767487203716855">Seuraava päivitys</translation>
 <translation id="8683039184091909753">kuva</translation>
-<translation id="8683081248374354009">Nollaa ryhmä</translation>
 <translation id="869891660844655955">Vanhenemispäivämäärä</translation>
 <translation id="8699120352855309748">Älä ehdota näiden kielten kääntämistä</translation>
 <translation id="8712637175834984815">Ymmärretty</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
index 0a0a6f9..adc86a00 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Huling oras</translation>
 <translation id="1724977129262658800">I-unlock para i-edit ang iyong password</translation>
 <translation id="1726477445370128854">Makakapag-browse at makakapaghanap ka nang mas mabilis kapag nag-preload ang Chrome ng mga page na sa palagay nito ay posibleng bisitahin mo</translation>
-<translation id="173522743738009831">Tungkol sa Privacy Sandbox</translation>
 <translation id="1736419249208073774">I-explore</translation>
 <translation id="1749561566933687563">I-sync ang iyong mga bookmark</translation>
 <translation id="1750259112639922169">Grupo ng tab - <ph name="TAB_COUNT" /> (na) tab</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> (na) segundo na lang ang natitira</translation>
 <translation id="2779651927720337254">nabigo</translation>
 <translation id="2781151931089541271">1 segundo na lang ang natitira</translation>
-<translation id="2788468313014644040">Numero ng grupo</translation>
 <translation id="2800066122460699237">Isasara ang tab na <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Tingnan at pamahalaan ang mga naka-save na password sa iyong <ph name="BEGIN_LINK" />Google Account<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Para makuha ang iyong mga bookmark sa lahat ng device mo, mag-sign in at i-on ang pag-sync</translation>
 <translation id="2827278682606527653">Half height ng menu ng feed card</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Magbahagi ng larawan</translation>
 <translation id="3387650086002190359">Hindi na-download ang <ph name="FILE_NAME" /> dahil sa mga error sa file system.</translation>
 <translation id="3389286852084373014">Masyadong malaki ang text</translation>
-<translation id="3391512812407811893">Mga trial ng Privacy Sandbox</translation>
 <translation id="3398320232533725830">Buksan ang bookmarks manager</translation>
 <translation id="3407392651057365886">Higit pang page ang ipi-preload. Posibleng mag-preload ng mga page sa pamamagitan ng mga server ng Google kapag hiniling ng iba pang site.</translation>
 <translation id="3414952576877147120">Laki:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Subaybayan ulit</translation>
 <translation id="6002122790816966947">Ang iyong mga device</translation>
 <translation id="6005538289190791541">Iminumungkahing password</translation>
-<translation id="6032091552407840792">Aktibo lang ang trial na ito sa <ph name="BEGIN_LINK" />ilang rehiyon<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Sa pamamagitan ng <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, nagde-develop ang Chrome ng mga bagong teknolohiya para protektahan ka laban sa cross-site na pagsubaybay habang pinapanatili ang bukas na web.
-
-Kasalukuyan pa ring dine-develop ang mga trial ng Privacy Sandbox at available ang mga ito sa mga piling rehiyon. Sa ngayon, puwedeng subukan ng mga site ang Privacy Sandbox habang patuloy na gumagamit ng mga kasalukuyang teknolohiya sa web gaya ng third-party na cookies.</translation>
 <translation id="6039379616847168523">Pumunta sa susunod na tab</translation>
 <translation id="6040143037577758943">Isara</translation>
 <translation id="604124094241169006">Awtomatiko</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Idagdag</translation>
 <translation id="7798392620021911922">Na-restore ang <ph name="TAB_COUNT" /> (na) tab</translation>
 <translation id="780301667611848630">Hindi salamat</translation>
-<translation id="7805768142964895445">Katayuan</translation>
 <translation id="7808889146555843082">Kapag na-delete ang password na ito, hindi ide-delete ang iyong account sa <ph name="SITE" />. Palitan ang iyong password o i-delete ang account mo sa <ph name="SITE" /> para mapanatili itong ligtas mula sa iba.</translation>
 <translation id="7810647596859435254">Buksan gamit ang…</translation>
 <translation id="7815484226266492798">Mahabang Screenshot</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">I-encrypt ang naka-sync na data gamit ang iyong sariling passphrase sa pag-sync</translation>
 <translation id="8466613982764129868">Tiyaking nakakonekta ang <ph name="TARGET_DEVICE_NAME" /> sa internet</translation>
 <translation id="8473863474539038330">Mga address at higit pa</translation>
-<translation id="8481921391193215807">Kapag naka-on ito, posibleng gamitin ng mga site ang mga technique sa pagpapanatili ng privacy na ipinapakita rito para maibigay ang content at mga serbisyo ng mga ito. Kasama sa mga ito ang mga alternatibo sa cross-site na pagsubaybay. Posibleng magdagdag ng higit pang trial sa paglipas ng panahon.
-
-<ph name="BEGIN_LIST_ITEM1" />Magagamit ng mga advertiser at publisher ang FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Mapag-aaralan ng mga advertiser at publisher ang bisa ng mga ad sa paraang hindi nangangailangan ng pagsubaybay sa iyo sa lahat ng site.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Naka-on ang mga feature ng trial</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Buksan ang page ng history</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">May ganito nang pangalan ng file</translation>
 <translation id="8666759526542103597">Tungkol sa Pag-personalize ng ad na nakabatay sa browser</translation>
 <translation id="8676789164135894283">Mga pag-verify sa pag-sign in</translation>
-<translation id="867767487203716855">Susunod na update</translation>
 <translation id="8683039184091909753">larawan</translation>
-<translation id="8683081248374354009">I-reset ang grupo</translation>
 <translation id="869891660844655955">Expiration date</translation>
 <translation id="8699120352855309748">Huwag mag-alok na isalin ang mga wikang ito</translation>
 <translation id="8712637175834984815">Nakuha ko</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
index 7112ade..759e8f3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Dernière heure</translation>
 <translation id="1724977129262658800">Déverrouillez pour modifier votre mot de passe</translation>
 <translation id="1726477445370128854">Vous pouvez naviguer et effectuer des recherches plus rapidement lorsque Chrome précharge les pages que vous êtes susceptible de visiter</translation>
-<translation id="173522743738009831">À propos du bac à sable de confidentialité</translation>
 <translation id="1736419249208073774">Explorer</translation>
 <translation id="1749561566933687563">Synchronisez vos favoris</translation>
 <translation id="1750259112639922169">Groupe d'onglets – <ph name="TAB_COUNT" /> onglet(s)</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Il reste <ph name="SECONDS" /> secondes</translation>
 <translation id="2779651927720337254">échec</translation>
 <translation id="2781151931089541271">Il reste 1 s</translation>
-<translation id="2788468313014644040">Numéro de groupe</translation>
 <translation id="2800066122460699237">L'onglet <ph name="TAB_TITLE" /> sera fermé</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Affichez et gérez les mots de passe enregistrés dans votre <ph name="BEGIN_LINK" />compte google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Pour synchroniser vos favoris sur tous vos appareils, connectez-vous et activez la synchronisation</translation>
 <translation id="2827278682606527653">Le menu de la carte du flux est ouvert à mi-hauteur</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Partager une image</translation>
 <translation id="3387650086002190359">Échec du téléchargement de <ph name="FILE_NAME" /> en raison d'erreurs du système de fichiers.</translation>
 <translation id="3389286852084373014">La taille du texte est trop grande</translation>
-<translation id="3391512812407811893">Essai du bac à sable de confidentialité</translation>
 <translation id="3398320232533725830">Ouvrir le gestionnaire de favoris</translation>
 <translation id="3407392651057365886">Plus de pages sont préchargées. Les pages peuvent être préchargées par les serveurs de Google lorsqu'elles sont demandées par d'autres sites.</translation>
 <translation id="3414952576877147120">Taille :</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Se réabonner</translation>
 <translation id="6002122790816966947">Vos appareils</translation>
 <translation id="6005538289190791541">Mot de passe suggéré</translation>
-<translation id="6032091552407840792">Cette version d'essai est uniquement active dans <ph name="BEGIN_LINK" />certaines régions<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Grâce au <ph name="BEGIN_LINK" />bac à sable de confidentialité<ph name="END_LINK" />, Chrome développe de nouvelles technologies pour vous protéger du suivi intersites, tout en préservant le caractère ouvert du Web.
-
-Les versions d'essai du bac à sable de confidentialité sont toujours en cours de développement et ne sont offertes que dans certaines régions. Pour l'instant, les sites peuvent faire l'essai du bac à sable de confidentialité tout en continuant d'utiliser les technologies Web actuelles, comme les témoins tiers.</translation>
 <translation id="6039379616847168523">Accéder à l'onglet suivant</translation>
 <translation id="6040143037577758943">Fermer</translation>
 <translation id="604124094241169006">Automatique</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Ajouter</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> onglets restaurés</translation>
 <translation id="780301667611848630">Non merci</translation>
-<translation id="7805768142964895445">État</translation>
 <translation id="7808889146555843082">Supprimer ce mot de passe ne supprimera pas également votre compte sur <ph name="SITE" />. Changez votre mot de passe ou supprimez votre compte sur <ph name="SITE" /> pour le protéger des autres.</translation>
 <translation id="7810647596859435254">Ouvrir avec…</translation>
 <translation id="7815484226266492798">Capture d'écran longue</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Chiffrer vos données synchronisées avec votre propre phrase de passe de synchronisation</translation>
 <translation id="8466613982764129868">Assurez-vous que <ph name="TARGET_DEVICE_NAME" /> est connecté à Internet</translation>
 <translation id="8473863474539038330">Adresses et plus</translation>
-<translation id="8481921391193215807">Lorsque cette fonctionnalité est activée, les sites peuvent utiliser les techniques de préservation de la confidentialité présentées ici pour fournir leur contenu et leurs services. Celles-ci comprennent des solutions de rechange au suivi intersites. D'autres essais pourront être ajoutés au fil du temps.
-
-<ph name="BEGIN_LIST_ITEM1" />Les annonceurs et les éditeurs peuvent utiliser la technique FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Les annonceurs et les éditeurs peuvent étudier l'efficacité des annonces sans vous suivre sur tous les sites.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Les fonctionnalités d'essai sont activées</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Ouvrir la page de l'historique</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Ce nom de fichier existe déjà</translation>
 <translation id="8666759526542103597">À propos de la personnalisation des annonces en fonction du navigateur</translation>
 <translation id="8676789164135894283">Vérifications de connexion</translation>
-<translation id="867767487203716855">Prochaine mise à jour</translation>
 <translation id="8683039184091909753">image</translation>
-<translation id="8683081248374354009">Réinitialiser le groupe</translation>
 <translation id="869891660844655955">Date d'expiration</translation>
 <translation id="8699120352855309748">Ne pas proposer de traduire ces langues</translation>
 <translation id="8712637175834984815">OK</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
index de0bd42..4b91778 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Dernière heure</translation>
 <translation id="1724977129262658800">Déverrouillez la session pour modifier votre mot de passe</translation>
 <translation id="1726477445370128854">Le préchargement de pages que vous êtes susceptible de consulter selon Chrome permet de les parcourir et d'effectuer des recherches plus rapidement</translation>
-<translation id="173522743738009831">À propos de Privacy Sandbox</translation>
 <translation id="1736419249208073774">Découvrir</translation>
 <translation id="1749561566933687563">Synchroniser vos favoris</translation>
 <translation id="1750259112639922169">Groupe d'onglets – <ph name="TAB_COUNT" /> onglets</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> secondes restantes</translation>
 <translation id="2779651927720337254">échec</translation>
 <translation id="2781151931089541271">1 seconde restante</translation>
-<translation id="2788468313014644040">Numéro du groupe</translation>
 <translation id="2800066122460699237">L'onglet <ph name="TAB_TITLE" /> sera fermé</translation>
-<translation id="2806840421670364300">FLoC (Federated Learning of Cohorts)</translation>
 <translation id="281504910091592009">Afficher et gérer les mots de passe enregistrés dans votre <ph name="BEGIN_LINK" />compte Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Connectez-vous et activez la synchronisation pour accéder à vos favoris sur tous vos appareils</translation>
 <translation id="2827278682606527653">Le menu de la carte de flux est ouvert à mi-hauteur</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Partager l'image</translation>
 <translation id="3387650086002190359">Échec du téléchargement du fichier "<ph name="FILE_NAME" />" en raison d'erreurs liées au système de fichiers.</translation>
 <translation id="3389286852084373014">Volume de texte trop important</translation>
-<translation id="3391512812407811893">Essais Privacy Sandbox</translation>
 <translation id="3398320232533725830">Ouvrir le gestionnaire de favoris</translation>
 <translation id="3407392651057365886">Plus de pages sont préchargées. Elles peuvent l'être via les serveurs de Google à la demande d'autres sites.</translation>
 <translation id="3414952576877147120">Taille :</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Se réabonner</translation>
 <translation id="6002122790816966947">Vos appareils</translation>
 <translation id="6005538289190791541">Mot de passe suggéré</translation>
-<translation id="6032091552407840792">Cet essai n'est actif que dans <ph name="BEGIN_LINK" />certaines régions<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Avec <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome développe de nouvelles technologies pour vous protéger contre le suivi intersite tout en préservant le Web ouvert.
-
-Les essais Privacy Sandbox sont encore en développement et ne sont disponibles que dans certaines régions. Pour le moment, les sites peuvent essayer Privacy Sandbox sans désactiver les technologies Web actuelles comme les cookies tiers.</translation>
 <translation id="6039379616847168523">Accéder à l'onglet suivant</translation>
 <translation id="6040143037577758943">Fermer</translation>
 <translation id="604124094241169006">Automatique</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Ajouter</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> onglets sont restaurés</translation>
 <translation id="780301667611848630">Non, merci</translation>
-<translation id="7805768142964895445">État</translation>
 <translation id="7808889146555843082">La suppression de ce mot de passe n'entraînera pas la suppression de votre compte sur <ph name="SITE" />. Modifiez votre mot de passe ou supprimez votre compte sur <ph name="SITE" /> pour le protéger des autres utilisateurs.</translation>
 <translation id="7810647596859435254">Ouvrir avec…</translation>
 <translation id="7815484226266492798">Capture d'écran étendue</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Chiffrer les données synchronisées avec votre propre phrase secrète de synchronisation</translation>
 <translation id="8466613982764129868">Assurez-vous que l'appareil <ph name="TARGET_DEVICE_NAME" /> est connecté à Internet</translation>
 <translation id="8473863474539038330">Adresses et autres</translation>
-<translation id="8481921391193215807">Lorsque cette option est activée, les sites peuvent utiliser les techniques qui préservent la vie privée présentées ici pour fournir leurs contenus et leurs services. Ces techniques incluent des alternatives au suivi intersite. D'autres essais pourront être ajoutés par la suite.
-
-<ph name="BEGIN_LIST_ITEM1" />Les annonceurs et les éditeurs peuvent utiliser le FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Les annonceurs et les éditeurs peuvent évaluer l'efficacité des annonces sans utiliser le suivi intersite.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Les fonctionnalités à l'essai sont activées</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Ouvrir la page "Historique"</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Nom de fichier déjà attribué</translation>
 <translation id="8666759526542103597">À propos de la personnalisation des annonces basée sur un navigateur</translation>
 <translation id="8676789164135894283">Validations de connexion</translation>
-<translation id="867767487203716855">Prochaine mise à jour</translation>
 <translation id="8683039184091909753">image</translation>
-<translation id="8683081248374354009">Réinitialiser le groupe</translation>
 <translation id="869891660844655955">Date d'expiration</translation>
 <translation id="8699120352855309748">Ne pas proposer de traduire ces langues</translation>
 <translation id="8712637175834984815">OK</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
index 757cfa241..bd562f5 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Última hora</translation>
 <translation id="1724977129262658800">Para poder editar o contrasinal, desbloquea a pantalla</translation>
 <translation id="1726477445370128854">Podes navegar e facer buscas máis rápido se Chrome precarga as páxinas que considera que poderías visitar</translation>
-<translation id="173522743738009831">Acerca de Privacy Sandbox</translation>
 <translation id="1736419249208073774">Explorar</translation>
 <translation id="1749561566933687563">Sincroniza os teus marcadores</translation>
 <translation id="1750259112639922169">Grupo de pestanas: <ph name="TAB_COUNT" /> pestanas</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Quedan <ph name="SECONDS" /> segundos</translation>
 <translation id="2779651927720337254">produciuse un erro</translation>
 <translation id="2781151931089541271">Queda 1 segundo</translation>
-<translation id="2788468313014644040">Número do grupo</translation>
 <translation id="2800066122460699237">Pecharase a pestana <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Para consultar e xestionar os contrasinais gardados, accede á túa <ph name="BEGIN_LINK" />Conta de Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Inicia sesión e activa a sincronización para ter os marcadores en todos os teus dispositivos</translation>
 <translation id="2827278682606527653">O menú da tarxeta do feed ocupa a metade inferior da pantalla</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Compartir imaxe</translation>
 <translation id="3387650086002190359">Produciuse un erro ao descargar <ph name="FILE_NAME" /> debido a erros no sistema de ficheiros.</translation>
 <translation id="3389286852084373014">O texto é demasiado longo</translation>
-<translation id="3391512812407811893">Probas de Privacy Sandbox</translation>
 <translation id="3398320232533725830">Abre o xestor de marcadores</translation>
 <translation id="3407392651057365886">Precárganse máis páxinas. Poden precargarse a través dos servidores de Google cando o solicitan outros sitios.</translation>
 <translation id="3414952576877147120">Tamaño:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Volver seguir</translation>
 <translation id="6002122790816966947">Os teus dispositivos</translation>
 <translation id="6005538289190791541">Contrasinal suxerido</translation>
-<translation id="6032091552407840792">A proba está dispoñible só <ph name="BEGIN_LINK" />nalgunhas rexións<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Con <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome está desenvolvendo novas tecnoloxías para protexerte dos mecanismos de seguimento en varios sitios e para garantir asemade que a Web siga sendo un espazo aberto.
-
-As probas de Privacy Sandbox aínda se atopan nunha fase de desenvolvemento activo e están dispoñibles en rexións seleccionadas. Polo momento, os sitios poden probar Privacy Sandbox sen deixar de usar as tecnoloxías web actuais, como as cookies de terceiros.</translation>
 <translation id="6039379616847168523">Saltar á seguinte pestana</translation>
 <translation id="6040143037577758943">Pechar</translation>
 <translation id="604124094241169006">Automático</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Engadir</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> pestanas restauradas</translation>
 <translation id="780301667611848630">Non, grazas</translation>
-<translation id="7805768142964895445">Estado</translation>
 <translation id="7808889146555843082">Ao eliminar este contrasinal non se eliminará a túa conta de <ph name="SITE" />. Cambia o contrasinal ou elimina a túa conta en <ph name="SITE" /> para protexela doutras persoas.</translation>
 <translation id="7810647596859435254">Abrir con…</translation>
 <translation id="7815484226266492798">Captura de pantalla longa</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Encriptar os datos sincronizados coa túa propia frase de acceso de sincronización</translation>
 <translation id="8466613982764129868">Asegúrate de que o dispositivo <ph name="TARGET_DEVICE_NAME" /> estea conectado a Internet</translation>
 <translation id="8473863474539038330">Enderezos e moito máis</translation>
-<translation id="8481921391193215807">Ao activar esta opción, os sitios poden usar as seguintes técnicas, que permiten protexer a privacidade e constitúen alternativas ao seguimento en varios sitios, para ofrecer contido e servizos. É posible que se engadan máis probas no futuro.
-
-<ph name="BEGIN_LIST_ITEM1" />Os anunciantes e os editores poden usar a técnica Federated Learning of Cohorts (FLoC).<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Os anunciantes e os editores poden estudar a eficacia dos anuncios sen facer un seguimento da túa actividade nos sitios.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">As funcións de proba están activadas</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Abrir a páxina do historial</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Xa existe un ficheiro con este nome</translation>
 <translation id="8666759526542103597">Acerca da personalización de anuncios baseada no navegador</translation>
 <translation id="8676789164135894283">Verificacións inicio de sesión</translation>
-<translation id="867767487203716855">Seguinte actualización</translation>
 <translation id="8683039184091909753">imaxe</translation>
-<translation id="8683081248374354009">Restablecer grupo</translation>
 <translation id="869891660844655955">Data de vencemento</translation>
 <translation id="8699120352855309748">Non ofrecer a opción de traducir texto escrito nestes idiomas</translation>
 <translation id="8712637175834984815">De acordo</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
index e7b997e..b044bb7c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">છેલ્લા એક કલાક</translation>
 <translation id="1724977129262658800">તમારા પાસવર્ડમાં ફેરફાર કરવા માટે અનલૉક કરો</translation>
 <translation id="1726477445370128854">તમે મુલાકાત લઈ શકો છો એવી સંભાવના ધરાવતા પેજને Chrome જ્યારે પહેલેથી લોડ કરે, ત્યારે તમે ઝડપથી બ્રાઉઝ અને શોધ કરી શકો છો</translation>
-<translation id="173522743738009831">પ્રાઇવસી સૅન્ડબૉક્સનું વર્ણન</translation>
 <translation id="1736419249208073774">શોધખોળ કરો</translation>
 <translation id="1749561566933687563">તમારા બુકમાર્કને સિંક કરો</translation>
 <translation id="1750259112639922169">ટૅબનું ગ્રૂપ - <ph name="TAB_COUNT" /> ટૅબ</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> સેકંડ બાકી</translation>
 <translation id="2779651927720337254">નિષ્ફળ થયું</translation>
 <translation id="2781151931089541271">1 સેકંડ બાકી</translation>
-<translation id="2788468313014644040">ગ્રૂપ નંબર</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> ટૅબ બંધ કરવામાં આવશે</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">સાચવેલા પાસવર્ડ તમારા <ph name="BEGIN_LINK" />Google એકાઉન્ટ<ph name="END_LINK" />માં જુઓ અને મેનેજ કરો</translation>
 <translation id="2818669890320396765">તમારા બધા ડિવાઇસ પર તમારા બુકમાર્ક મેળવવા માટે, સાઇન ઇન કરો અને સિંક કરવાનું ચાલુ કરો</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">છબી શેર કરો</translation>
 <translation id="3387650086002190359">ફાઇલ સિસ્ટમ ભૂલોના કારણે <ph name="FILE_NAME" /> ડાઉનલોડ નિષ્ફળ થયું.</translation>
 <translation id="3389286852084373014">ટેક્સ્ટ ખૂબ મોટી છે</translation>
-<translation id="3391512812407811893">પ્રાઇવસી સૅન્ડબૉક્સની અજમાયશ</translation>
 <translation id="3398320232533725830">બુકમાર્ક મેનેજર ખોલો</translation>
 <translation id="3407392651057365886">વધુ પેજ પહેલેથી લોડ કરવામાં આવ્યા છે. જ્યારે અન્ય સાઇટ દ્વારા વિનંતી કરવામાં આવે, ત્યારે પેજને Googleના સર્વર મારફતે પહેલેથી લોડ કરી શકાય છે.</translation>
 <translation id="3414952576877147120">કદ:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">ફરીથી ફૉલો કરો</translation>
 <translation id="6002122790816966947">તમારા ડિવાઇસ</translation>
 <translation id="6005538289190791541">સૂચવેલ પાસવર્ડ</translation>
-<translation id="6032091552407840792">આ અજમાયશ માત્ર <ph name="BEGIN_LINK" />કેટલાક પ્રદેશો<ph name="END_LINK" />માં સક્રિય છે.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />પ્રાઇવસી સૅન્ડબૉક્સ<ph name="END_LINK" /> વડે, Chrome નવી ટેક્નોલોજીનો વિકાસ કરી રહ્યું છે, જે ખુલ્લી વેબ પર સુરક્ષિત રાખીને, ક્રોસ-સાઇટ ટ્રૅકિંગ સામે તમારું સંરક્ષણ કરે છે.
-
-પ્રાઇવસી સૅન્ડબૉક્સની અજમાયશો હજુ પણ સક્રિય વિકાસ હેઠળ છે અને અમુક પ્રદેશોમાં ઉપલબ્ધ છે. હાલ પૂરતું, સાઇટ ત્રીજા પક્ષની કુકી જેવી વર્તમાન વેબ ટેક્નોલોજીનો ઉપયોગ કરવાનું ચાલુ રાખીને પ્રાઇવસી સૅન્ડબૉક્સને અજમાવી શકે છે.</translation>
 <translation id="6039379616847168523">આગલા ટૅબ પર જાઓ</translation>
 <translation id="6040143037577758943">બંધ કરો</translation>
 <translation id="604124094241169006">સ્વચલિત</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">ઉમેરો</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> ટૅબ રિસ્ટોર કરી</translation>
 <translation id="780301667611848630">નહીં, આભાર</translation>
-<translation id="7805768142964895445">સ્થિતિ</translation>
 <translation id="7808889146555843082">આ પાસવર્ડ ડિલીટ કરવાથી <ph name="SITE" /> પરનું તમારું એકાઉન્ટ ડિલીટ થશે નહીં. <ph name="SITE" /> પરનું તમારું એકાઉન્ટ ડિલીટ કરો અથવા તમારો પાસવર્ડ બદલો કે જેથી તેને અન્ય લોકોથી સુરક્ષિત રાખી શકાય.</translation>
 <translation id="7810647596859435254">આની સાથે ખોલો…</translation>
 <translation id="7815484226266492798">લાંબો સ્ક્રીનશૉટ</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">તમારા પોતાના સિંક પાસફ્રેઝ સાથે સિંક કરેલા ડેટાને એન્ક્રિપ્ટ કરો</translation>
 <translation id="8466613982764129868">ખાતરી કરો કે <ph name="TARGET_DEVICE_NAME" />ને ઇન્ટરનેટ સાથે કનેક્ટ કરેલું છે</translation>
 <translation id="8473863474539038330">સરનામા અને વધુ</translation>
-<translation id="8481921391193215807">જ્યારે ચાલુ હોય, ત્યારે સાઇટ તેમાંનું કન્ટેન્ટ અને સેવાઓ પ્રદાન કરવા માટે, અહીં બતાવેલી પ્રાઇવસીની જાળવણી કરતી ટેક્નોલોજીનો ઉપયોગ કરી શકે છે. આમાં ક્રોસ-સાઇટ ટ્રૅકિંગ માટેના વિકલ્પોનો સમાવેશ છે. સમયાંતરે વધુ અજમાયશો ઉમેરવામાં આવી શકે છે.
-
-<ph name="BEGIN_LIST_ITEM1" />જાહેરાતકર્તાઓ અને પ્રકાશકો FLoCનો ઉપયોગ કરી શકે છે.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />જાહેરાતકર્તાઓ અને પ્રકાશકો જાહેરાતોની અસરકારકતાનો એવી રીતે અભ્યાસ કરી શકે છે કે તમને કોઈ પણ સાઇટ પર ટ્રૅક કરવામાં ન આવે.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">અજમાયશની સુવિધાઓ ચાલુ છે</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ઇતિહાસ પેજ ખોલો</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ફાઇલનું નામ પહેલેથી અસ્તિત્વમાં છે</translation>
 <translation id="8666759526542103597">બ્રાઉઝર આધારિત રુચિ મુજબ જાહેરાત વિશેની માહિતી</translation>
 <translation id="8676789164135894283">સાઇન ઇન માટેની ચકાસણીઓ</translation>
-<translation id="867767487203716855">આગલી અપડેટ</translation>
 <translation id="8683039184091909753">છબી</translation>
-<translation id="8683081248374354009">ગ્રૂપને રીસેટ કરો</translation>
 <translation id="869891660844655955">સમાપ્તિ તારીખ</translation>
 <translation id="8699120352855309748">આ ભાષાઓનો અનુવાદ કરવાનું ઑફર કરશો નહીં</translation>
 <translation id="8712637175834984815">સમજાઈ ગયું</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
index 41d7359..8c3450f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">पिछला घंटा</translation>
 <translation id="1724977129262658800">अपना पासवर्ड बदलने के लिए अनलॉक करें</translation>
 <translation id="1726477445370128854">अगर Chrome उन पेजों को पहले से लोड कर लेता है जिन पर आपके विज़िट करने की संभावना हो, तो उन्हें ज़्यादा तेज़ी से खोजा और ब्राउज़ किया जा सकता है.</translation>
-<translation id="173522743738009831">निजता सैंडबॉक्स की जानकारी</translation>
 <translation id="1736419249208073774">बेहतर जानें</translation>
 <translation id="1749561566933687563">अपने बुकमार्क समन्‍वयित करें</translation>
 <translation id="1750259112639922169">टैब ग्रुप - <ph name="TAB_COUNT" /> टैब</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> सेकंड शेष</translation>
 <translation id="2779651927720337254">डाउनलोड नहीं हो सका</translation>
 <translation id="2781151931089541271">1 सेकंड शेष</translation>
-<translation id="2788468313014644040">ग्रुप नंबर</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> टैब बंद हो जाएगा</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">अपने <ph name="BEGIN_LINK" />Google खाते<ph name="END_LINK" /> में सेव किए गए पासवर्ड देखें और उन्हें प्रबंधित करें</translation>
 <translation id="2818669890320396765">अपने सभी डिवाइस पर अपने बुकमार्क पाने के लिए, साइन इन करें और 'सिंक करें' को चालू करें</translation>
 <translation id="2827278682606527653">फ़ीड कार्ड मेन्यू आधा खुल गया है</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">इमेज शेयर करें</translation>
 <translation id="3387650086002190359">सिस्‍टम त्रुटियों के कारण <ph name="FILE_NAME" /> डाउनलोड विफल रहा.</translation>
 <translation id="3389286852084373014">टेक्स्ट बहुत बड़ा है</translation>
-<translation id="3391512812407811893">निजता सैंडबॉक्स ट्रायल</translation>
 <translation id="3398320232533725830">बुकमार्क मैनेजर खोलें</translation>
 <translation id="3407392651057365886">ज़्यादा पेज पहले से लोड किए जाते हैं. दूसरी साइटों के अनुरोध करने पर, Google के सर्वर की मदद से, पेजों को पहले से लोड किया जा सकता है.</translation>
 <translation id="3414952576877147120">आकार:</translation>
@@ -912,10 +908,6 @@
 <translation id="6000203700195075278">फिर से फ़ॉलो करें</translation>
 <translation id="6002122790816966947">आपके डिवाइस</translation>
 <translation id="6005538289190791541">सुझाया गया पासवर्ड</translation>
-<translation id="6032091552407840792">मुफ़्त में आज़माने की यह सुविधा सिर्फ़ <ph name="BEGIN_LINK" />कुछ क्षेत्रों<ph name="END_LINK" /> में चालू है.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />निजता सैंडबॉक्स<ph name="END_LINK" /> की मदद से Chrome एक नई टेक्नोलॉजी डेवलप कर रहा है. यह टेक्नोलॉजी ओपन वेब को सुरक्षित रखते हुए, आपको क्रॉस-साइट ट्रैकिंग से बचाने में मदद करेगी.
-
-निजता सैंडबॉक्स को मुफ़्त में आज़माने की सुविधाएं अब भी डेवलप की जा रही हैं. ये चुनिंदा क्षेत्रों में उपलब्ध हैं. फ़िलहाल, साइटें मौजूदा वेब टेक्नोलॉजी (जैसे, तीसरे पक्ष की कुकी) का इस्तेमाल जारी रखते हुए, निजता सैंडबॉक्स को आज़मा सकती हैं.</translation>
 <translation id="6039379616847168523">सीधे अगले टैब पर जाएं</translation>
 <translation id="6040143037577758943">बंद करें</translation>
 <translation id="604124094241169006">स्वचालित</translation>
@@ -1247,7 +1239,6 @@
 <translation id="7791543448312431591">जोड़ें</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> टैब वापस लाए गए</translation>
 <translation id="780301667611848630">नहीं, रहने दें</translation>
-<translation id="7805768142964895445">स्थिति</translation>
 <translation id="7808889146555843082">इस पासवर्ड को मिटाने से, आपका <ph name="SITE" /> वाला खाता नहीं मिटेगा. दूसरों से सुरक्षित रखने के लिए, अपना पासवर्ड बदलें या अपना <ph name="SITE" /> वाला खाता मिटाएं.</translation>
 <translation id="7810647596859435254">इसमें खोलें…</translation>
 <translation id="7815484226266492798">लंबा स्क्रीनशॉट</translation>
@@ -1381,11 +1372,6 @@
 <translation id="8461694314515752532">सिंक किए गए डेटा को अपने खुद के सिंक लंबे पासवर्ड से सुरक्षित करें</translation>
 <translation id="8466613982764129868">पक्का करें कि <ph name="TARGET_DEVICE_NAME" /> को इंटरनेट से कनेक्ट किया गया है</translation>
 <translation id="8473863474539038330">पते वगैरह</translation>
-<translation id="8481921391193215807">इसे चालू करने पर, साइटें अपना कॉन्टेंट और सेवाएं उपलब्ध कराने के लिए, यहां दिखाई गई 'निजता की सुरक्षा से जुड़ी तकनीकें' इस्तेमाल कर सकती हैं. इनमें ऐसे तरीके शामिल हैं जिन्हें क्रॉस-साइट ट्रैकिंग की जगह इस्तेमाल किया जा सकता है. बाद में, मुफ़्त में आज़माने की सुविधा ज़्यादा बार दी जा सकती है.
-
-<ph name="BEGIN_LIST_ITEM1" />विज्ञापन देने वाले और प्रकाशक, FLoC इस्तेमाल कर सकते हैं.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />प्रकाशक और विज्ञापन देने वाले, सभी साइटों पर आपको ट्रैक किए बिना, किसी खास तरीके से अपने विज्ञापनों के असर का अध्ययन कर सकते हैं.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ट्रायल की सुविधाएं चालू हैं</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">इतिहास पेज खोलें</translation>
@@ -1431,9 +1417,7 @@
 <translation id="8664979001105139458">इस नाम की फ़ाइल पहले से मौजूद है</translation>
 <translation id="8666759526542103597">ब्राउज़र के हिसाब से दिलचस्पी के मुताबिक विज्ञापन के बारे में जानकारी</translation>
 <translation id="8676789164135894283">अन्य कंप्यूटर पर साइन इन करें</translation>
-<translation id="867767487203716855">अगला अपडेट</translation>
 <translation id="8683039184091909753">इमेज</translation>
-<translation id="8683081248374354009">ग्रुप को रीसेट करें</translation>
 <translation id="869891660844655955">खत्म होने की तारीख</translation>
 <translation id="8699120352855309748">इन भाषाओं का अनुवाद करने की सुविधा न दें</translation>
 <translation id="8712637175834984815">समझ लिया</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
index 3afd33a..7949589 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Zadnji sat</translation>
 <translation id="1724977129262658800">Otključajte da biste izmijenili zaporku</translation>
 <translation id="1726477445370128854">Možete pregledavati i pretraživati brže kad Chrome predučitava stranice za koje misli da biste ih mogli posjetiti</translation>
-<translation id="173522743738009831">O Privacy Sandboxu</translation>
 <translation id="1736419249208073774">Istražite</translation>
 <translation id="1749561566933687563">Sinkronizirajte oznake</translation>
 <translation id="1750259112639922169">Grupa kartica – broj kartica: <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Preostalo sekundi: <ph name="SECONDS" /></translation>
 <translation id="2779651927720337254">nije uspjelo</translation>
 <translation id="2781151931089541271">Još 1 s</translation>
-<translation id="2788468313014644040">Broj grupe</translation>
 <translation id="2800066122460699237">Zatvorit će se kartica <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Spremljene zaporke možete pregledati i upravljati njima na svojem <ph name="BEGIN_LINK" />Google računu<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Da bi se vaše oznake prikazale na svim vašim uređajima, prijavite se i uključite sinkronizaciju</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Dijeli sliku</translation>
 <translation id="3387650086002190359">Preuzimanje datoteke <ph name="FILE_NAME" /> nije uspjelo zbog nepoznate pogreške sustava datoteka.</translation>
 <translation id="3389286852084373014">Tekst je prevelik</translation>
-<translation id="3391512812407811893">Probne verzije Privacy Sandboxa</translation>
 <translation id="3398320232533725830">Otvaranje upravitelja oznaka</translation>
 <translation id="3407392651057365886">Predučitava se više stranica. Stranice se mogu predučitati putem Googleovih poslužitelja kad to zatraže druge web-lokacije.</translation>
 <translation id="3414952576877147120">Veličina:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Pratite ponovo</translation>
 <translation id="6002122790816966947">Vaši uređaji</translation>
 <translation id="6005538289190791541">Predložena zaporka</translation>
-<translation id="6032091552407840792">Proba je aktivna samo u <ph name="BEGIN_LINK" />nekim regijama<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Uz <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> Chrome razvija nove tehnologije koje će vas štititi od praćenja na različitim web-lokacijama, a istovremeno očuvati otvorenost weba.
-
-Probe Privacy Sandboxa i dalje su u aktivnom razvoju i dostupne su u odabranim regijama. Web-lokacije trenutačno mogu isprobati Privacy Sandbox dok se istovremeno još uvijek koriste aktualnim web-tehnologijama, npr. kolačićima trećih strana.</translation>
 <translation id="6039379616847168523">Preskakanje na sljedeću karticu</translation>
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="604124094241169006">Automatski</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Dodavanje</translation>
 <translation id="7798392620021911922">Kartice su vraćene (njih <ph name="TAB_COUNT" />)</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Brisanjem zaporke neće se izbrisati vaš račun na <ph name="SITE" />. Izmijenite zaporku ili izbrišite račun na <ph name="SITE" /> da biste ga zaštitili od drugih.</translation>
 <translation id="7810647596859435254">Otvori aplikacijom…</translation>
 <translation id="7815484226266492798">Duga snimka zaslona</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Šifriraj sinkronizirane podatke vlastitom šifrom za sinkronizaciju</translation>
 <translation id="8466613982764129868">Provjerite je li <ph name="TARGET_DEVICE_NAME" /> povezan s internetom</translation>
 <translation id="8473863474539038330">Adrese i više</translation>
-<translation id="8481921391193215807">Kada je Privacy Sandbox uključen, za pružanje svog sadržaja i svojih usluga web-lokacije mogu primjenjivati ovdje prikazane tehnike kojima se čuva privatnost. Te tehnike uključuju alternative praćenju na različitim web-lokacijama. U budućnosti će se možda dodati još probnih značajki.
-
-<ph name="BEGIN_LIST_ITEM1" />Oglašivači i izdavači mogu koristiti FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Oglašivači i izdavači mogu steći uvid u učinkovitost oglasa na način koji ne uključuje praćenje korisnika na raznim web-lokacijama.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Probne značajke su uključene</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Prikaz stranice povijesti</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Već postoji datoteka s tim nazivom</translation>
 <translation id="8666759526542103597">O prilagodbi oglasa na temelju preglednika</translation>
 <translation id="8676789164135894283">Potvrde prijave</translation>
-<translation id="867767487203716855">Sljedeće ažuriranje</translation>
 <translation id="8683039184091909753">slika</translation>
-<translation id="8683081248374354009">Poništi grupu</translation>
 <translation id="869891660844655955">Datum isteka</translation>
 <translation id="8699120352855309748">Nemoj nuditi prevođenje ovih jezika</translation>
 <translation id="8712637175834984815">Shvaćam</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 55766c7c5..70facea 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Az elmúlt órából</translation>
 <translation id="1724977129262658800">Oldja fel a képernyőzárat a jelszó szerkesztéséhez</translation>
 <translation id="1726477445370128854">Gyorsabban böngészhet és kereshet, ha a Chrome betölti előre azokat az oldalakat, amelyeket a böngésző szerint Ön már felkeresett.</translation>
-<translation id="173522743738009831">A Privacy Sandbox bemutatása</translation>
 <translation id="1736419249208073774">Felfedezés</translation>
 <translation id="1749561566933687563">Könyvjelzők szinkronizálása</translation>
 <translation id="1750259112639922169">Lapcsoport – <ph name="TAB_COUNT" /> lap</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> másodperc van hátra</translation>
 <translation id="2779651927720337254">sikertelen</translation>
 <translation id="2781151931089541271">1 másodperc van hátra</translation>
-<translation id="2788468313014644040">Csoportszám</translation>
 <translation id="2800066122460699237">A lap (<ph name="TAB_TITLE" />) be lesz zárva</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Mentett jelszavait megtekintheti és kezelheti <ph name="BEGIN_LINK" />Google-fiókjában<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Ha az összes eszközén szeretné elérni könyvjelzőit, jelentkezzen be, és kapcsolja be a szinkronizálást</translation>
 <translation id="2827278682606527653">A hírcsatornakártya menüje félmagasságban van megnyitva</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Kép megosztása</translation>
 <translation id="3387650086002190359">A következő fájl letöltése a fájlrendszer hibái miatt nem sikerült: <ph name="FILE_NAME" />.</translation>
 <translation id="3389286852084373014">A szöveg túl nagy</translation>
-<translation id="3391512812407811893">Privacy Sandbox próbaverziók</translation>
 <translation id="3398320232533725830">A Könyvjelzőkezelő megnyitása</translation>
 <translation id="3407392651057365886">A rendszer több oldalt tölt be előre. Az oldalakat előre betöltheti a rendszer a Google szerverein keresztül, ha más webhelyek kérik.</translation>
 <translation id="3414952576877147120">Méret:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Újrakövetés</translation>
 <translation id="6002122790816966947">Saját eszközök</translation>
 <translation id="6005538289190791541">Javasolt jelszó</translation>
-<translation id="6032091552407840792">Ez a próbaverzió csak <ph name="BEGIN_LINK" />egyes régiókban áll rendelkezésre<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">A <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> révén a Chrome olyan új technológiákat fejlesztünk, melyek megvédik Önt a nyomon követési mechanizmusoktól, miközben megőrzik a web nyitottságát.
-
-A Privacy Sandbox próbaverziói még mindig aktív fejlesztés alatt állnak, és csak egyes régiókban állnak rendelkezésre. A webhelyek egyelőre kipróbálhatják a Privacy Sandbox funkcióit, miközben továbbra is használhatják a jelenlegi webes technológiákat (pl. a cookie-kat).</translation>
 <translation id="6039379616847168523">Ugrás a következő lapra</translation>
 <translation id="6040143037577758943">Bezárás</translation>
 <translation id="604124094241169006">Automatikus</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Hozzáadás</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> lap visszaállítva</translation>
 <translation id="780301667611848630">Köszönöm, nem</translation>
-<translation id="7805768142964895445">Állapot</translation>
 <translation id="7808889146555843082">A jelszó eltávolításával nem törli fiókját a következő domainről: <ph name="SITE" />. Ha szeretné megőrizni fiókja biztonságát, módosítsa a jelszót, vagy törölje a fiókot a(z) <ph name="SITE" /> domainről.</translation>
 <translation id="7810647596859435254">Megnyitás ezzel:</translation>
 <translation id="7815484226266492798">Hosszú képernyőkép</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">A szinkronizált adatok titkosítása saját összetett szinkronizálási jelszóval</translation>
 <translation id="8466613982764129868">Győződjön meg arról, hogy a(z) <ph name="TARGET_DEVICE_NAME" /> eszköz csatlakozik az internethez</translation>
 <translation id="8473863474539038330">Címek és egyebek</translation>
-<translation id="8481921391193215807">Ha engedélyezve van, a webhelyek használhatják az itt bemutatott adatvédelem-biztosítási módszereket a tartalmaiknál és a szolgáltatásaiknál. Itt találhatók alternatívák a webhelyeken átnyúló nyomon követésre is. Később további próbafunkciók is belekerülhetnek.
-
-<ph name="BEGIN_LIST_ITEM1" />A hirdetők és a megjelenítők használhatják a FLoC technológiát.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />A hirdetők és a megjelenítők ezáltal úgy tanulmányozhatják a hirdetések hatékonyságát, hogy nem követik Önt a különböző webhelyeken.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">A próbafunkciók be vannak kapcsolva</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Az Előzmények oldal megnyitása</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Már van ilyen nevű fájl</translation>
 <translation id="8666759526542103597">A hirdetések böngészőalapú személyre szabásáról</translation>
 <translation id="8676789164135894283">Bejelentkezési hitelesítések</translation>
-<translation id="867767487203716855">Következő frissítés</translation>
 <translation id="8683039184091909753">kép</translation>
-<translation id="8683081248374354009">Csoport visszaállítása</translation>
 <translation id="869891660844655955">Lejárati dátum</translation>
 <translation id="8699120352855309748">Ne ajánlja fel a fordítást ezekről a nyelvekről</translation>
 <translation id="8712637175834984815">Értem</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
index 0fe88a6..7641526 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Վերջին 1 ժամվա</translation>
 <translation id="1724977129262658800">Ապակողպեք էկրանը՝ ձեր գաղտնաբառը փոխելու համար</translation>
 <translation id="1726477445370128854">Դուք կարող եք արագացնել Chrome-ի աշխատանքը, եթե թույլատրեք, որ այն նախապես էջեր բեռնի։</translation>
-<translation id="173522743738009831">Privacy Sandbox-ի մասին</translation>
 <translation id="1736419249208073774">Ուսումնասիրել</translation>
 <translation id="1749561566933687563">Համաժամացրեք ձեր էջանիշները</translation>
 <translation id="1750259112639922169">Ներդիրների խումբ – <ph name="TAB_COUNT" /> ներդիր</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Մնացել է <ph name="SECONDS" /> վրկ</translation>
 <translation id="2779651927720337254">չհաջողվեց ներբեռնել</translation>
 <translation id="2781151931089541271">Մնացել է 1 վրկ</translation>
-<translation id="2788468313014644040">Խմբի համարը</translation>
 <translation id="2800066122460699237">«<ph name="TAB_TITLE" />» ներդիրը կփակվի</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Դիտեք և կառավարեք պահված գաղտնաբառերը ձեր <ph name="BEGIN_LINK" />Google հաշվում<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Ձեր էջանիշները բոլոր սարքերում օգտագործելու համար մտեք հաշիվ և միացրեք համաժամացումը</translation>
 <translation id="2827278682606527653">Լրահոսի քարտի ընտրացանկը բացված է կիսով չափ</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Կիսվել պատկերով</translation>
 <translation id="3387650086002190359"><ph name="FILE_NAME" /> ֆայլի ներբեռնումը ձախողվեց՝ ֆայլային համակարգի սխալի պատճառով:</translation>
 <translation id="3389286852084373014">Տեքստը չափազանց մեծ է</translation>
-<translation id="3391512812407811893">Privacy Sandbox-ի փորձնական տարբերակներ</translation>
 <translation id="3398320232533725830">Բացել էջանիշների կառավարիչը</translation>
 <translation id="3407392651057365886">Նախաբեռնվում են ավելի շատ էջեր։ Նախաբեռնումը կարող է կատարվել Google-ի սերվերների կողմից այլ կայքերի հարցումով։</translation>
 <translation id="3414952576877147120">Չափսը՝</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Նորից բաժանորդագրվել</translation>
 <translation id="6002122790816966947">Ձեր սարքերը</translation>
 <translation id="6005538289190791541">Առաջարկվող գաղտնաբառ</translation>
-<translation id="6032091552407840792">Այս փորձնական գործառույթը հասանելի է միայն <ph name="BEGIN_LINK" />որոշ տարածաշրջաններում<ph name="END_LINK" />։</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />-ի օգնությամբ Chrome-ը մշակում է նոր տեխնոլոգիաներ, որոնք պաշտպանում են ձեզ գործողությունների միջկայքային հետագծման մեխանիզմներից։
-
-Privacy Sandbox տեխնոլոգիան դեռևս մշակման փուլում է և հասանելի է միայն որոշակի տարածաշրջաններում։ Ներկայումս կայքերը կարող են օգտագործել Privacy Sandbox տեխնոլոգիայի փորձնական տարբերակը՝ շարունակելով կիրառել առկա վեբ տեխնոլոգիաները (օրինակ՝ երրորդ կողմի քուքիները)։</translation>
 <translation id="6039379616847168523">Անցնել հաջորդ ներդիր</translation>
 <translation id="6040143037577758943">Փակել</translation>
 <translation id="604124094241169006">Ավտոմատ</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Ավելացնել</translation>
 <translation id="7798392620021911922">Վերականգնվել է <ph name="TAB_COUNT" /> ներդիր</translation>
 <translation id="780301667611848630">Ոչ</translation>
-<translation id="7805768142964895445">Կարգավիճակ</translation>
 <translation id="7808889146555843082">Եթե հեռացնեք այս գաղտնաբառը, ձեր հաշիվը չի ջնջվի <ph name="SITE" /> կայքից։ Անվտանգության նկատառումներով փոխեք գաղտնաբառը կամ ջնջեք հաշիվը <ph name="SITE" /> կայքում։</translation>
 <translation id="7810647596859435254">Բացել հավելվածով…</translation>
 <translation id="7815484226266492798">Երկար սքրինշոթ</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Գաղտնագրել համաժամացված տվյալները սեփական համաժամացման անցաբառով</translation>
 <translation id="8466613982764129868">Համոզվեք, որ <ph name="TARGET_DEVICE_NAME" /> սարքը միացված է ինտերնետին</translation>
 <translation id="8473863474539038330">Հասցեներ և այլ տեղեկություններ</translation>
-<translation id="8481921391193215807">Երբ այս գործառույթը միացված է, կայքերը կարող են օգտագործել գաղտնիությունն ապահովող նշված տեխնոլոգիաները, այդ թվում՝ գործողությունների միջկայքային հետագծման այլընտրանքները, իրենց բովանդակությունն ու ծառայությունները առաջարկելու համար։ Դրանք ներառում են գործողությունների միջկայքային հետագծումը։ Ժամանակի ընթացքում կավելացվեն այլ փորձնական գործառույթներ։
-
-<ph name="BEGIN_LIST_ITEM1" />Գովազդատուներն ու հրատարակիչները կարող են օգտագործել FLoC տեխնոլոգիան։<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Գովազդատուներն ու հրատարակիչները կարող են գնահատել գովազդի արդյունավետությունը՝ առանց հետագծելու ձեր գործողությունները համացանցում։<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Փորձնական գործառույթները միացված են</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Բացել պատմության էջը</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Այս անունով ֆայլ արդեն գոյություն ունի</translation>
 <translation id="8666759526542103597">Դիտարկիչում գործողությունների հիման վրա գովազդի անհատականացման մասին</translation>
 <translation id="8676789164135894283">Ծանուցումներ մուտքի մասին</translation>
-<translation id="867767487203716855">Հաջորդ թարմացումը</translation>
 <translation id="8683039184091909753">պատկեր</translation>
-<translation id="8683081248374354009">Զրոյացնել խմբի կարգավորումները</translation>
 <translation id="869891660844655955">Սպառման ժամկետ</translation>
 <translation id="8699120352855309748">Չառաջարկել թարգմանել այս լեզուները</translation>
 <translation id="8712637175834984815">Պատրաստ է</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
index 8e5bc5ff..bc8ca3bf 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Sejam terakhir</translation>
 <translation id="1724977129262658800">Buka kunci untuk mengedit sandi Anda</translation>
 <translation id="1726477445370128854">Anda dapat menjelajah dan menelusuri lebih cepat saat Chrome melakukan pramuat halaman yang menurutnya mungkin akan Anda buka</translation>
-<translation id="173522743738009831">Tentang Privacy Sandbox</translation>
 <translation id="1736419249208073774">Jelajahi</translation>
 <translation id="1749561566933687563">Sinkronisasikan bookmark Anda</translation>
 <translation id="1750259112639922169">Grup tab - <ph name="TAB_COUNT" /> tab</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> detik lagi</translation>
 <translation id="2779651927720337254">gagal</translation>
 <translation id="2781151931089541271">1 detik lagi</translation>
-<translation id="2788468313014644040">Nomor grup</translation>
 <translation id="2800066122460699237">Tab <ph name="TAB_TITLE" /> akan ditutup</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Lihat dan kelola sandi tersimpan di <ph name="BEGIN_LINK" />Akun Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Untuk dapat mengakses bookmark Anda di semua perangkat, login dan aktifkan sinkronisasi</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Bagikan gambar</translation>
 <translation id="3387650086002190359">Download <ph name="FILE_NAME" /> gagal karena kesalahan sistem file.</translation>
 <translation id="3389286852084373014">Teks terlalu besar</translation>
-<translation id="3391512812407811893">Uji coba Privacy Sandbox</translation>
 <translation id="3398320232533725830">Membuka pengelola bookmark</translation>
 <translation id="3407392651057365886">Lebih banyak halaman dipramuat. Halaman mungkin dipramuat melalui server Google saat diminta oleh situs lain.</translation>
 <translation id="3414952576877147120">Ukuran:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Ikuti kembali</translation>
 <translation id="6002122790816966947">Perangkat Anda</translation>
 <translation id="6005538289190791541">Sandi yang disarankan</translation>
-<translation id="6032091552407840792">Uji coba ini hanya aktif di <ph name="BEGIN_LINK" />beberapa wilayah<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Dengan <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome mengembangkan teknologi baru untuk mengamankan Anda dari pelacakan lintas situs sekaligus mempertahankan web terbuka.
-
-Uji coba Privacy Sandbox masih dalam pengembangan aktif dan hanya tersedia di wilayah tertentu. Untuk saat ini, situs dapat mencoba Privacy Sandbox sambil tetap menggunakan teknologi web saat ini seperti cookie pihak ketiga.</translation>
 <translation id="6039379616847168523">Beralih ke tab berikutnya</translation>
 <translation id="6040143037577758943">Tutup</translation>
 <translation id="604124094241169006">Otomatis</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Tambahkan</translation>
 <translation id="7798392620021911922">Memulihkan <ph name="TAB_COUNT" /> tab</translation>
 <translation id="780301667611848630">Lain kali</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Menghapus sandi ini tidak akan menghapus akun Anda di <ph name="SITE" />. Ubah sandi Anda atau hapus akun Anda di <ph name="SITE" /> untuk menjaganya tetap aman dari orang lain.</translation>
 <translation id="7810647596859435254">Buka dengan...</translation>
 <translation id="7815484226266492798">Screenshot Panjang</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Enkripsikan data yang disinkronkan dengan frasa sandi sinkronisasi Anda sendiri</translation>
 <translation id="8466613982764129868">Pastikan <ph name="TARGET_DEVICE_NAME" /> terhubung ke internet</translation>
 <translation id="8473863474539038330">Alamat dan lain-lain</translation>
-<translation id="8481921391193215807">Jika aktif, situs dapat menggunakan teknik yang melindungi privasi seperti yang ditunjukkan di sini untuk menyediakan konten dan layanannya. Ini termasuk alternatif untuk pelacakan lintas situs. Uji coba lainnya dapat ditambahkan seiring waktu.
-
-<ph name="BEGIN_LIST_ITEM1" />Pengiklan dan penayang dapat menggunakan FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Pengiklan dan penayang dapat mempelajari keefektifan iklan dengan cara yang tidak melacak Anda di berbagai situs.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Fitur uji coba aktif</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Membuka halaman histori</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Nama file sudah ada</translation>
 <translation id="8666759526542103597">Tentang Personalisasi iklan berbasis browser</translation>
 <translation id="8676789164135894283">Verifikasi login</translation>
-<translation id="867767487203716855">Update berikutnya</translation>
 <translation id="8683039184091909753">gambar</translation>
-<translation id="8683081248374354009">Reset grup</translation>
 <translation id="869891660844655955">Masa berlaku</translation>
 <translation id="8699120352855309748">Jangan tawarkan penerjemahan bahasa ini</translation>
 <translation id="8712637175834984815">Mengerti</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
index fc86acf..a39b57fd 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Undanfarna klukkustund</translation>
 <translation id="1724977129262658800">Taktu úr lás til að breyta aðgangsorðinu</translation>
 <translation id="1726477445370128854">Þú getur vafrað og leitað á hraðari hátt þegar Chrome forhleður síðum sem vafrinn telur að þú munir opna</translation>
-<translation id="173522743738009831">Um Privacy Sandbox</translation>
 <translation id="1736419249208073774">Kanna</translation>
 <translation id="1749561566933687563">Samstilltu bókamerkin þín</translation>
 <translation id="1750259112639922169">Flipahópur – <ph name="TAB_COUNT" /> flipar</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sek. eftir</translation>
 <translation id="2779651927720337254">mistókst</translation>
 <translation id="2781151931089541271">Ein sek. eftir</translation>
-<translation id="2788468313014644040">Númer hóps</translation>
 <translation id="2800066122460699237">Flipanum <ph name="TAB_TITLE" /> verður lokað</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Þú getur skoðað og haft umsjón með vistuðum aðgangsorðum á <ph name="BEGIN_LINK" />Google reikningnum<ph name="END_LINK" /> þínum</translation>
 <translation id="2818669890320396765">Skráðu þig inn og kveiktu á samstillingu til að fá aðgang að bókamerkjunum þínum í öllum tækjum</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Deila mynd</translation>
 <translation id="3387650086002190359">Niðurhal á <ph name="FILE_NAME" /> mistókst vegna villu í skráakerfi.</translation>
 <translation id="3389286852084373014">Textinn er of stór</translation>
-<translation id="3391512812407811893">Prufuútgáfur Privacy Sandbox</translation>
 <translation id="3398320232533725830">Opna bókamerkjaumsjón</translation>
 <translation id="3407392651057365886">Fleiri síðum er forhlaðið. Síðum er hugsanlega forhlaðið í gegnum þjóna Google samkvæmt beiðnum frá öðrum vefsvæðum.</translation>
 <translation id="3414952576877147120">Stærð:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Fylgja aftur</translation>
 <translation id="6002122790816966947">Tækin þín</translation>
 <translation id="6005538289190791541">Útbúið aðgangsorð</translation>
-<translation id="6032091552407840792">Þessi prufuútgáfa er aðeins virk á <ph name="BEGIN_LINK" />sumum svæðum<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Chrome notar <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> til að þróa nýja tækni sem verndar þig fyrir rakningartækni en varðveitir á sama tíma opna vefinn.
-
-Prufuútgáfur Privacy Sandbox eru enn í þróun og eru í boði á völdum svæðum. Eins og er geta vefsvæði prófað persónuverndarafmörkun á sama tíma og þau nota núverandi veftækni á borð við fótspor þriðja aðila.</translation>
 <translation id="6039379616847168523">Stökkva í næsta flipa</translation>
 <translation id="6040143037577758943">Loka</translation>
 <translation id="604124094241169006">Sjálfvirkt</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Bæta við</translation>
 <translation id="7798392620021911922">Endurheimti <ph name="TAB_COUNT" /> flipa</translation>
 <translation id="780301667611848630">Nei, takk</translation>
-<translation id="7805768142964895445">Staða</translation>
 <translation id="7808889146555843082">Reikningnum þínum á <ph name="SITE" /> verður ekki eytt þó að þessu aðgangsorði verði eytt. Breyttu aðgangsorðinu eða eyddu reikningnum þínum á <ph name="SITE" /> til að halda honum öruggum fyrir öðrum.</translation>
 <translation id="7810647596859435254">Opna með…</translation>
 <translation id="7815484226266492798">Löng skjámynd</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Dulkóða samstillt gögn með eigin aðgangsorði samstillingar</translation>
 <translation id="8466613982764129868">Gakktu úr skugga um að <ph name="TARGET_DEVICE_NAME" /> sé tengt við internetið</translation>
 <translation id="8473863474539038330">Heimilisföng og fleira</translation>
-<translation id="8481921391193215807">Þegar kveikt er á þessu geta vefsvæði notað umrædda persónuverndartækni til að birta efni og veita þjónustu. Þar á meðal er tækni sem kemur í stað rakningar á vefsvæðum. Mögulegt er að fleiri prufueiginleikum verði bætt við reglulega.
-
-<ph name="BEGIN_LIST_ITEM1" />Auglýsendur og útgefendur geta notað FLoC-tæknina.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Auglýsendur og útgefendur geta metið árangur auglýsinga án þess að rekja virkni þína á vefsvæðum.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Kveikt er á prufueiginleikum</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Opna ferilsíðuna</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Skráarheiti er þegar til</translation>
 <translation id="8666759526542103597">Um sérsniðnar auglýsingar út frá vafravirkni</translation>
 <translation id="8676789164135894283">Innskráningarstaðfestingar</translation>
-<translation id="867767487203716855">Næsta uppfærsla</translation>
 <translation id="8683039184091909753">mynd</translation>
-<translation id="8683081248374354009">Endurstilla hóp</translation>
 <translation id="869891660844655955">Lokadagsetning</translation>
 <translation id="8699120352855309748">Ekki bjóða upp á að þýða þessi tungumál</translation>
 <translation id="8712637175834984815">Ég skil</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
index a3870e76..cde4183 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Ultima ora</translation>
 <translation id="1724977129262658800">Sblocca per modificare la password</translation>
 <translation id="1726477445370128854">Puoi eseguire ricerche e navigare più rapidamente quando Chrome precarica le pagine che ritiene tu possa visitare</translation>
-<translation id="173522743738009831">Informazioni su Privacy Sandbox</translation>
 <translation id="1736419249208073774">Esplora</translation>
 <translation id="1749561566933687563">Sincronizza i tuoi preferiti</translation>
 <translation id="1750259112639922169">Gruppo di schede - <ph name="TAB_COUNT" /> schede</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sec rimanenti</translation>
 <translation id="2779651927720337254">non riuscito</translation>
 <translation id="2781151931089541271">1 sec rimanente</translation>
-<translation id="2788468313014644040">Numero del gruppo</translation>
 <translation id="2800066122460699237">La scheda <ph name="TAB_TITLE" /> verrà chiusa</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Visualizza e gestisci le password salvate nel tuo <ph name="BEGIN_LINK" />Account Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Accedi e attiva la sincronizzazione per trovare i tuoi preferiti su tutti i dispositivi</translation>
 <translation id="2827278682606527653">Menu scheda feed aperto nella metà inferiore dello schermo</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Condividi immagine</translation>
 <translation id="3387650086002190359">Download di <ph name="FILE_NAME" /> non riuscito a causa di errori del file system.</translation>
 <translation id="3389286852084373014">Il testo è troppo grande</translation>
-<translation id="3391512812407811893">Prove di Privacy Sandbox</translation>
 <translation id="3398320232533725830">Apri Gestione preferiti</translation>
 <translation id="3407392651057365886">Vengono precaricate più pagine. Le pagine potrebbero essere precaricate tramite i server di Google quando richiesto da altri siti.</translation>
 <translation id="3414952576877147120">Dimensioni:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Segui di nuovo</translation>
 <translation id="6002122790816966947">I tuoi dispositivi</translation>
 <translation id="6005538289190791541">Password consigliata</translation>
-<translation id="6032091552407840792">Questa prova è attiva soltanto in <ph name="BEGIN_LINK" />alcune regioni<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Con <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome sviluppa nuove tecnologie che ti tutelano dai meccanismi di tracciamento tra siti salvaguardando al contempo il Web aperto.
-
-Le prove di Privacy Sandbox sono ancora in fase di sviluppo attivo e sono disponibili soltanto in alcune regioni. Per il momento i siti possono provare Privacy Sandbox continuando a usare le attuali tecnologie web quali i cookie di terze parti.</translation>
 <translation id="6039379616847168523">Vai alla scheda successiva</translation>
 <translation id="6040143037577758943">Chiudi</translation>
 <translation id="604124094241169006">Automatico</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Aggiungi</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> schede ripristinate</translation>
 <translation id="780301667611848630">No grazie</translation>
-<translation id="7805768142964895445">Stato</translation>
 <translation id="7808889146555843082">L'eliminazione di questa password non comporta l'eliminazione del tuo account su <ph name="SITE" />. Cambia la password o elimina il tuo account su <ph name="SITE" /> per proteggerlo dagli altri.</translation>
 <translation id="7810647596859435254">Apri con…</translation>
 <translation id="7815484226266492798">Screenshot lungo</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Cripta i dati sincronizzati con la tua passphrase di sincronizzazione</translation>
 <translation id="8466613982764129868">Assicurati che il dispositivo <ph name="TARGET_DEVICE_NAME" /> sia connesso a Internet</translation>
 <translation id="8473863474539038330">Indirizzi e altro</translation>
-<translation id="8481921391193215807">Se attivi questa funzionalità, i siti potrebbero usare le tecniche che garantiscono la tutela della privacy mostrate qui per fornire i propri contenuti e servizi. Sono incluse alternative al tracciamento tra siti. Nel tempo potrebbero essere aggiunte altre prove.
-
-<ph name="BEGIN_LIST_ITEM1" />Gli inserzionisti e i publisher possono usare la tecnologia FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Gli inserzionisti e i publisher possono esaminare l'efficacia degli annunci senza tracciarti tra i siti.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Funzionalità di prova attive</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Apri la pagina Cronologia</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Nome file già esistente</translation>
 <translation id="8666759526542103597">Informazioni sull'impostazione Personalizzazione degli annunci basata sul browser</translation>
 <translation id="8676789164135894283">Verifiche degli accessi</translation>
-<translation id="867767487203716855">Prossimo aggiornamento</translation>
 <translation id="8683039184091909753">immagine</translation>
-<translation id="8683081248374354009">Reimposta gruppo</translation>
 <translation id="869891660844655955">Data di scadenza</translation>
 <translation id="8699120352855309748">Non proporre di tradurre queste lingue</translation>
 <translation id="8712637175834984815">Fatto</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
index dcd26a0..92d3b86d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">מהשעה האחרונה</translation>
 <translation id="1724977129262658800">יש לבטל את הנעילה כדי לערוך את הסיסמה</translation>
 <translation id="1726477445370128854">‏אפשר לגלוש ולחפש מהר יותר כשמערכת Chrome מבצעת הערכה לגבי דפים שהמשתמש יעבור אליהם וטוענת אותם מראש</translation>
-<translation id="173522743738009831">מידע על ארגז החול לפרטיות</translation>
 <translation id="1736419249208073774">מידע נוסף</translation>
 <translation id="1749561566933687563">סנכרון הסימניות שלך</translation>
 <translation id="1750259112639922169">קבוצת כרטיסיות - <ph name="TAB_COUNT" /> כרטיסיות</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">נותרו <ph name="SECONDS" /> שניות</translation>
 <translation id="2779651927720337254">נכשל</translation>
 <translation id="2781151931089541271">נותרה שנייה אחת</translation>
-<translation id="2788468313014644040">מספר הקבוצה</translation>
 <translation id="2800066122460699237">הכרטיסייה <ph name="TAB_TITLE" /> תיסגר</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">‏הצגה וניהול של סיסמאות שמורות ב<ph name="BEGIN_LINK" />חשבון Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">כדי לקבל גישה אל הסימניות שלך בכל המכשירים, יש להיכנס לחשבון ולהפעיל את הסנכרון</translation>
 <translation id="2827278682606527653">תפריט כרטיס הפיד נפתח בחצי מגובה המסך</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">שיתוף תמונה</translation>
 <translation id="3387650086002190359">הורדת <ph name="FILE_NAME" /> נכשלה עקב שגיאות במערכת הקבצים.</translation>
 <translation id="3389286852084373014">הטקסט ארוך מדי</translation>
-<translation id="3391512812407811893">תכונות ניסיוניות של ארגז החול לפרטיות</translation>
 <translation id="3398320232533725830">פתיחת מנהל הסימניות</translation>
 <translation id="3407392651057365886">‏יותר דפים נטענים מראש. דפים יכולים להיטען מראש באמצעות השרתים של Google כשמתקבלת בקשה מאתרים אחרים.</translation>
 <translation id="3414952576877147120">גודל:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">מעקב מחודש</translation>
 <translation id="6002122790816966947">המכשירים שלך</translation>
 <translation id="6005538289190791541">הצעה לסיסמה</translation>
-<translation id="6032091552407840792">תקופת הניסיון הזו פעילה רק ב<ph name="BEGIN_LINK" />אזורים מסוימים<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">‏באמצעות <ph name="BEGIN_LINK" />ארגז חול לפרטיות<ph name="END_LINK" />, מפתחים ב-Chrome טכנולוגיות חדשות שמגינות עליך מפני מעקב באתרים שונים תוך שמירה על האופי הפתוח של רשת האינטרנט.
-
-תקופות הניסיון של ארגז החול לפרטיות נמצאות עדיין בתהליכי פיתוח והן זמינות רק באזורים נבחרים. נכון לעכשיו, ניתן לנסות באתרים את 'ארגז חול של הגדרות פרטיות' במקביל לשימוש בטכנולוגיות אינטרנט קיימות, כמו קובצי cookie של צד שלישי.</translation>
 <translation id="6039379616847168523">מעבר לכרטיסייה הבאה</translation>
 <translation id="6040143037577758943">סגירה</translation>
 <translation id="604124094241169006">אוטומטי</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">הוספה</translation>
 <translation id="7798392620021911922">שוחזרו <ph name="TAB_COUNT" /> כרטיסיות</translation>
 <translation id="780301667611848630">לא תודה</translation>
-<translation id="7805768142964895445">סטטוס</translation>
 <translation id="7808889146555843082">מחיקת הסיסמה הזו לא תגרום למחיקת החשבון שלך באתר <ph name="SITE" />. כדי למנוע את החשיפה של הסיסמה, כדאי לשנות אותה או למחוק את החשבון שלך ב-<ph name="SITE" />.</translation>
 <translation id="7810647596859435254">פתיחה באמצעות...</translation>
 <translation id="7815484226266492798">צילום מסך ארוך</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">הצפנת נתונים מסונכרנים בעזרת ביטוי סיסמה אישי לסנכרון</translation>
 <translation id="8466613982764129868">יש לוודא ש-<ph name="TARGET_DEVICE_NAME" /> מחובר לאינטרנט</translation>
 <translation id="8473863474539038330">כתובות ועוד</translation>
-<translation id="8481921391193215807">‏כאשר התכונה מופעלת, אתרים יוכלו לספק את התוכן ואת השירותים שלהם בשיטות המוצגות כאן, שמאפשרות לשמור על הפרטיות. השיטות האלו כוללות חלופות למעקב בין אתרים. ייתכן שיתווספו עוד תכונות ניסיוניות בהמשך.
-
-<ph name="BEGIN_LIST_ITEM1" />מפרסמים ובעלי תוכן דיגיטלי יכולים להשתמש בשיטת FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />מפרסמים ובעלי תוכן דיגיטלי יכולים לבחון את יעילות המודעות בדרך שאינה כוללת מעקב אחריך באתרים שונים.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">התכונות הניסיוניות מופעלות</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">פתיחת דף ההיסטוריה</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">שם הקובץ כבר קיים</translation>
 <translation id="8666759526542103597">מידע על התאמה אישית של מודעות על סמך הדפדפן</translation>
 <translation id="8676789164135894283">שימוש במכשיר לאימות כניסה לחשבון</translation>
-<translation id="867767487203716855">העדכון הבא</translation>
 <translation id="8683039184091909753">תמונה</translation>
-<translation id="8683081248374354009">איפוס הקבוצה</translation>
 <translation id="869891660844655955">תאריך תפוגה</translation>
 <translation id="8699120352855309748">אין להציג את ההצעה לתרגם את השפות האלה</translation>
 <translation id="8712637175834984815">הבנתי</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
index e9778e9..d72e96f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">1 時間以内</translation>
 <translation id="1724977129262658800">パスワードを編集するにはロックを解除してください</translation>
 <translation id="1726477445370128854">アクセスが想定されるページを Chrome がプリロードすると、より高速に閲覧と検索を行えます</translation>
-<translation id="173522743738009831">プライバシー サンドボックスについて</translation>
 <translation id="1736419249208073774">詳しく見る</translation>
 <translation id="1749561566933687563">ブックマークの同期</translation>
 <translation id="1750259112639922169">タブグループ - <ph name="TAB_COUNT" /> 個のタブ</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">残り <ph name="SECONDS" /> 秒</translation>
 <translation id="2779651927720337254">失敗</translation>
 <translation id="2781151931089541271">残り 1 秒</translation>
-<translation id="2788468313014644040">グループ番号</translation>
 <translation id="2800066122460699237">「<ph name="TAB_TITLE" />」タブが閉じられます</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google アカウント<ph name="END_LINK" />での保存パスワードの表示と管理</translation>
 <translation id="2818669890320396765">お使いのどのデバイスでも同じブックマークを使用するには、ログインして同期を有効にします</translation>
 <translation id="2827278682606527653">フィードカード メニューが画面の下半分に開いています</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">画像を共有</translation>
 <translation id="3387650086002190359">ファイル システムでエラーが発生したため、<ph name="FILE_NAME" /> をダウンロードできませんでした。</translation>
 <translation id="3389286852084373014">テキストが大きすぎます</translation>
-<translation id="3391512812407811893">プライバシー サンドボックス(試用版)</translation>
 <translation id="3398320232533725830">ブックマーク マネージャを開く</translation>
 <translation id="3407392651057365886">プリロードされるページ数が増加します。ページが他のサイトからリクエストされた場合は、Google サーバーを経由してプリロードされる可能性があります。</translation>
 <translation id="3414952576877147120">サイズ:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">再フォロー</translation>
 <translation id="6002122790816966947">他のデバイス</translation>
 <translation id="6005538289190791541">推奨パスワード</translation>
-<translation id="6032091552407840792">この試用版は、<ph name="BEGIN_LINK" />一部の地域<ph name="END_LINK" />でのみ使用できます。</translation>
-<translation id="6033245666633565791">Chrome では、<ph name="BEGIN_LINK" />プライバシー サンドボックス<ph name="END_LINK" />という取り組みを通じて、クロスサイト トラッキングからユーザーを保護しつつ、オープンウェブの理念を支える新しい技術を開発しています。
-
-プライバシー サンドボックスの試用版はまだ開発段階にあり、一部の地域でのみご利用可能です。このため、現時点では多くのサイトでサードパーティ Cookie など現行のウェブ技術を引き続き使用しつつ、プライバシー サンドボックスが試験的に導入されると考えられます。</translation>
 <translation id="6039379616847168523">次のタブに移動する</translation>
 <translation id="6040143037577758943">閉じる</translation>
 <translation id="604124094241169006">自動設定</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">追加</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> 個のタブを復元しました</translation>
 <translation id="780301667611848630">いいえ</translation>
-<translation id="7805768142964895445">ステータス</translation>
 <translation id="7808889146555843082">このパスワードを削除しても、<ph name="SITE" /> のアカウントは削除されません。セキュリティを確保するため、パスワードを変更するか、<ph name="SITE" /> のアカウントを削除してください。</translation>
 <translation id="7810647596859435254">アプリで開く…</translation>
 <translation id="7815484226266492798">ロング スクリーンショット</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">同期データを同期パスフレーズで暗号化する</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> がインターネットに接続していることを確認してください</translation>
 <translation id="8473863474539038330">住所やその他の情報</translation>
-<translation id="8481921391193215807">オンにすると、サイトでコンテンツやサービスを提供する際に、ここで示されているプライバシー保護技術が使用される場合があります。これには、クロスサイト トラッキングの代わりとなる技術も含まれます。今後、試用版の技術がさらに追加される可能性があります。
-
-<ph name="BEGIN_LIST_ITEM1" />広告主やパブリッシャーは FLoC を使用できます。<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />広告主やパブリッシャーは、サイトをまたいでユーザーをトラッキングすることなく、広告の成果を把握できます。<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">試用版機能はオンになっています</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">履歴ページを開く</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">同じ名前のファイルが存在します</translation>
 <translation id="8666759526542103597">ブラウザベースの広告のカスタマイズについて</translation>
 <translation id="8676789164135894283">ログイン認証</translation>
-<translation id="867767487203716855">次の更新</translation>
 <translation id="8683039184091909753">画像</translation>
-<translation id="8683081248374354009">グループをリセット</translation>
 <translation id="869891660844655955">有効期限</translation>
 <translation id="8699120352855309748">これらの言語を翻訳するか尋ねない</translation>
 <translation id="8712637175834984815">閉じる</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
index abc0baec..d2475af 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">ბოლო საათი</translation>
 <translation id="1724977129262658800">განბლოკეთ თქვენი პაროლის რედაქტირებისთვის</translation>
 <translation id="1726477445370128854">თუ Chrome წინასწარ ჩატვირთავს გვერდებს, რომლებიც, მისი გათვლებით, შეიძლება მოინახულოთ, ვების დათვალიერებისა და ძიების პროცესი დაჩქარდება</translation>
-<translation id="173522743738009831">Privacy Sandbox-ის შესახებ</translation>
 <translation id="1736419249208073774">მიმოხილვა</translation>
 <translation id="1749561566933687563">განახორციელეთ თქვენი სანიშნეების სინქრონიზაცია</translation>
 <translation id="1750259112639922169">ჩანართების ჯგუფი — <ph name="TAB_COUNT" /> ჩანართი</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">დარჩენილია <ph name="SECONDS" /> წმ</translation>
 <translation id="2779651927720337254">ვერ მოხერხდა</translation>
 <translation id="2781151931089541271">დარჩენილია 1 წმ</translation>
-<translation id="2788468313014644040">ჯგუფის ნომერი</translation>
 <translation id="2800066122460699237">ჩანართი „<ph name="TAB_TITLE" />“ დაიხურება</translation>
-<translation id="2806840421670364300">კოჰორტების თანამშრომლობითი შესწავლა</translation>
 <translation id="281504910091592009">ნახეთ და მართეთ შენახული პაროლები თქვენს <ph name="BEGIN_LINK" />Google ანგარიშში<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">თქვენს ყველა მოწყობილობაზე არსებულ სანიშნეებზე წვდომისთვის შედით სისტემაში და ჩართეთ სინქრონიზაცია</translation>
 <translation id="2827278682606527653">არხის ბარათის მენიუ ნახევარ სიმაღლეზე</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">სურათის გაზიარება</translation>
 <translation id="3387650086002190359"><ph name="FILE_NAME" /> ვერ ჩამოიტვირთა ფაილების სისტემასთან დაკავშირებული შეცდომების გამო.</translation>
 <translation id="3389286852084373014">ტექსტი მეტისმეტად დიდია</translation>
-<translation id="3391512812407811893">Privacy Sandbox-ის საცდელი ფუნქციები</translation>
 <translation id="3398320232533725830">სანიშნეების მმართველის გახსნა</translation>
 <translation id="3407392651057365886">წინასწარ ჩაიტვირთება მეტი გვერდი. გვერდები შეიძლება წინასწარ იტვირთებოდეს Google-ის სერვერების მეშვეობით, როცა აღნიშნული მოთხოვნილია სხვა საიტების მიერ.</translation>
 <translation id="3414952576877147120">ზომა:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">თვალის ხელახლა მიდევნება</translation>
 <translation id="6002122790816966947">თქვენი მოწყობილობები</translation>
 <translation id="6005538289190791541">შემოთავაზებული პაროლი</translation>
-<translation id="6032091552407840792">ეს საცდელი ვერსია აქტიურია მხოლოდ <ph name="BEGIN_LINK" />ზოგიერთ რეგიონში<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />-ის სახით Chrome ავითარებს ახალ ტექნოლოგიებს, რომლებიც დაგიცავთ საიტებს შორის თვალის მიდევნების მექანიზმებისგან, იმავდროულად კი შეინარჩუნებს ინტერნეტზე ღია წვდომას.
-
-Privacy Sandbox-ის საცდელი ვერსიები კვლავ აქტიური შემუშავების ფაზაშია და მხოლოდ გარკვეულ რეგიონებშია ხელმისაწვდომი. ამჟამად საიტებს შეუძლია დაცული Privacy Sandbox-ის ცდა, პარალელურად კი ახლანდელი ვებ-ტექნოლოგიებით, როგორიცაა მესამე მხარის ქუქი-ჩანაწერები, სარგებლობის გაგრძელება.</translation>
 <translation id="6039379616847168523">შემდეგ ჩანართზე გადასვლა</translation>
 <translation id="6040143037577758943">დახურვა</translation>
 <translation id="604124094241169006">ავტომატური</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">დამატება</translation>
 <translation id="7798392620021911922">აღდგენილია <ph name="TAB_COUNT" /> ჩანართი</translation>
 <translation id="780301667611848630">არა, მადლობთ</translation>
-<translation id="7805768142964895445">სტატუსი</translation>
 <translation id="7808889146555843082">ამ პაროლის წაშლის შემთხვევაში თქვენი ანგარიში <ph name="SITE" />-ზე არ წაიშლება. თქვენი პაროლი სხვის ხელში რომ არ აღმოჩნდეს, შეცვალეთ ან წაშალეთ ის <ph name="SITE" />-ზე.</translation>
 <translation id="7810647596859435254">გახსნა აპით…</translation>
 <translation id="7815484226266492798">ეკრანის გრძელი ანაბეჭდი</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">სინქრონიზებული მონაცემების დაშიფვრა თქვენი საკუთარი საიდუმლო ფრაზით</translation>
 <translation id="8466613982764129868">დარწმუნდით, რომ <ph name="TARGET_DEVICE_NAME" /> დაკავშირებულია ინტერნეტთან</translation>
 <translation id="8473863474539038330">მისამართები და სხვა</translation>
-<translation id="8481921391193215807">ჩართვის შემთხვევაში საიტები გამოიყენებს კონფიდენციალურობის შენარჩუნების აქ აღწერილ ხერხებს, თავიანთი კონტენტი და სერვისები რომ მოგაწოდოთ. აღნიშნული მოიცავს საიტებს შორის თვალის მიდევნების ალტერნატივებს. დროთა განმავლობაში, შესაძლოა, სხვა საცდელი მეთოდები დაემატოს.
-
-<ph name="BEGIN_LIST_ITEM1" />რეკლამის განმთავსებლებს და გამომცემლებს შეუძლიათ FLoC-ის გამოყენება.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />რეკლამის განმთავსებლები და გამომცემლები რეკლამის ეფექტურობის განსაზღვრას შეძლებენ იმგვარად, რომ სხვადასხვა საიტზე თვალი არ გადევნონ.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">საცდელი ფუნქციები ჩართულია</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ისტორიის გვერდის გახსნა</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ამ სახელის მქონე ფაილი უკვე არსებობს</translation>
 <translation id="8666759526542103597">ბრაუზერზე დაფუძნებული რეკლამის პერსონალიზების შესახებ</translation>
 <translation id="8676789164135894283">დადასტურება შესვლისთვის</translation>
-<translation id="867767487203716855">შემდეგი განახლება</translation>
 <translation id="8683039184091909753">სურათი</translation>
-<translation id="8683081248374354009">ჯგუფის გადაყენება</translation>
 <translation id="869891660844655955">ვადის გასვლის თარიღი</translation>
 <translation id="8699120352855309748">ამ ენების თარგმნის შემოთავაზების აკრძალვა</translation>
 <translation id="8712637175834984815">კარგი</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
index bff7491..b3d5475 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Соңғы сағат</translation>
 <translation id="1724977129262658800">Құпия сөзіңізді өзгерту үшін құлыпты ашыңыз.</translation>
 <translation id="1726477445370128854">Chrome браузері сіз кіруіңіз мүмкін беттерді алдын ала жүктеген кезде, шолу және іздеу тезірек орындалады.</translation>
-<translation id="173522743738009831">Privacy Sandbox туралы ақпарат</translation>
 <translation id="1736419249208073774">Зерттеу</translation>
 <translation id="1749561566933687563">Бетбелгілерді синхрондау</translation>
 <translation id="1750259112639922169">Қойындылар тобы – <ph name="TAB_COUNT" /> қойынды</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> сек қалды</translation>
 <translation id="2779651927720337254">қате шықты</translation>
 <translation id="2781151931089541271">1 сек қалды</translation>
-<translation id="2788468313014644040">Топ нөмірі</translation>
 <translation id="2800066122460699237">"<ph name="TAB_TITLE" />" қойындысы жабылады.</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google аккаунтыңызда<ph name="END_LINK" /> сақталған құпия сөздерді көру және басқару</translation>
 <translation id="2818669890320396765">Бетбелгілерді барлық құрылғылардан пайдалану үшін аккаунтқа кіріп, синхрондау функциясын қосыңыз</translation>
 <translation id="2827278682606527653">Фид картасының мәзірі жартылай ашылды.</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Сурет бөлісу</translation>
 <translation id="3387650086002190359">Файл жүйесіндегі қателер себебінен <ph name="FILE_NAME" /> жүктелмеді.</translation>
 <translation id="3389286852084373014">Мәтін өте үлкен</translation>
-<translation id="3391512812407811893">Privacy Sandbox сынақ мерзімдері</translation>
 <translation id="3398320232533725830">Бетбелгі менеджерін ашу</translation>
 <translation id="3407392651057365886">Алдын ала жүктелетін беттер саны артады. Беттер басқа сайттардың сұрауына сәйкес Google серверлері арқылы алдын ала жүктелуі мүмкін.</translation>
 <translation id="3414952576877147120">Көлемі:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Қайта жазылу</translation>
 <translation id="6002122790816966947">Құрылғыларыңыз</translation>
 <translation id="6005538289190791541">Ұсынылған құпия сөз</translation>
-<translation id="6032091552407840792">Бұл сынақ нұсқасы <ph name="BEGIN_LINK" />кейбір аймақта<ph name="END_LINK" /> ғана қолжетімді.</translation>
-<translation id="6033245666633565791">Chrome ашық желіні қолдай отырып, <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> көмегімен сізді сайтаралық бақылаудан қорғайтын жаңа технологияларды әзірлеуде.
-
-Privacy Sandbox сынақ нұсқалары әлі де әзірленіп жатыр және кейбір аймақта ғана қолжетімді. Әзірге сайттар үшінші тарап cookie файлдары сияқты веб-технологиялардан бас тартпастан, Privacy Sandbox-ты пайдаланып көре алады.</translation>
 <translation id="6039379616847168523">Келесі қойындыға өту</translation>
 <translation id="6040143037577758943">Жабу</translation>
 <translation id="604124094241169006">Автоматты</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Қосу</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> қойынды қалпына келтірілді.</translation>
 <translation id="780301667611848630">Жоқ, рақмет</translation>
-<translation id="7805768142964895445">Күйі</translation>
 <translation id="7808889146555843082">Құпия сөзді жойсаңыз, <ph name="SITE" /> сайтындағы аккаунтыңыз жойылмайды. Деректерді қорғау үшін құпия сөзіңізді өзгертіңіз немесе <ph name="SITE" /> сайтындағы аккаунтты жойыңыз.</translation>
 <translation id="7810647596859435254">Ашу әдісі…</translation>
 <translation id="7815484226266492798">Ұзын скриншот</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Синхрондалған деректерді өзіңіздің синхрондау құпия фразаңызбен шифрлау</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> құрылғысы интернетке қосулы екенін тексеріңіз.</translation>
 <translation id="8473863474539038330">Мекенжайлар және басқа ақпарат</translation>
-<translation id="8481921391193215807">Бұл функция қосылып тұрса, сайттар осында көрсетілген құпиялықты сақтау әдістерін қолданып, өз контенті мен қызметтерін ұсына алады. Оларға сайтаралық бақылау баламалары кіреді. Уақыт өте келе басқа сынақ нұсқалары қосылуы мүмкін.
-
-<ph name="BEGIN_LIST_ITEM1" />Жарнама берушілер мен жариялаушылар FLoC әдісін пайдалана алады.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Жарнама берушілер мен жариялаушылар сайттарда жасаған әрекеттеріңізді бақыламай-ақ жарнамалардың тиімділігін бағамдай алады.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Сынақ функциялары қосулы</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Тарих бетін ашу</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Мұндай атаулы файл бұрыннан бар</translation>
 <translation id="8666759526542103597">Жарнаманы браузерге негіздеп жекелендіру туралы ақпарат</translation>
 <translation id="8676789164135894283">Кіруді растау</translation>
-<translation id="867767487203716855">Келесі жаңарту</translation>
 <translation id="8683039184091909753">сурет</translation>
-<translation id="8683081248374354009">Топ параметрлерін бастапқы күйге қайтару</translation>
 <translation id="869891660844655955">Аяқталу мерзімі</translation>
 <translation id="8699120352855309748">Бұл тілдерді аударуды ұсынбау</translation>
 <translation id="8712637175834984815">Түсінікті</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
index 486e9e56..d73b89f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">មួយម៉ោងមុន</translation>
 <translation id="1724977129262658800">ដោះសោ ដើម្បីកែពាក្យ​សម្ងាត់របស់អ្នក</translation>
 <translation id="1726477445370128854">អ្នកអាចរុករក និងស្វែងរក​បានកាន់តែរហ័ស នៅពេល Chrome ផ្ទុកទំព័រជាមុន​ដែលវាគិតថា​អ្នកប្រហែលជាចូលមើល</translation>
-<translation id="173522743738009831">អំពី Privacy Sandbox</translation>
 <translation id="1736419249208073774">រុករក</translation>
 <translation id="1749561566933687563">ធ្វើសមកាលកម្មចំណាំរបស់អ្នក</translation>
 <translation id="1750259112639922169">ក្រុមផ្ទាំង - <ph name="TAB_COUNT" /> ផ្ទាំង</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">នៅសល់ <ph name="SECONDS" /> វិនាទីទៀត</translation>
 <translation id="2779651927720337254">បានបរាជ័យ</translation>
 <translation id="2781151931089541271">នៅសល់ 1 វិនាទីទៀត</translation>
-<translation id="2788468313014644040">លេខក្រុម</translation>
 <translation id="2800066122460699237">ផ្ទាំង <ph name="TAB_TITLE" /> នឹងត្រូវបានបិទ</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">មើល និងគ្រប់គ្រង​ពាក្យសម្ងាត់​ដែលបាន​រក្សាទុក​នៅក្នុង<ph name="BEGIN_LINK" />គណនី Google<ph name="END_LINK" /> របស់អ្នក</translation>
 <translation id="2818669890320396765">ដើម្បី​ទទួលបាន​ចំណាំរបស់អ្នក​នៅលើ​ឧបករណ៍​ទាំងអស់​របស់អ្នក សូមចូលគណនី និងបើក​សមកាលកម្ម</translation>
 <translation id="2827278682606527653">ម៉ឺនុយ​កាត​ព័ត៌មាន​ត្រូវបានបើក​ពាក់កណ្ដាល​អេក្រង់</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ចែករំលែករូបភាព</translation>
 <translation id="3387650086002190359">ការដោនឡូត <ph name="FILE_NAME" /> បានបរាជ័យដោយសារមានកំហុសប្រព័ន្ធឯកសារ។</translation>
 <translation id="3389286852084373014">អត្ថបទធំពេក</translation>
-<translation id="3391512812407811893">ការ​សាក​ល្បង Privacy Sandbox</translation>
 <translation id="3398320232533725830">បើកកម្មវិធីគ្រប់គ្រងចំណាំ</translation>
 <translation id="3407392651057365886">ទំព័រច្រើនទៀត​ត្រូវបានផ្ទុក​ជាមុន។ ទំព័រអាច​នឹងត្រូវបានផ្ទុក​ជាមុនតាមរយៈម៉ាស៊ីនមេ Google នៅពេល​គេហទំព័រ​ផ្សេងទៀតស្នើ។</translation>
 <translation id="3414952576877147120">ទំហំ៖</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">តាមដាន​ឡើងវិញ</translation>
 <translation id="6002122790816966947">ឧបករណ៍របស់អ្នក</translation>
 <translation id="6005538289190791541">ពាក្យ​សម្ងាត់​ដែលបានណែនាំ</translation>
-<translation id="6032091552407840792">ការសាកល្បងនេះ​ដំណើរការ​តែនៅក្នុង<ph name="BEGIN_LINK" />តំបន់មួយចំនួន<ph name="END_LINK" />ប៉ុណ្ណោះ។</translation>
-<translation id="6033245666633565791">Chrome កំពុងអភិវឌ្ឍបច្ចេកវិទ្យាថ្មី ដើម្បីការពារ​អ្នកពី​ការប្រមូល​ទិន្នន័យរុករក​នៅលើគេហទំព័រ​នានា ដោយរក្សាបណ្ដាញចំហ តាមរយៈ <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />។
-
-ការសាកល្បង Privacy Sandbox កំពុងស្ថិតនៅក្នុង​ការអភិវឌ្ឍសកម្ម​នៅឡើយ និង​អាចប្រើបាន​នៅក្នុងតំបន់​ដែលបានជ្រើសរើស។ សម្រាប់ពេលនេះ គេហទំព័រអាចសាកល្បងប្រើ Privacy Sandbox ខណៈពេលកំពុងបន្តប្រើ​បច្ចេកវិទ្យា​បណ្ដាញ​បច្ចុប្បន្នដូចជា ខូគីភាគីទីបី​ជាដើម។</translation>
 <translation id="6039379616847168523">លោតទៅផ្ទាំងបន្ទាប់</translation>
 <translation id="6040143037577758943">បិទ</translation>
 <translation id="604124094241169006">ស្វ័យប្រវត្តិ</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">បន្ថែម</translation>
 <translation id="7798392620021911922">បានស្ដារផ្ទាំង <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">ទេ អរគុណ</translation>
-<translation id="7805768142964895445">ស្ថានភាព</translation>
 <translation id="7808889146555843082">ការលុបពាក្យសម្ងាត់នេះ​នឹងមិន​លុបគណនីរបស់អ្នក​នៅលើ <ph name="SITE" />​ ទេ។ ផ្លាស់ប្ដូរពាក្យសម្ងាត់របស់អ្នក ឬលុបគណនីរបស់អ្នក​នៅលើ <ph name="SITE" /> ដើម្បីរក្សាឱ្យវាមានសុវត្ថិភាពពីអ្នកដទៃ។</translation>
 <translation id="7810647596859435254">បើក​ដោយ​ប្រើ…</translation>
 <translation id="7815484226266492798">រូបថត​អេក្រង់វែង</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">អ៊ីនគ្រីប​ទិន្នន័យ​ដែលបាន​ធ្វើ​សមកាលកម្ម​ ដោយប្រើឃ្លា​សម្ងាត់​សមកាលកម្មផ្ទាល់​ខ្លួន​របស់​អ្នក</translation>
 <translation id="8466613982764129868">ត្រូវប្រាកដថា <ph name="TARGET_DEVICE_NAME" /> មានការតភ្ជាប់អ៊ីនធឺណិត</translation>
 <translation id="8473863474539038330">អាសយដ្ឋាន​ និងច្រើន​ទៀត</translation>
-<translation id="8481921391193215807">នៅពេលបើក គេហទំព័រ​អាចប្រើ​បច្ចេកទេសការពារឯកជនភាព​ដែលបង្ហាញនៅទីនេះ ដើម្បីផ្ដល់ខ្លឹមសារ និងសេវាកម្ម​របស់គេហទំព័រ​ទាំងនោះ។ បច្ចេកទេសទាំងនេះ​រួមបញ្ចូលបច្ចេកទេស​ផ្សេងក្រៅពី​ការប្រមូល​ទិន្នន័យរុករក​នៅលើគេហទំព័រ​នានា។ ការសាកល្បងច្រើនទៀត​អាចត្រូវបានបញ្ចូល​ជាបន្តបន្ទាប់។
-
-<ph name="BEGIN_LIST_ITEM1" />អ្នកផ្សាយ​ពាណិជ្ជកម្ម និង​អ្នកបោះពុម្ពផ្សាយ​អាចប្រើ​ FLoC។<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />អ្នកផ្សាយ​ពាណិជ្ជកម្ម និង​អ្នកបោះពុម្ពផ្សាយ​អាចសិក្សាអំពី​ប្រសិទ្ធភាពនៃ​ការផ្សាយពាណិជ្ជកម្ម​ក្នុងរបៀបមួយ​ដែលមិនតាមដាន​អ្នកនៅលើ​គេហទំព័រនានា។<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">មុខងារ​សាកល្បង​ត្រូវបានបើក</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">បើកទំព័រប្រវត្តិ</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ឈ្មោះ​ឯកសារ​មានរួច​ហើយ</translation>
 <translation id="8666759526542103597">អំពី​ការកំណត់​ការផ្សាយពាណិជ្ជកម្ម​ឱ្យស្របតាមបុគ្គល​ដោយផ្អែកលើ​កម្មវិធីរុករក​តាមអ៊ីនធឺណិត</translation>
 <translation id="8676789164135894283">ការផ្ទៀងផ្ទាត់​ការចូលគណនី</translation>
-<translation id="867767487203716855">ការដំឡើងកំណែ​បន្ទាប់</translation>
 <translation id="8683039184091909753">រូបភាព</translation>
-<translation id="8683081248374354009">កំណត់​ក្រុមឡើងវិញ</translation>
 <translation id="869891660844655955">កាលបរិច្ឆេទការផុតកំណត់</translation>
 <translation id="8699120352855309748">មិនផ្ដល់ការបកប្រែភាសាទាំងនេះទេ</translation>
 <translation id="8712637175834984815">យល់ហើយ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
index 84c188f0..b16e427e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">ಕೊನೆಯ ಗಂಟೆ</translation>
 <translation id="1724977129262658800">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="1726477445370128854">ನೀವು ಭೇಟಿ ನೀಡಬಹುದೆಂದು Chrome ಭಾವಿಸುವ ಪುಟಗಳನ್ನು ಅದು ಮುಂಚಿತವಾಗಿ ಲೋಡ್ ಮಾಡಿದಾಗ, ನೀವು ವೇಗವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಬಹುದು ಮತ್ತು ಹುಡುಕಾಟ ನಡೆಸಬಹುದು</translation>
-<translation id="173522743738009831">ಪ್ರೈವೆಸಿ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಕುರಿತು</translation>
 <translation id="1736419249208073774">ಎಕ್ಸ್‌ಪ್ಲೋರ್ ಮಾಡಿ</translation>
 <translation id="1749561566933687563">ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಿ</translation>
 <translation id="1750259112639922169">ಟ್ಯಾಬ್ ಗುಂಪು - <ph name="TAB_COUNT" /> ಟ್ಯಾಬ್‌ಗಳು</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> ಸೆಕೆಂಡುಗಳು ಉಳಿದಿವೆ</translation>
 <translation id="2779651927720337254">ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="2781151931089541271">1 ಸೆಕೆಂಡು ಉಳಿದಿದೆ</translation>
-<translation id="2788468313014644040">ಗುಂಪಿನ ಸಂಖ್ಯೆ</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಲಾಗುತ್ತದೆ</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">ಉಳಿಸಲಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ <ph name="BEGIN_LINK" />Google ಖಾತೆಯಲ್ಲಿ<ph name="END_LINK" /> ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="2818669890320396765">ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಸೈನ್ ಇನ್ ಮಾಡಿ ಮತ್ತು ಸಿಂಕ್ ಆನ್ ಮಾಡಿ</translation>
 <translation id="2827278682606527653">ಫೀಡ್ ಕಾರ್ಡ್ ಮೆನು ಅರ್ಧ ಎತ್ತರದಲ್ಲಿ ತೆರೆದಿದೆ</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ಚಿತ್ರ ಹಂಚಿಕೊಳ್ಳಿ</translation>
 <translation id="3387650086002190359">ಫೈಲ್ ಸಿಸ್ಟಂ ದೋಷಗಳ ಕಾರಣದಿಂದಾಗಿ <ph name="FILE_NAME" /> ಡೌನ್‌ಲೋಡ್ ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="3389286852084373014">ಪಠ್ಯ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ</translation>
-<translation id="3391512812407811893">ಪ್ರೈವೆಸಿ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಪ್ರಯೋಗಗಳು</translation>
 <translation id="3398320232533725830">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳ ಮ್ಯಾನೇಜರ್ ತೆರೆಯಿರಿ</translation>
 <translation id="3407392651057365886">ಹೆಚ್ಚು ಪುಟಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ಇತರ ಸೈಟ್‌ಗಳು ವಿನಂತಿಸಿದಾಗ ಪುಟಗಳನ್ನು Google ಸರ್ವರ್‌ಗಳ ಮೂಲಕ ಮುಂಚಿತವಾಗಿ ಲೋಡ್ ಮಾಡಬಹುದು.</translation>
 <translation id="3414952576877147120">ಗಾತ್ರ:</translation>
@@ -912,10 +908,6 @@
 <translation id="6000203700195075278">ಮರು ಅನುಸರಿಸಿ</translation>
 <translation id="6002122790816966947">ನಿಮ್ಮ ಸಾಧನಗಳು</translation>
 <translation id="6005538289190791541">ಸೂಚಿಸಿದ ಪಾಸ್‌ವರ್ಡ್</translation>
-<translation id="6032091552407840792"><ph name="BEGIN_LINK" />ಕೆಲವು ಪ್ರದೇಶಗಳಲ್ಲಿ<ph name="END_LINK" /> ಮಾತ್ರ ಈ ಪ್ರಯೋಗವು ಸಕ್ರಿಯವಾಗಿರುತ್ತದೆ.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />ಪ್ರೈವೆಸಿ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್<ph name="END_LINK" /> ನೊಂದಿಗೆ, ತೆರೆದ ವೆಬ್ ಅನ್ನು ಸಂರಕ್ಷಿಸುವುದರ ಜೊತೆಗೆ, ಕ್ರಾಸ್-ಸೈಟ್ ಟ್ರ್ಯಾಕಿಂಗ್‌ನಿಂದ ನಿಮ್ಮನ್ನು ರಕ್ಷಿಸಲು Chrome ಹೊಸ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ.
-
-ಪ್ರೈವೆಸಿ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಪ್ರಯೋಗಗಳು ಇನ್ನೂ ಸಕ್ರಿಯ ಅಭಿವೃದ್ಧಿ ಹಂತದಲ್ಲಿವೆ ಮತ್ತು ಆಯ್ದ ಪ್ರದೇಶಗಳಲ್ಲಿ ಲಭ್ಯವಿವೆ. ಇದೀಗ, ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳಂತಹ ಪ್ರಸ್ತುತ ವೆಬ್ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಬಳಸುವುದನ್ನು ಮುಂದುವರಿಸುವಾಗ ಸೈಟ್‌ಗಳು ಪ್ರೈವೆಸಿ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಅನ್ನು ಬಳಸಿ ನೋಡಬಹುದು.</translation>
 <translation id="6039379616847168523">ಮುಂದಿನ ಟ್ಯಾಬ್‌ಗೆ ಹೋಗಿ</translation>
 <translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation>
 <translation id="604124094241169006">ಸ್ವಯಂಚಾಲಿತ</translation>
@@ -1247,7 +1239,6 @@
 <translation id="7791543448312431591">ಸೇರಿಸು</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗಿದೆ</translation>
 <translation id="780301667611848630">ಬೇಡ, ಧನ್ಯವಾದಗಳು</translation>
-<translation id="7805768142964895445">ಸ್ಥಿತಿ</translation>
 <translation id="7808889146555843082">ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಅಳಿಸುವುದರಿಂದ <ph name="SITE" /> ನಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ. <ph name="SITE" /> ನಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಇತರರಿಂದ ರಕ್ಷಿಸಲು, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಬದಲಾಯಿಸಿ ಅಥವಾ ಖಾತೆಯನ್ನು ಅಳಿಸಿ.</translation>
 <translation id="7810647596859435254">ಇದರೊಂದಿಗೆ ತೆರೆಯಿರಿ...</translation>
 <translation id="7815484226266492798">ದೀರ್ಘ ಸ್ಕ್ರೀನ್‌ಶಾಟ್</translation>
@@ -1381,11 +1372,6 @@
 <translation id="8461694314515752532">ನಿಮ್ಮ ಸ್ವಂತ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್‌ ಬಳಸಿಕೊಂಡು ಸಿಂಕ್ ಮಾಡಿದ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿ</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> ಸಾಧನವು ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ</translation>
 <translation id="8473863474539038330">ವಿಳಾಸಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು</translation>
-<translation id="8481921391193215807">ಆನ್ ಮಾಡಿದ ನಂತರ, ಸೈಟ್‌ಗಳು ತಮ್ಮ ಕಂಟೆಂಟ್ ಮತ್ತು ಸೇವೆಗಳನ್ನು ಒದಗಿಸಲು ಇಲ್ಲಿ ತೋರಿಸಿರುವ ಗೌಪ್ಯತೆ ಕಾಪಾಡುವ ತಂತ್ರಗಳನ್ನು ಬಳಸಬಹುದು. ಕ್ರಾಸ್-ಸೈಟ್ ಟ್ರ್ಯಾಕಿಂಗ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಪರ್ಯಾಯಗಳು ಇವುಗಳಲ್ಲಿ ಸೇರಿವೆ. ಕಾಲಾನಂತರದಲ್ಲಿ ಹೆಚ್ಚಿನ ಪ್ರಯೋಗಗಳನ್ನು ಸೇರಿಸಬಹುದು.
-
-<ph name="BEGIN_LIST_ITEM1" />ಜಾಹೀರಾತುದಾರರು ಮತ್ತು ಪ್ರಕಾಶಕರು FLoC.ಅನ್ನು ಬಳಸಬಹುದು.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />ಸೈಟ್‌ಗಳಾದ್ಯಂತ ನಿಮ್ಮನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡದ ರೀತಿಯಲ್ಲಿ ಜಾಹೀರಾತುಗಳ ಪರಿಣಾಮಕಾರಿತ್ವವನ್ನು ಜಾಹೀರಾತುದಾರರು ಮತ್ತು ಪ್ರಕಾಶಕರು ಅಧ್ಯಯನ ಮಾಡಬಹುದು.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯಗಳು ಆನ್ ಆಗಿವೆ</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ಇತಿಹಾಸ ಪುಟ ತೆರೆಯಿರಿ</translation>
@@ -1431,9 +1417,7 @@
 <translation id="8664979001105139458">ಫೈಲ್ ಹೆಸರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ</translation>
 <translation id="8666759526542103597">ಬ್ರೌಸರ್-ಆಧಾರಿತ ಜಾಹೀರಾತು ವೈಯಕ್ತಿಕಗೊಳಿಸುವಿಕೆಯ ಕುರಿತು</translation>
 <translation id="8676789164135894283">ಸೈನ್ ಇನ್ ದೃಢೀಕರಣಗಳು</translation>
-<translation id="867767487203716855">ಮುಂದಿನ ಅಪ್‌ಡೇಟ್</translation>
 <translation id="8683039184091909753">ಚಿತ್ರ</translation>
-<translation id="8683081248374354009">ಗುಂಪನ್ನು ರೀಸೆಟ್ ಮಾಡಿ</translation>
 <translation id="869891660844655955">ಅವಧಿ ಮುಗಿಯುವ ದಿನಾಂಕ</translation>
 <translation id="8699120352855309748">ಈ ಭಾಷೆಗಳನ್ನು ಅನುವಾದಿಸುವ ಪ್ರಸ್ತಾಪ ಮಾಡಬೇಡಿ</translation>
 <translation id="8712637175834984815">ಅರ್ಥವಾಯಿತು</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
index 94fd0c1..85c30407 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">지난 1시간</translation>
 <translation id="1724977129262658800">비밀번호를 수정하려면 잠금 해제하세요</translation>
 <translation id="1726477445370128854">사용자가 방문할 것으로 생각되는 페이지를 Chrome에서 미리 로드하면 더 빠르게 탐색하고 검색할 수 있습니다.</translation>
-<translation id="173522743738009831">개인정보 보호 샌드박스 정보</translation>
 <translation id="1736419249208073774">탐색</translation>
 <translation id="1749561566933687563">북마크 동기화</translation>
 <translation id="1750259112639922169">탭 그룹 - 탭 <ph name="TAB_COUNT" />개</translation>
@@ -264,7 +263,7 @@
 <translation id="250020030759455918">Chrome에서 <ph name="SITE_NAME" /> 로그인 상태, 인터넷 사용 기록, 사이트 데이터를 볼 수 있습니다.</translation>
 <translation id="2510106555128151389"><ph name="WEBAPK_NAME" /> 설치 중...</translation>
 <translation id="2513403576141822879">개인정보 보호, 보안, 데이터 수집에 관한 설정을 더 보려면 <ph name="BEGIN_LINK" />동기화 및 Google 서비스<ph name="END_LINK" />를 참조하세요.</translation>
-<translation id="2517472476991765520">검색</translation>
+<translation id="2517472476991765520">스캔</translation>
 <translation id="2523184218357549926">방문한 페이지의 URL을 Google에 전송</translation>
 <translation id="2527209463677295330">페이지 텍스트를 더 많이 포함하면 더 나은 검색결과를 확인할 수 있습니다.</translation>
 <translation id="2527497042232966453">시크릿 탭으로 전환됨</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" />초 남음</translation>
 <translation id="2779651927720337254">실패</translation>
 <translation id="2781151931089541271">1초 남음</translation>
-<translation id="2788468313014644040">그룹 번호</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> 탭이 닫힙니다.</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google 계정<ph name="END_LINK" />에서 저장된 비밀번호 보기 및 관리</translation>
 <translation id="2818669890320396765">어느 기기에서나 내 북마크를 사용하려면 로그인하고 동기화를 사용 설정하세요.</translation>
 <translation id="2827278682606527653">피드 카드 메뉴 절반 높이</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">이미지 공유</translation>
 <translation id="3387650086002190359">파일 시스템에 오류가 발생하여 <ph name="FILE_NAME" />을(를) 다운로드할 수 없습니다.</translation>
 <translation id="3389286852084373014">텍스트가 너무 큼</translation>
-<translation id="3391512812407811893">개인정보 보호 샌드박스 체험판</translation>
 <translation id="3398320232533725830">북마크 관리자 열기</translation>
 <translation id="3407392651057365886">더 많은 페이지가 미리 로드됩니다. 다른 사이트에서 요청하면 Google 서버를 통해 페이지가 미리 로드될 수 있습니다.</translation>
 <translation id="3414952576877147120">크기:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">다시 팔로우</translation>
 <translation id="6002122790816966947">내 기기</translation>
 <translation id="6005538289190791541">추천 비밀번호</translation>
-<translation id="6032091552407840792">이 무료 체험은 <ph name="BEGIN_LINK" />일부 지역<ph name="END_LINK" />에서만 진행됩니다.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />개인 정보 보호 샌드박스<ph name="END_LINK" />를 통해 Chrome은 오픈 웹의 장점을 유지하면서 크로스 사이트 추적으로부터 사용자를 보호하는 새로운 기술을 개발하고 있습니다.
-
-개인 정보 보호 샌드박스 무료 체험은 아직 개발 단계에 있으므로 일부 지역에서만 제공됩니다. 현재 사이트는 타사 쿠키와 같은 기존 웹 기술을 계속 사용하면서 개인 정보 보호 샌드박스를 사용해 볼 수 있습니다.</translation>
 <translation id="6039379616847168523">다음 탭으로 이동</translation>
 <translation id="6040143037577758943">닫기</translation>
 <translation id="604124094241169006">자동</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">추가</translation>
 <translation id="7798392620021911922">탭 <ph name="TAB_COUNT" />개를 복원했습니다.</translation>
 <translation id="780301667611848630">취소</translation>
-<translation id="7805768142964895445">상태</translation>
 <translation id="7808889146555843082">비밀번호를 삭제해도 <ph name="SITE" /> 계정은 삭제되지 않습니다. 비밀번호를 변경하거나 <ph name="SITE" /> 계정을 삭제하여 보안을 유지하세요.</translation>
 <translation id="7810647596859435254">연결 프로그램...</translation>
 <translation id="7815484226266492798">긴 스크린샷</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">나만의 동기화 암호로 동기화된 데이터 암호화</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" />이(가) 인터넷에 연결되어 있는지 확인하세요.</translation>
 <translation id="8473863474539038330">주소 및 기타</translation>
-<translation id="8481921391193215807">사용 설정하면 사이트가 여기에 표시된 개인 정보 보호 기술을 이용해 콘텐츠와 서비스를 제공할 수 있습니다. 크로스 사이트 추적의 대안이 되는 기술 등이 있습니다. 시간이 지남에 따라 더 많은 무료 체험 기능이 포함될 수 있습니다.
-
-<ph name="BEGIN_LIST_ITEM1" />광고주와 게시자는 FLoC을 사용할 수 있습니다.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />광고주와 게시자는 사이트 전반에서 사용자를 추적하지 않는 방식으로 광고의 효과를 연구할 수 있습니다.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">무료 체험 기능 사용 중</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">방문 기록 페이지 열기</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">이미 존재하는 이름입니다.</translation>
 <translation id="8666759526542103597">브라우저 기반 광고 개인 최적화 알아보기</translation>
 <translation id="8676789164135894283">로그인 인증</translation>
-<translation id="867767487203716855">다음 업데이트</translation>
 <translation id="8683039184091909753">이미지</translation>
-<translation id="8683081248374354009">그룹 재설정</translation>
 <translation id="869891660844655955">유효기간</translation>
 <translation id="8699120352855309748">번역할지 묻지 않을 언어</translation>
 <translation id="8712637175834984815">확인</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
index d5059772..54aed9c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Акыркы бир саат</translation>
 <translation id="1724977129262658800">Сырсөзүңүздү түзөтүү үчүн кулпусун ачыңыз</translation>
 <translation id="1726477445370128854">Chrome алдын ала жүктөгөн барактарды (баш багышыңыз мүмкүн деп болжолдогон) карап чыгып, тезирээк таба аласыз</translation>
-<translation id="173522743738009831">Privacy Sandbox жөнүндө маалымат</translation>
 <translation id="1736419249208073774">Изилдөө</translation>
 <translation id="1749561566933687563">Кыстармаларыңызды шайкештириңиз</translation>
 <translation id="1750259112639922169">Өтмөктөр тобу – <ph name="TAB_COUNT" /> өтмөк</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> сек. калды</translation>
 <translation id="2779651927720337254">ката</translation>
 <translation id="2781151931089541271">1 сек. калды</translation>
-<translation id="2788468313014644040">Топтун номери</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> өтмөгү жабылат</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google аккаунтуңузда<ph name="END_LINK" /> сакталган сырсөздөрдү көрүп, башкарыңыз</translation>
 <translation id="2818669890320396765">Кыстармаларыңызды бардык түзмөктөрүңүздө колдонуу үчүн аккаунтуңузга кирип, шайкештирүүнү күйгүзүңүз</translation>
 <translation id="2827278682606527653">Түрмөктөгү меню экрандын жарымына чейин ачылды</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Сүрөт менен бөлүшүү</translation>
 <translation id="3387650086002190359">Тутумдагы каталарга байланыштуу <ph name="FILE_NAME" /> жүктөлбөй калды.</translation>
 <translation id="3389286852084373014">Тексттин көлөмү өтө чоң</translation>
-<translation id="3391512812407811893">Privacy Sandbox сыноолору</translation>
 <translation id="3398320232533725830">Кыстармаларды башкаргычты ачуу</translation>
 <translation id="3407392651057365886">Дагы башка барактар алдын ала жүктөлдү. Башка сайттар сурам жөнөтсө, барактар Google серверлери аркылуу алдын ала жүктөлүшү мүмкүн.</translation>
 <translation id="3414952576877147120">Өлчөм:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Кайра жазылуу</translation>
 <translation id="6002122790816966947">Түзмөктөрүңүз</translation>
 <translation id="6005538289190791541">Сунушталган сырсөз</translation>
-<translation id="6032091552407840792">Бул сынамык версия <ph name="BEGIN_LINK" />айрым аймактарда<ph name="END_LINK" /> гана иштейт.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> менен бирге Chrome ачык тармакты коргоодо сайттарга кайчылаш көз салуудан сактай турган жаңы технологияларды иштеп чыгарууда.
-
-Privacy Sandbox'тун сынамык версиялары дагы эле иштелип жатат, андыктан айрым аймактарда гана жеткиликтүү. Азырынча сайттар үчүнчү тараптын cookie файлдары сыяктуу учурда жеткиликтүү болгон веб технологияларын колдонуп жатып эле, Privacy Sandbox'ту байкап көрө алышат.</translation>
 <translation id="6039379616847168523">Кийинки өтмөккө секирүү</translation>
 <translation id="6040143037577758943">Жабуу</translation>
 <translation id="604124094241169006">Автоматтык</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Кошуу</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> өтмөк калыбына келтирилди</translation>
 <translation id="780301667611848630">Жок, рахмат</translation>
-<translation id="7805768142964895445">Статусу</translation>
 <translation id="7808889146555843082">Бул сырсөздү жок кылуу менен, <ph name="SITE" /> аккаунтуңуз өчпөйт. <ph name="SITE" /> аккаунтуңузду башкалардан коргоо үчүн сырсөздү өзгөртүңүз же аккаунтуңузду жок кылыңыз.</translation>
 <translation id="7810647596859435254">Төмөнкү менен ачуу…</translation>
 <translation id="7815484226266492798">Узун скриншот</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Шайкештирилген дайындарды өзүңүздүн шайкештирүүчү купуя сөз айкашыңыз менен шифрлеңиз</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> интернетке туташып турганын текшериңиз</translation>
 <translation id="8473863474539038330">Даректер жана башкалар</translation>
-<translation id="8481921391193215807">Күйгүзүлсө, сайттар мазмунун жана кызматтарын көрсөтүү үчүн ушул жердеги купуялыкты коргоо ыкмаларын колдонушу мүмкүн. Буга сайттарга кайчылаш көз салуунун башка варианттары кирет. Жаңы сынамык версияларды да кийинчерээк кошуп турууга болот.
-
-<ph name="BEGIN_LIST_ITEM1" />Жарнамачылар жана жарыялоочулар FLoC'ту колдоно алышат.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Жарнамачылар жана жарыялоочулар жарнамалардын майнаптуулугун сайттардагы аракеттериңизге көз салбастан изилдей алышат.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Сыноонун функциялары күйүк</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Таржымал барагын ачуу</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Мындай аталыштагы файл бар</translation>
 <translation id="8666759526542103597">Серепчиге негизделген жарнаманы жекелештирүү жөнүндө</translation>
 <translation id="8676789164135894283">Кирүүнү ырастоо</translation>
-<translation id="867767487203716855">Кийинки жаңыртуу</translation>
 <translation id="8683039184091909753">сүрөт</translation>
-<translation id="8683081248374354009">Топту баштапкы абалга келтирүү</translation>
 <translation id="869891660844655955">Мөөнөтү аяктай турган күн</translation>
 <translation id="8699120352855309748">Төмөнкү тилдерди которуу сунушталбасын</translation>
 <translation id="8712637175834984815">Түшүндүм</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 1833fb29f..bffcab0 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">ຊົ່ວໂມງຜ່ານມາ</translation>
 <translation id="1724977129262658800">ປົດລັອກເພື່ອແກ້ໄຂລະຫັດຜ່ານຂອງທ່ານ</translation>
 <translation id="1726477445370128854">ທ່ານສາມາດທ່ອງເວັບ ແລະ ຊອກຫາໄດ້ໄວຂຶ້ນເມື່ອ Chrome ໂຫຼດໜ້າທີ່ມັນຄິດວ່າທ່ານອາດຈະເຂົ້າໄວ້ກ່ອນລ່ວງໜ້າ</translation>
-<translation id="173522743738009831">ກ່ຽວກັບ Privacy Sandbox</translation>
 <translation id="1736419249208073774">ສຳຫຼວດເບິ່ງ</translation>
 <translation id="1749561566933687563">ຊິ້ງຂໍ້ມູນບຸກມາກຂອງທ່ານ</translation>
 <translation id="1750259112639922169">ກຸ່ມແຖບ - <ph name="TAB_COUNT" /> ແຖບ</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">ຍັງເຫຼືອ <ph name="SECONDS" /> ວິ</translation>
 <translation id="2779651927720337254">ບໍ່ສໍາເລັດ</translation>
 <translation id="2781151931089541271">ຍັງເຫຼືອ 1 ວິ</translation>
-<translation id="2788468313014644040">ໝາຍເລກກຸ່ມ</translation>
 <translation id="2800066122460699237">ແຖບ <ph name="TAB_TITLE" /> ຈະຖືກປິດ</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">ເບິ່ງ ແລະ ຈັດການລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ໃນ <ph name="BEGIN_LINK" />ບັນຊີ Google<ph name="END_LINK" /> ຂອງທ່ານ</translation>
 <translation id="2818669890320396765">ເພື່ອໃຊ້ບຸກມາກຂອງທ່ານຢູ່ໃນທຸກອຸປະກອນຂອງທ່ານ, ກະລຸນາເຂົ້າສູ່ລະບົບ ແລະ ເປີດການຊິ້ງຂໍ້ມູນກ່ອນ</translation>
 <translation id="2827278682606527653">ເມນູບັດຟີດເປີດໄວ້ເຄິ່ງລວງສູງ</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ແບ່ງ​ປັນ​ຮູບ</translation>
 <translation id="3387650086002190359">ການ​ດາວ​ໂຫຼ​ດ <ph name="FILE_NAME" /> ລົ້ມເຫລວ​ເນື່ອງ​ຈາກ​ຄວາມ​ຜິດພາດ​ຂອງ​ລະບົບ​ໄຟ​ລ໌.</translation>
 <translation id="3389286852084373014">ຂໍ້ຄວາມໃຫຍ່ເກີນໄປ</translation>
-<translation id="3391512812407811893">ການທົດລອງໃຊ້ Privacy Sandbox</translation>
 <translation id="3398320232533725830">ເປີດຕົວຈັດການບຸກມາກ</translation>
 <translation id="3407392651057365886">ຈະມີການໂຫຼດໜ້າຕ່າງໆກ່ອນລ່ວງໜ້າເພີ່ມຂຶ້ນ. ໜ້າຕ່າງໆອາດຖືກໂຫຼດກ່ອນລ່ວງໜ້າຜ່ານເຊີບເວີ Google ເມື່ອຖືກຮ້ອງຂໍໂດຍເວັບໄຊອື່ນ.</translation>
 <translation id="3414952576877147120">ຂະໜາດ:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">ຕິດຕາມຄືນໃໝ່</translation>
 <translation id="6002122790816966947">ອຸປະກອນຂອງທ່ານ</translation>
 <translation id="6005538289190791541">ລະຫັດຜ່ານທີ່ແນະນຳ</translation>
-<translation id="6032091552407840792">ການທົດລອງໃຊ້ນີ້ແມ່ນໃຊ້ໄດ້ສະເພາະໃນ <ph name="BEGIN_LINK" />ບາງພາກພື້ນ<ph name="END_LINK" /> ເທົ່ານັ້ນ.</translation>
-<translation id="6033245666633565791">ດ້ວຍ <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome ກຳລັງພັດທະນາເທັກໂນໂລຢີໃໝ່ເພື່ອປ້ອງກັນທ່ານຈາກການຕິດຕາມຂ້າມເວັບໄຊໃນຂະນະທີ່ຍັງຄົງຮັກສາຄວາມເປີດກວ້າງຂອງເວັບໄວ້.
-
-ການທົດລອງໃຊ້ Privacy Sandbox ຍັງຄົງຢູ່ໃນລະຫວ່າງການພັດທະນາຢ່າງຫ້າວຫັນ ແລະ ສາມາດໃຊ້ໄດ້ໃນບາງພາກພື້ນ. ສຳລັບຕອນນີ້, ເວັບໄຊອາດລອງໃຊ້ Privacy Sandbox ໃນຂະນະທີ່ສືບຕໍ່ໃຊ້ເທັກໂນໂລຢີເວັບປັດຈຸບັນ ເຊັ່ນ: ຄຸກກີ້ພາກສ່ວນທີສາມ.</translation>
 <translation id="6039379616847168523">ໂດດໄປຫາແຖບຕໍ່ໄປ</translation>
 <translation id="6040143037577758943">ປິດ</translation>
 <translation id="604124094241169006">ອັດ​ຕະ​ໂນ​ມັດ</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">ເພີ່ມ</translation>
 <translation id="7798392620021911922">ກູ້ <ph name="TAB_COUNT" /> ແຖບຄືນແລ້ວ</translation>
 <translation id="780301667611848630">ບໍ່​, ​ຂອບ​ໃຈ</translation>
-<translation id="7805768142964895445">ສະ​ຖາ​ນະ​</translation>
 <translation id="7808889146555843082">ການລຶບລະຫັດຜ່ານນີ້ຈະບໍ່ລຶບບັນຊີຂອງທ່ານໃນ <ph name="SITE" />. ການປ່ຽນລະຫັດຜ່ານຂອງທ່ານ ຫຼື ລຶບບັນຊີຂອງທ່ານໃນ <ph name="SITE" /> ເພື່ອຮັກສາໃຫ້ມັນປອດໄພຈາກຄົນອື່ນ.</translation>
 <translation id="7810647596859435254">ເປີດດ້ວຍ...</translation>
 <translation id="7815484226266492798">ຮູບໜ້າຈໍຍາວ</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">ເຂົ້າລະຫັດຂໍ້ມູນທີ່ຊິ້ງດ້ວຍລະຫັດຜ່ານການຊິ້ງຂໍ້ມູນຂອງທ່ານເອງ</translation>
 <translation id="8466613982764129868">ກວດໃຫ້ແນ່ໃຈວ່າ <ph name="TARGET_DEVICE_NAME" /> ເຊື່ອມຕໍ່ກັບອິນເຕີເນັດ</translation>
 <translation id="8473863474539038330">ທີ່ຢູ່ ແລະ ອື່ນໆອີກ</translation>
-<translation id="8481921391193215807">ເມື່ອເປີດໃຊ້, ເວັບໄຊອາດໃຊ້ເທັກໂນໂລຢີການຮັກສາຄວາມເປັນສ່ວນຕົວທີ່ສະແດງຢູ່ບ່ອນນີ້ເພື່ອສະໜອງເນື້ອຫາ ແລະ ບໍລິການຂອງພວກມັນ. ເທັກນິກເຫຼົ່ານີ້ຮວມທັງທາງເລືອກຕໍ່ກັບການຕິດຕາມຂ້າມເວັບໄຊ. ອາດມີການເພີ່ມການທົດລອງໃຊ້ເພີ່ມເຕີມໃນອະນາຄົດ.
-
-<ph name="BEGIN_LIST_ITEM1" />ຜູ້ລົງໂຄສະນາ ແລະ ຜູ້ເຜີຍແຜ່ສາມາດໃຊ້ FLoC ໄດ້.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />ຜູ້ໂຄສະນາ ແລະ ຜູ້ເຜີຍແຜ່ສາມາດສຶກສາປະສິດທິຜົນຂອງໂຄສະນາໃນແບບທີ່ບໍ່ຕິດຕາມທ່ານຂ້າມເວັບໄຊໄດ້.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ຄຸນສົມບັດທົດລອງໃຊ້ເປີດຢູ່</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ເປີດໜ້າປະຫວັດ</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ມີຊື່ໄຟລ໌ນີ້ຢູ່ແລ້ວ</translation>
 <translation id="8666759526542103597">ກ່ຽວກັບການປັບແຕ່ງໂຄສະນາເປັນແບບສ່ວນຕົວໂດຍອ້າງອີງໃສ່ໂປຣແກຣມທ່ອງເວັບ</translation>
 <translation id="8676789164135894283">ການຢັ້ງຢືນການເຂົ້າສູ່ລະບົບ</translation>
-<translation id="867767487203716855">ອັບເດດຕໍ່ໄປ</translation>
 <translation id="8683039184091909753">ຮູບ</translation>
-<translation id="8683081248374354009">ຣີເຊັດກຸ່ມ</translation>
 <translation id="869891660844655955">ວັນ​ຫມົດ​ອາ​ຍຸ</translation>
 <translation id="8699120352855309748">ບໍ່ສະເໜີແປພາສາເຫຼົ່ານີ້</translation>
 <translation id="8712637175834984815">ເຂົ້າໃຈແລ້ວ</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 c6fcc682..b1238fe 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Paskutinė valanda</translation>
 <translation id="1724977129262658800">Atrakinkite, kad galėtumėte redaguoti slaptažodį</translation>
 <translation id="1726477445370128854">Galite sparčiau naršyti ir ieškoti, kai „Chrome“ iš anksto įkelia puslapius, kuriuose, jos manymu, galėtumėte apsilankyti</translation>
-<translation id="173522743738009831">Apie privatumo „sandbox“ (smėlio dėžę)</translation>
 <translation id="1736419249208073774">Naršyti</translation>
 <translation id="1749561566933687563">Sinchronizuokite žymes</translation>
 <translation id="1750259112639922169">Skirtukų grupė – <ph name="TAB_COUNT" /> skirtuk.</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Liko <ph name="SECONDS" /> sek.</translation>
 <translation id="2779651927720337254">nepavyko</translation>
 <translation id="2781151931089541271">Liko 1 sek.</translation>
-<translation id="2788468313014644040">Grupės numeris</translation>
 <translation id="2800066122460699237">Skirtukas „<ph name="TAB_TITLE" />“ bus uždarytas</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="BEGIN_LINK" />„Google“ paskyroje<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Jei norite pasiekti žymes visuose įrenginiuose, prisijunkite ir įjunkite sinchronizavimą</translation>
 <translation id="2827278682606527653">Sklaidos kanalo kortelės meniu atidarytas iki pusės</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Bendrinti vaizdą</translation>
 <translation id="3387650086002190359">Nepavyko atsisiųsti „<ph name="FILE_NAME" />“ dėl failų sistemos klaidų.</translation>
 <translation id="3389286852084373014">Teksto pranešimas per didelis</translation>
-<translation id="3391512812407811893">Privatumo „sandbox“ (smėlio dėžės) bandomieji laikotarpiai</translation>
 <translation id="3398320232533725830">Atidaryti žymių tvarkytuvę</translation>
 <translation id="3407392651057365886">Daugiau puslapių įkeliama iš anksto. Puslapiai gali būti iš anksto įkelti per „Google“ serverius, gavus kitų svetainių užklausą.</translation>
 <translation id="3414952576877147120">Dydis:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Stebėti iš naujo</translation>
 <translation id="6002122790816966947">Jūsų įrenginiai</translation>
 <translation id="6005538289190791541">Siūlomas slaptažodis</translation>
-<translation id="6032091552407840792">Ši bandomoji versija aktyvi tik <ph name="BEGIN_LINK" />kai kuriuose regionuose<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Naudodama <ph name="BEGIN_LINK" />privatumo „sandbox“ (smėlio dėžę)<ph name="END_LINK" /> „Chrome“ kuria naujas technologijas, kad apsaugotų jus nuo veiklos skirtingose svetainėse stebėjimo, išlaikydama atvirą žiniatinklį.
-
-Privatumo „sandbox“ (smėlio dėžės) bandomosios versijos vis dar intensyviai kuriamos ir pasiekiamos tam tikruose regionuose. Kol kas svetainėse galima išbandyti privatumo „sandbox“ (smėlio dėžę) toliau naudojant dabartines žiniatinklio technologijas, pvz., trečiųjų šalių slapukus.</translation>
 <translation id="6039379616847168523">Pereiti prie kito skirtuko</translation>
 <translation id="6040143037577758943">Uždaryti</translation>
 <translation id="604124094241169006">Automatinis</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Pridėti</translation>
 <translation id="7798392620021911922">Atkurta skirtukų: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Ačiū, ne</translation>
-<translation id="7805768142964895445">Būsena</translation>
 <translation id="7808889146555843082">Ištrynus šį slaptažodį jūsų paskyra svetainėje <ph name="SITE" /> nebus ištrinta. Pakeiskite slaptažodį arba ištrinkite paskyrą domene <ph name="SITE" />, kad apsaugotumėte ją nuo kitų.</translation>
 <translation id="7810647596859435254">Atidaryti naudojant...</translation>
 <translation id="7815484226266492798">Ilga ekrano kopija</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Šifruokite sinchronizuojamus duomenis taikydami savo sinchronizavimo slaptafrazę</translation>
 <translation id="8466613982764129868">Įsitikinkite, kad įrenginys „<ph name="TARGET_DEVICE_NAME" />“ prijungtas prie interneto</translation>
 <translation id="8473863474539038330">Adresai ir dar daugiau</translation>
-<translation id="8481921391193215807">Įjungus svetainėse galima naudoti čia nurodytus privatumą užtikrinančius metodus turiniui ir paslaugoms teikti. Įtraukiami alternatyvūs veiklos skirtingose svetainėse stebėjimo metodai. Per laiką gali būti pridėta daugiau bandomųjų versijų.
-
-<ph name="BEGIN_LIST_ITEM1" />Reklamuotojai ir leidėjai gali naudoti „FLoC“.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Reklamuotojai ir leidėjai gali tyrinėti skelbimų efektyvumą nestebėdami jūsų svetainėse.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Bandomosios funkcijos įjungtos</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Atidaryti istorijos puslapį</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Failas pavadinimas jau yra</translation>
 <translation id="8666759526542103597">Apie skelbimų suasmeninimą pagal naršyklę</translation>
 <translation id="8676789164135894283">Prisijungimo patvirtinimai</translation>
-<translation id="867767487203716855">Kitas naujinys</translation>
 <translation id="8683039184091909753">vaizdas</translation>
-<translation id="8683081248374354009">Iš naujo nustatyti grupę</translation>
 <translation id="869891660844655955">Galiojimo data</translation>
 <translation id="8699120352855309748">Nesiūlyti versti šių kalbų</translation>
 <translation id="8712637175834984815">Supratau</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
index 0dd74a5..ab69c79 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Pēdējā stunda</translation>
 <translation id="1724977129262658800">Atbloķējiet, lai rediģētu paroli</translation>
 <translation id="1726477445370128854">Varat pārlūkot un meklēt ātrāk, ja Chrome iepriekš ielādē lapas, ko jūs varētu apmeklēt saskaņā ar Chrome rīcībā esošajiem datiem</translation>
-<translation id="173522743738009831">Par Konfidencialitātes smilškasti</translation>
 <translation id="1736419249208073774">Izpētīt</translation>
 <translation id="1749561566933687563">Sinhronizējiet grāmatzīmes</translation>
 <translation id="1750259112639922169">Ciļņu grupa — ciļņu skaits: <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Atlikušas <ph name="SECONDS" /> s</translation>
 <translation id="2779651927720337254">neizdevās</translation>
 <translation id="2781151931089541271">Atlikusi 1 s</translation>
-<translation id="2788468313014644040">Grupas numurs</translation>
 <translation id="2800066122460699237">Cilne “<ph name="TAB_TITLE" />” tiks aizvērta.</translation>
-<translation id="2806840421670364300">FPK</translation>
 <translation id="281504910091592009">Skatiet un pārvaldiet saglabātās paroles savā <ph name="BEGIN_LINK" />Google kontā<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Lai grāmatzīmes būtu pieejamas visās jūsu ierīcēs, pierakstieties un ieslēdziet sinhronizāciju.</translation>
 <translation id="2827278682606527653">Ir atvērta puse no plūsmas kartītes izvēlnes</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Kopīgot attēlu</translation>
 <translation id="3387650086002190359">Neizdevās lejupielādēt failu <ph name="FILE_NAME" />, jo radās failu sistēmas kļūdas.</translation>
 <translation id="3389286852084373014">Teksts ir pārāk liels</translation>
-<translation id="3391512812407811893">Konfidencialitātes smilškastes izmēģinājuma periodi</translation>
 <translation id="3398320232533725830">Atvērt grāmatzīmju pārvaldnieku</translation>
 <translation id="3407392651057365886">Iepriekš ielādēto lapu skaits ir lielāks. Lapas var ielādēt iepriekš, izmantojot Google serverus, ja to ir pieprasījušas citas vietnes.</translation>
 <translation id="3414952576877147120">Lielums:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Atsākt sekošanu</translation>
 <translation id="6002122790816966947">Jūsu ierīces</translation>
 <translation id="6005538289190791541">Ieteiktā parole</translation>
-<translation id="6032091552407840792">Šī izmēģinājuma versija ir aktīva tikai <ph name="BEGIN_LINK" />dažos reģionos<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Izmantojot <ph name="BEGIN_LINK" />konfidencialitātes smilškasti<ph name="END_LINK" />, pārlūkā Chrome ir iespējams izstrādāt jaunas tehnoloģijas, kas aizsargā jūs no starpvietņu izsekošanas, vienlaikus saglabājot atvērtā tīmekļa darbību.
-
-Konfidencialitātes smilškastes izmēģinājuma versijas joprojām tiek izstrādātas, un šī tehnoloģiju kopa ir pieejama noteiktos reģionos. Pagaidām vietnēs vienlaikus var tikt izmēģinātas konfidencialitātes smilškastes tehnoloģijas un turpināta pašreizējo tīmekļa tehnoloģiju (piemēram, trešās puses sīkfailu) lietošana.</translation>
 <translation id="6039379616847168523">Pāriet uz nākamo cilni</translation>
 <translation id="6040143037577758943">Aizvērt</translation>
 <translation id="604124094241169006">Automātiski</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Pievienot</translation>
 <translation id="7798392620021911922">Cilnes atjaunotas, skaits: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Nē, paldies</translation>
-<translation id="7805768142964895445">Statuss</translation>
 <translation id="7808889146555843082">Izdzēšot šo paroli, netiks dzēsts jūsu konts vietnē <ph name="SITE" />. Nomainiet savu paroli vai dzēsiet savu kontu vietnē <ph name="SITE" />, lai aizsargātu to no citām personām.</translation>
 <translation id="7810647596859435254">Atvērt ar…</translation>
 <translation id="7815484226266492798">Garš ekrānuzņēmums</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Šifrējiet sinhronizētos datus, izmantojot savu sinhronizācijas ieejas frāzi</translation>
 <translation id="8466613982764129868">Ierīcē <ph name="TARGET_DEVICE_NAME" /> ir jābūt izveidotam interneta savienojumam</translation>
 <translation id="8473863474539038330">Adreses un citus datus</translation>
-<translation id="8481921391193215807">Ja šeit parādītie konfidencialitātes aizsardzības risinājumi ir ieslēgti, vietnēs tie var tikt izmantoti satura un pakalpojumu nodrošināšanai. Šie risinājumi ietver arī alternatīvas starpvietņu izsekošanai. Laika gaitā var tikt pievienotas vēl citas izmēģinājuma versijas.
-
-<ph name="BEGIN_LIST_ITEM1" />Reklāmdevēji un izdevēji var izmantot tehnoloģiju FPK.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Reklāmdevēji un izdevēji var pētīt reklāmu efektivitāti, neizsekojot jūsu darbībām vairākās vietnēs.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Izmēģinājuma versijas funkcijas ir ieslēgtas</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Atvērt vēstures lapu</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Faila nosaukums jau pastāv</translation>
 <translation id="8666759526542103597">Par reklāmu personalizēšanu, balstoties uz pārlūku</translation>
 <translation id="8676789164135894283">Pierakstīšanās verifikācija</translation>
-<translation id="867767487203716855">Nākamais atjauninājums</translation>
 <translation id="8683039184091909753">attēls</translation>
-<translation id="8683081248374354009">Atiestatīt grupu</translation>
 <translation id="869891660844655955">Derīguma termiņš</translation>
 <translation id="8699120352855309748">Nepiedāvāt tulkot no šīm valodām</translation>
 <translation id="8712637175834984815">Sapratu!</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
index 88f68b7..9900f8b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Изминатиот час</translation>
 <translation id="1724977129262658800">Отклучете за да ја измените лозинката</translation>
 <translation id="1726477445370128854">Може да прелистувате и да пребарувате побрзо кога Chrome однапред ги вчитува страниците што мисли дека ќе ги посетите</translation>
-<translation id="173522743738009831">Информации за Privacy Sandbox</translation>
 <translation id="1736419249208073774">Истражете</translation>
 <translation id="1749561566933687563">Синхронизирајте ги обележувачите</translation>
 <translation id="1750259112639922169">Група картички - <ph name="TAB_COUNT" /> картички</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Останаа <ph name="SECONDS" /> секунди</translation>
 <translation id="2779651927720337254">не успеа</translation>
 <translation id="2781151931089541271">Остана 1 секунда</translation>
-<translation id="2788468313014644040">Број на групата</translation>
 <translation id="2800066122460699237">Картичката <ph name="TAB_TITLE" /> ќе се затвори</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Прегледајте ги и управувајте со зачуваните лозинки во вашата <ph name="BEGIN_LINK" />сметка на Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">За да ги добиете обележувачите на сите ваши уреди, најавете се и вклучете ја синхронизацијата</translation>
 <translation id="2827278682606527653">Менито на картичката за активност е отворено на половина екран</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Сподели ја сликата</translation>
 <translation id="3387650086002190359">Преземањето на <ph name="FILE_NAME" /> не успеа поради грешки на системот со датотеки.</translation>
 <translation id="3389286852084373014">Премногу е долго</translation>
-<translation id="3391512812407811893">Пробни периоди за Privacy Sandbox</translation>
 <translation id="3398320232533725830">Отворете го управникот на обележувачи</translation>
 <translation id="3407392651057365886">Вчитани се повеќе страници однапред. Страниците може да се вчитуваат однапред преку серверите на Google кога тоа го бараат другите сајтови.</translation>
 <translation id="3414952576877147120">Големина:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Следете пак</translation>
 <translation id="6002122790816966947">Ваши уреди</translation>
 <translation id="6005538289190791541">Предложена лозинка</translation>
-<translation id="6032091552407840792">Оваа пробна верзија е активна само во <ph name="BEGIN_LINK" />некои региони<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Со <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome развива нови технологии за заштита од следење на повеќе сајтови, додека истовремено го зачувува отворениот интернет.
-
-Пробната верзија на Privacy Sandbox сѐ уште активно се развива и таа е достапна само во одредени региони. Засега, сајтовите може да ја испробаат Privacy Sandbox, а притоа да продолжат да ги користат тековните веб-технологии, како што се колачињата од трети страни.</translation>
 <translation id="6039379616847168523">Скокнете на следната картичка</translation>
 <translation id="6040143037577758943">Затвори</translation>
 <translation id="604124094241169006">Автоматски</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Додај</translation>
 <translation id="7798392620021911922">Вратени се <ph name="TAB_COUNT" /> картички</translation>
 <translation id="780301667611848630">Не, фала</translation>
-<translation id="7805768142964895445">Статус</translation>
 <translation id="7808889146555843082">Со бришењето на лозинкава нема да се избрише вашата сметка на <ph name="SITE" />. Променете ја лозинката или избришете ја сметката на <ph name="SITE" /> за да ја заштитите од другите.</translation>
 <translation id="7810647596859435254">Отвори со…</translation>
 <translation id="7815484226266492798">Копче за долга слика од екранот</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Шифрирајте ги синхронизираните податоци со сопствената лозинка за синхронизација</translation>
 <translation id="8466613982764129868">Проверете дали <ph name="TARGET_DEVICE_NAME" /> е поврзан на интернет</translation>
 <translation id="8473863474539038330">Адреси и друго</translation>
-<translation id="8481921391193215807">Кога е вклучено, сајтовите може да ги користат техниките за зачувување на приватноста што се прикажани тука за обезбедување на нивните содржини и услуги. Тие вклучуваат алтернативи за следење на повеќе сајтови. Можеби ќе се додадат повеќе пробни верзии со тек на време.
-
-<ph name="BEGIN_LIST_ITEM1" />Огласувачите и издавачите може да ја користат техниката FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Огласувачите и издавачите може да ја проучуваат ефикасноста на рекламите на начин што не ве следи на сајтовите.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Пробните функции се вклучени</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Отворете ја страницата „Историја“</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Името на датотеката веќе постои</translation>
 <translation id="8666759526542103597">За персоналзирањето реклами според прелистувач</translation>
 <translation id="8676789164135894283">Потврди за најавување</translation>
-<translation id="867767487203716855">Следно ажурирање</translation>
 <translation id="8683039184091909753">слика</translation>
-<translation id="8683081248374354009">Ресетирај група</translation>
 <translation id="869891660844655955">Рок на важност</translation>
 <translation id="8699120352855309748">Не нуди превод за овие јазици</translation>
 <translation id="8712637175834984815">Сфатив</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index 3b78bcfd..875b6fa 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">കഴിഞ്ഞ മണിക്കൂര്‍‌</translation>
 <translation id="1724977129262658800">നിങ്ങളുടെ പാസ്‍വേഡ് എഡിറ്റ് ചെയ്യാൻ അൺലോക്ക് ചെയ്യുക</translation>
 <translation id="1726477445370128854">നിങ്ങൾ സന്ദർശിക്കുമെന്ന് കരുതുന്ന പേജുകൾ Chrome മുൻകൂട്ടി ലോഡ് ചെയ്യുമ്പോൾ നിങ്ങൾക്ക് അതിവേഗം ബ്രൗസ് ചെയ്യാനും തിരയാനുമാകും.</translation>
-<translation id="173522743738009831">സ്വകാര്യതാ സാൻഡ്‌ബോക്‌സിനെ കുറിച്ച്</translation>
 <translation id="1736419249208073774">അടുത്തറിയുക</translation>
 <translation id="1749561566933687563">നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ സമന്വയിപ്പിക്കുക</translation>
 <translation id="1750259112639922169">ടാബ് ഗ്രൂപ്പ് - <ph name="TAB_COUNT" /> ടാബുകൾ</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> സെക്കൻഡ് ശേഷിക്കുന്നു</translation>
 <translation id="2779651927720337254">പരാജയപ്പെട്ടു</translation>
 <translation id="2781151931089541271">ഒരു സെക്കൻഡ് ശേഷിക്കുന്നു</translation>
-<translation id="2788468313014644040">ഗ്രൂപ്പ് നമ്പർ</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> എന്ന ടാബ് അടയ്ക്കും</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">നിങ്ങളുടെ <ph name="BEGIN_LINK" />Google അക്കൗണ്ടിൽ<ph name="END_LINK" /> സംരക്ഷിച്ച പാസ്‌വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക</translation>
 <translation id="2818669890320396765">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്‌മാർക്കുകൾ ലഭിക്കാൻ, സൈൻ ഇൻ ചെയ്‌ത് സമന്വയിപ്പിക്കൽ ഓണാക്കുക</translation>
 <translation id="2827278682606527653">പകുതി ഉയരത്തിലുള്ള ഫീഡ് കാർഡ് മെനു</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ചിത്രം പങ്കിടുക</translation>
 <translation id="3387650086002190359">ഫയൽ സിസ്‌റ്റം പിശകുകൾ കാരണം <ph name="FILE_NAME" /> ഡൗൺലോഡ് ചെയ്യാനായില്ല.</translation>
 <translation id="3389286852084373014">ടെക്‌സ്‌റ്റ് വളരെ വലുതാണ്</translation>
-<translation id="3391512812407811893">സ്വകാര്യതാ സാൻഡ്‌ബോക്‌സ് ട്രയലുകൾ</translation>
 <translation id="3398320232533725830">ബുക്ക്‌മാർക്കുകൾ മാനേജർ തുറക്കുക</translation>
 <translation id="3407392651057365886">കൂടുതൽ പേജുകൾ മുൻകൂട്ടി ലോഡ് ചെയ്തു. മറ്റ് സൈറ്റുകൾ അഭ്യർത്ഥിക്കുമ്പോൾ, Google സെർവറുകൾ മുഖേന പേജുകൾ മുൻകൂട്ടി ലോഡ് ചെയ്തേക്കാം.</translation>
 <translation id="3414952576877147120">വലുപ്പം:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">വീണ്ടും പിന്തുടരുക</translation>
 <translation id="6002122790816966947">നിങ്ങളുടെ ഉപകരണങ്ങൾ</translation>
 <translation id="6005538289190791541">നിർദ്ദേശിച്ച പാസ്‌വേഡ്</translation>
-<translation id="6032091552407840792">ഈ ട്രയൽ <ph name="BEGIN_LINK" />ചില പ്രദേശങ്ങളിൽ<ph name="END_LINK" /> മാത്രമേ സജീവമായിട്ടുള്ളൂ.</translation>
-<translation id="6033245666633565791">ഓപ്പൺ വെബിനെ പരിരക്ഷിക്കുമ്പോൾ തന്നെ <ph name="BEGIN_LINK" />സ്വകാര്യതാ സാൻഡ്‌ബോക്‌സ്<ph name="END_LINK" /> ഉപയോഗിച്ച് ക്രോസ്-സെെറ്റ് ട്രാക്കിംഗിൽ നിന്ന് നിങ്ങളെ സംരക്ഷിക്കാൻ പുതിയ സാങ്കേതികവിദ്യകൾ Chrome വികസിപ്പിക്കുന്നു.
-
-സ്വകാര്യതാ സാൻഡ്‌ബോക്‌സ് ട്രയലുകൾ ഇപ്പോഴും സജീവ വികസന ഘട്ടത്തിലാണ്, തിരഞ്ഞെടുത്ത പ്രദേശങ്ങളിൽ അത് ലഭ്യമാണ്. ഇപ്പോഴത്തേക്ക്, മൂന്നാം കക്ഷി കുക്കികൾ പോലുള്ള നിലവിലെ വെബ് സാങ്കേതിക വിദ്യകൾ ഉപയോഗിക്കുന്നത് തുടരുന്നതിനൊപ്പം സൈറ്റുകൾക്ക് സ്വകാര്യതാ സാൻഡ്‌ബോക്‌സ് പരീക്ഷിക്കാവുന്നതാണ്.</translation>
 <translation id="6039379616847168523">അടുത്ത ടാബിലേക്ക് പോകുക</translation>
 <translation id="6040143037577758943">അടയ്ക്കുക</translation>
 <translation id="604124094241169006">സ്വയമേവ</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">ചേര്‍ക്കൂ</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> ടാബുകൾ പുനഃസ്ഥാപിച്ചു</translation>
 <translation id="780301667611848630">വേണ്ട നന്ദി</translation>
-<translation id="7805768142964895445">നില</translation>
 <translation id="7808889146555843082">ഈ പാസ്‌വേഡ് ഇല്ലാതാക്കുന്നത് <ph name="SITE" /> -ലെ നിങ്ങളുടെ അക്കൗണ്ട് ഇല്ലാതാക്കില്ല. നിങ്ങളുടെ <ph name="SITE" /> -ലെ അക്കൗണ്ട് മറ്റുള്ളവരിൽ നിന്ന് സുരക്ഷിതമായി സൂക്ഷിക്കാൻ അതിന്റെ പാസ്‌വേഡ് മാറ്റുകയോ അത് ഇല്ലാതാക്കുകയോ ചെയ്യുക.</translation>
 <translation id="7810647596859435254">ഇത് ഉപയോഗിച്ച് തുറക്കുക...</translation>
 <translation id="7815484226266492798">നീളത്തിലുള്ള സ്ക്രീന്‍ഷോട്ട്</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">നിങ്ങളുടെ സമന്വയ പാസ്‌ഫ്രെയ്‌സ് ഉപയോഗിച്ച്, സമന്വയിപ്പിച്ച ഡാറ്റ എൻക്രി‌പ്‌റ്റ് ചെയ്യുക</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> ഉപകരണം ഇന്റർനെറ്റിലേക്ക് കണക്‌റ്റ് ചെയ്‌തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക</translation>
 <translation id="8473863474539038330">വിലാസങ്ങളും മറ്റും</translation>
-<translation id="8481921391193215807">ഓണായിരിക്കുമ്പോൾ, ഉള്ളടക്കവും സേവനങ്ങളും നൽകാൻ, ഇവിടെ കാണിച്ചിരിക്കുന്ന സ്വകാര്യത സംരക്ഷിക്കുന്ന സാങ്കേതിക വിദ്യകൾ സൈറ്റുകൾ ഉപയോഗിച്ചേക്കാം. ക്രോസ് സൈറ്റ് ട്രാക്കിംഗിനുള്ള ബദലുകൾ ഇവയിൽ ഉൾപ്പെടുന്നു. കാലക്രമേണ കൂടുതൽ ട്രയലുകൾ ചേർത്തേക്കാം.
-
-<ph name="BEGIN_LIST_ITEM1" />പരസ്യദാതാക്കൾക്കും പ്രസാധകർക്കും FLoC സാങ്കേതികവിദ്യ ഉപയോഗിക്കാനാകും.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />സൈറ്റുകളിലുടനീളം നിങ്ങളെ ട്രാക്ക് ചെയ്യാത്ത രീതിയിൽ പരസ്യദാതാക്കൾക്കും പ്രസാധകർക്കും പരസ്യങ്ങളുടെ കാര്യക്ഷമത മനസ്സിലാക്കാനാകും.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ട്രയൽ ഫീച്ചറുകൾ ഓണാണ്</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ചരിത്ര പേജ് തുറക്കുക</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ഫയലിന്റെ പേര് ഇതിനകം നിലവിലുണ്ട്</translation>
 <translation id="8666759526542103597">ബ്രൗസർ അധിഷ്‌ഠിത പരസ്യം വ്യക്തിപരമാക്കലിനെക്കുറിച്ച്</translation>
 <translation id="8676789164135894283">സൈൻ ഇൻ പരിശോധിച്ചുറപ്പിക്കലുകൾ</translation>
-<translation id="867767487203716855">അടുത്ത അപ്ഡേറ്റ്</translation>
 <translation id="8683039184091909753">ചിത്രം</translation>
-<translation id="8683081248374354009">ഗ്രൂപ്പ് റീസെറ്റ് ചെയ്യുക</translation>
 <translation id="869891660844655955">കാലഹരണപ്പെടല്‍‌ തീയതി</translation>
 <translation id="8699120352855309748">ഈ ഭാഷകൾ വിവർത്തനം ചെയ്യേണ്ട</translation>
 <translation id="8712637175834984815">മനസ്സിലായി</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 c7296c022..3fb5369 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Сүүлийн цаг</translation>
 <translation id="1724977129262658800">Нууц үгээ засахын тулд түгжээг тайлна уу</translation>
 <translation id="1726477445370128854">Chrome таныг зочилж магадгүй гэж бодсон хуудаснуудыг урьдчилан ачаалсан үед та илүү хурдан үзэж, хайх боломжтой</translation>
-<translation id="173522743738009831">Privacy Sandbox-н тухай</translation>
 <translation id="1736419249208073774">Судлах</translation>
 <translation id="1749561566933687563">Хавчуургаа синхрончлоорой</translation>
 <translation id="1750259112639922169">Табын бүлэг - <ph name="TAB_COUNT" /> таб</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> секунд үлдсэн</translation>
 <translation id="2779651927720337254">татаж чадсангүй</translation>
 <translation id="2781151931089541271">1 секунд үлдсэн</translation>
-<translation id="2788468313014644040">Бүлгийн тоо</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> табыг хаана</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google Бүртгэл<ph name="END_LINK" />-дээ хадгалсан нууц үгнүүдийг харах болон удирдах</translation>
 <translation id="2818669890320396765">Хавчуургаа бүх төхөөрөмждөө авахын тулд нэвтрээд синкийг асаана уу</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Зураг хуваалцах</translation>
 <translation id="3387650086002190359">Файлын системийн алдаанаас шалтгаалан <ph name="FILE_NAME" />-г татаж чадсангүй.</translation>
 <translation id="3389286852084373014">Текст хэт том байна</translation>
-<translation id="3391512812407811893">Privacy Sandbox-н туршилт</translation>
 <translation id="3398320232533725830">Хавчуургын менежерийг нээх</translation>
 <translation id="3407392651057365886">Илүү олон хуудсыг урьдчилан ачаална. Бусад сайтаас хүсэлт тавьсан үед хуудаснуудыг Google-н серверээр урьдчилан ачаалж магадгүй.</translation>
 <translation id="3414952576877147120">Хэмжээ:</translation>
@@ -912,10 +908,6 @@
 <translation id="6000203700195075278">Дахин дагах</translation>
 <translation id="6002122790816966947">Таны төхөөрөмжүүд</translation>
 <translation id="6005538289190791541">Санал болгосон нууц үг</translation>
-<translation id="6032091552407840792">Энэ туршилт зөвхөн <ph name="BEGIN_LINK" />зарим бүс нутагт<ph name="END_LINK" /> идэвхтэй байна.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />-р Chrome нээлттэй вебийг хадгалах явцдаа таныг сайт хооронд хянахаас хамгаалах шинэ технологийг хөгжүүлж байна.
-
-Privacy Sandbox-н туршилт нь идэвхтэй хөгжүүлэлтэд байгаа бөгөөд сонгосон бүс нутгуудад боломжтой. Одоогоор сайтууд гуравдагч талын күүки зэрэг одоогийн веб технологийг үргэлжлүүлэн ашиглах үедээ Privacy Sandbox-г туршиж үзэж болно.</translation>
 <translation id="6039379616847168523">Дараагийн табад очих</translation>
 <translation id="6040143037577758943">Хаах</translation>
 <translation id="604124094241169006">Автомат</translation>
@@ -1247,7 +1239,6 @@
 <translation id="7791543448312431591">Нэмэх</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> табыг сэргээсэн</translation>
 <translation id="780301667611848630">Үгүй, баярлалаа</translation>
-<translation id="7805768142964895445">Байр байдал</translation>
 <translation id="7808889146555843082">Энэ нууц үгийг устгасан ч <ph name="SITE" /> дээрх таны бүртгэл устахгүй. <ph name="SITE" /> дээрх нууц үгээ өөрчлөн, эсвэл бүртгэлээ устган бусдаас хамгаална уу.</translation>
 <translation id="7810647596859435254">Дараахаар нээх...</translation>
 <translation id="7815484226266492798">Урт дэлгэцийн агшин</translation>
@@ -1381,11 +1372,6 @@
 <translation id="8461694314515752532">Синк хийсэн өгөгдлийг синкийн нэвтрэх үгээрээ шифрлэх</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> интернэтэд холбогдсон эсэхийг шалгана уу</translation>
 <translation id="8473863474539038330">Хаяг болон бусад</translation>
-<translation id="8481921391193215807">Асаалттай үед сайтууд өөрсдийн контент болон үйлчилгээг хүргэхдээ энд харуулсан нууцлал хадгалах техникийг ашиглаж магадгүй. Үүнд сайт хоорондын хяналтын хувилбарууд орно. Илүү олон туршилтыг аажимдаа нэмж магадгүй.
-
-<ph name="BEGIN_LIST_ITEM1" />Сурталчлагчид болон нийтлэгчид FLoC-г ашиглах боломжтой.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Сурталчлагчид болон нийтлэгчид таныг сайтууд дээр дагахгүйгээр зарын үр нөлөөг судлах боломжтой.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Туршилтын онцлог асаалттай байна</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Түүхийн хуудсыг нээх</translation>
@@ -1431,9 +1417,7 @@
 <translation id="8664979001105139458">Файлын нэр ашиглалтад байна</translation>
 <translation id="8666759526542103597">Хөтчид тулгуурласан сонирхсон зарын тохируулгын тухай</translation>
 <translation id="8676789164135894283">Нэвтрэх баталгаажуулалт</translation>
-<translation id="867767487203716855">Дараагийн шинэчлэлт</translation>
 <translation id="8683039184091909753">зураг</translation>
-<translation id="8683081248374354009">Бүлгийг шинэчлэх</translation>
 <translation id="869891660844655955">Дуусах хугацаа</translation>
 <translation id="8699120352855309748">Эдгээр хэлийг орчуулахыг бүү санал болго</translation>
 <translation id="8712637175834984815">Ойлголоо</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
index 87a114a..255a3e7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">शेवटच्या तासामधील</translation>
 <translation id="1724977129262658800">तुमचा पासवर्ड संपादित करण्यासाठी अनलॉक करा</translation>
 <translation id="1726477445370128854">तुम्ही भेट देऊ शकता असे Chrome ला वाटत असलेली पेज ते प्रीलोड करते तेव्हा, तुम्ही आणखी जलद ब्राउझ करू शकता आणि शोधू शकता</translation>
-<translation id="173522743738009831">प्रायव्हसी सॅंडबॉक्स याविषयी</translation>
 <translation id="1736419249208073774">एक्सप्लोर करा</translation>
 <translation id="1749561566933687563">तुमचे बुकमार्क सिंक करा</translation>
 <translation id="1750259112639922169">टॅब गट - <ph name="TAB_COUNT" /> टॅब</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> सेकंद शिल्लक</translation>
 <translation id="2779651927720337254">अयशस्वी झाले</translation>
 <translation id="2781151931089541271">1 सेकंद शिल्लक</translation>
-<translation id="2788468313014644040">गटाचा नंबर</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> टॅब बंद केला जाईल</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">तुमच्या <ph name="BEGIN_LINK" />Google खात्यामध्ये<ph name="END_LINK" /> सेव्ह केलेले पासवर्ड पहा आणि व्यवस्थापित करा</translation>
 <translation id="2818669890320396765">तुमच्या सर्व डिव्हाइसवर तुमचे बुकमार्क मिळवण्यासाठी, साइन इन करा आणि सिंक सुरू करा</translation>
 <translation id="2827278682606527653">फीड कार्ड मेनू अर्ध्या उंचीवर आहे</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">इमेज शेअर करा</translation>
 <translation id="3387650086002190359">फाइल सिस्टम एररमुळे <ph name="FILE_NAME" /> डाउनलोड अयशस्वी झाले.</translation>
 <translation id="3389286852084373014">मजकूर खूप मोठा आहे</translation>
-<translation id="3391512812407811893">प्रायव्हसी सॅंडबॉक्स चाचण्या</translation>
 <translation id="3398320232533725830">बुकमार्क व्यवस्थापक उघडा</translation>
 <translation id="3407392651057365886">अधिक पेज प्रीलोड केलेली आहेत. इतर साइटद्वारे विनंती केल्यावर पेज Google सर्व्हरद्वारे प्रीलोड केली जाऊ शकतात.</translation>
 <translation id="3414952576877147120">आकार:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">पुन्हा फॉलो करा</translation>
 <translation id="6002122790816966947">तुमची डिव्हाइस</translation>
 <translation id="6005538289190791541">सुचवलेला पासवर्ड</translation>
-<translation id="6032091552407840792">ही चाचणी फक्त <ph name="BEGIN_LINK" />काही प्रदेश<ph name="END_LINK" /> यांमध्ये ॲक्टिव्ह आहे.</translation>
-<translation id="6033245666633565791">खुल्या वेबचे संरक्षण करत असताना, क्रॉस-साइट ट्रॅकिंगपासून तुमचे रक्षण करण्यासाठी, <ph name="BEGIN_LINK" />प्रायव्हसी सॅंडबाॅक्स<ph name="END_LINK" /> च्या आधारे Chrome नवीन तंत्रज्ञाने विकसित करत आहे.
-
-प्रायव्हसी सॅंडबाॅक्स च्या चाचण्या अद्याप विकसित केल्या जात आहेत आणि त्या निवडक प्रदेशांमध्ये उपलब्ध आहेत. सध्यासाठी, तृतीय पक्ष कुकी यांसारख्या सध्याच्या वेब तंत्रज्ञानांचा वापर करणे सुरू ठेवून साइट प्रायव्हसी सॅंडबाॅक्स वापरून पाहू शकतात.</translation>
 <translation id="6039379616847168523">पुढील टॅबवर जा</translation>
 <translation id="6040143037577758943">बंद करा</translation>
 <translation id="604124094241169006">स्वयंचलित</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">जोडा</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> टॅब रिस्टोअर केले</translation>
 <translation id="780301667611848630">नाही, नको</translation>
-<translation id="7805768142964895445">स्थिती</translation>
 <translation id="7808889146555843082">हा पासवर्ड हटवल्यामुळे तुमचे <ph name="SITE" /> वरील खाते हटवले जाणार नाही. तुमचे खाते इतरांपासून सुरक्षित ठेवण्यासाठी, त्‍याचा <ph name="SITE" /> वरील पासवर्ड बदला किंवा तुमचे त्‍यावरील खाते हटवा.</translation>
 <translation id="7810647596859435254">यासह उघडा...</translation>
 <translation id="7815484226266492798">मोठा स्क्रीनशॉट</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">तुमच्या स्वतःच्या सिंक पासफ्रेजसह सिंक केलेला डेटा एंक्रिप्ट करा</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> इंटरनेटशी कनेक्ट केले असल्याची खात्री करा</translation>
 <translation id="8473863474539038330">पत्ते आणि बरेच काही</translation>
-<translation id="8481921391193215807">सुरू केलेले असते तेव्हा, साइट त्यांचा आशय आणि सेवा देण्यासाठी येथे दाखवलेल्या गोपनीयता संरक्षण तंत्रांचा वापर करू शकतात. यामध्ये सर्व साइट ट्रॅक करण्याच्या पर्यायांचा समावेश आहे. वेळोवेळी आणखी चाचण्या जोडल्या जाऊ शकतात.
-
-<ph name="BEGIN_LIST_ITEM1" />जाहिरातदार आणि प्रकाशक FLoC वापरू शकतात.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />तुम्हाला साइटवर ट्रॅक करणार नाहीत, अशा प्रकारे जाहिरातदार आणि प्रकाशक जाहिरातींच्या परिणामकारकतेचा अभ्यास करू शकतात.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">चाचणी वैशिष्ट्ये सुरू आहेत</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">इतिहास पृष्ठ उघडा</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">फाइलचे नाव आधीपासून अस्तित्वात आहे</translation>
 <translation id="8666759526542103597">ब्राउझरवर आधारित जाहिरात पर्सनलायझेशनविषयी</translation>
 <translation id="8676789164135894283">साइन-इनसंबंधित पडताळणी</translation>
-<translation id="867767487203716855">पुढील अपडेट</translation>
 <translation id="8683039184091909753">इमेज</translation>
-<translation id="8683081248374354009">गट रीसेट करा</translation>
 <translation id="869891660844655955">कालावधी समाप्ती तारीख</translation>
 <translation id="8699120352855309748">या भाषांचे भाषांतर करणे ऑफर करू नका</translation>
 <translation id="8712637175834984815">समजले</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
index 27b27196..6d91c74af 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Jam terakhir</translation>
 <translation id="1724977129262658800">Buka kunci untuk mengedit kata laluan anda</translation>
 <translation id="1726477445370128854">Anda boleh menyemak imbas dan mencari dengan lebih pantas apabila Chrome mempramuat halaman yang diramal akan anda lawati</translation>
-<translation id="173522743738009831">Perihal Kotak Pasir Privasi</translation>
 <translation id="1736419249208073774">Teroka</translation>
 <translation id="1749561566933687563">Segerakkan penanda halaman anda</translation>
 <translation id="1750259112639922169">Kumpulan tab - <ph name="TAB_COUNT" /> tab</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> saat lagi</translation>
 <translation id="2779651927720337254">gagal</translation>
 <translation id="2781151931089541271">1 saat lagi</translation>
-<translation id="2788468313014644040">Nombor kumpulan</translation>
 <translation id="2800066122460699237">Tab <ph name="TAB_TITLE" /> akan ditutup</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Lihat dan urus kata laluan yang disimpan dalam <ph name="BEGIN_LINK" />Akaun Google<ph name="END_LINK" /> anda</translation>
 <translation id="2818669890320396765">Log masuk dan hidupkan penyegerakan untuk mendapatkan penanda halaman pada semua peranti anda</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Kongsi imej</translation>
 <translation id="3387650086002190359">Muat turun <ph name="FILE_NAME" /> gagal disebabkan oleh ralat sistem fail.</translation>
 <translation id="3389286852084373014">Teks terlalu besar</translation>
-<translation id="3391512812407811893">Percubaan Kotak Pasir Privasi</translation>
 <translation id="3398320232533725830">Buka pengurus penanda halaman</translation>
 <translation id="3407392651057365886">Lagi halaman yang dipramuat. Halaman mungkin dipramuat melalui pelayan Google apabila diminta oleh laman lain.</translation>
 <translation id="3414952576877147120">Saiz:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Ikuti semula</translation>
 <translation id="6002122790816966947">Peranti anda</translation>
 <translation id="6005538289190791541">Kata laluan yang disyorkan</translation>
-<translation id="6032091552407840792">Percubaan ini hanya aktif di <ph name="BEGIN_LINK" />sesetengah rantau<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Dengan <ph name="BEGIN_LINK" />Kotak Pasir Privasi<ph name="END_LINK" />, Chrome membangunkan teknologi baharu untuk melindungi anda daripada penjejakan rentas laman sambil memelihara web terbuka.
-
-Percubaan Kotak Pasir Privasi masih aktif dibangunkan dan tersedia di rantau terpilih. Buat masa ini, laman boleh mencuba Kotak Pasir Privasi sambil terus menggunakan teknologi web semasa seperti kuki pihak ketiga.</translation>
 <translation id="6039379616847168523">Lompat ke tab seterusnya</translation>
 <translation id="6040143037577758943">Tutup</translation>
 <translation id="604124094241169006">Automatik</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Tambah</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> tab dipulihkan</translation>
 <translation id="780301667611848630">Tidak, terima kasih</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Pemadaman kata laluan ini tidak akan memadamkan akaun anda pada <ph name="SITE" />. Tukar kata laluan anda atau padamkan akaun anda pada <ph name="SITE" /> untuk melindungi kata laluan itu daripada orang lain.</translation>
 <translation id="7810647596859435254">Buka dengan...</translation>
 <translation id="7815484226266492798">Tangkapan Skrin Panjang</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Sulitkan data yang disegerakkan dengan ungkapan laluan penyegerakan anda sendiri</translation>
 <translation id="8466613982764129868">Pastikan <ph name="TARGET_DEVICE_NAME" /> disambungkan ke Internet</translation>
 <translation id="8473863474539038330">Alamat dan pelbagai lagi</translation>
-<translation id="8481921391193215807">Apabila dihidupkan, laman boleh menggunakan teknik yang menjaga privasi yang ditunjukkan di sini untuk menyediakan kandungan dan perkhidmatan laman tersebut. Teknik ini termasuklah teknik alternatif bagi penjejakan rentas laman. Lebih banyak percubaan mungkin ditambahkan dari semasa ke semasa.
-
-<ph name="BEGIN_LIST_ITEM1" />Pengiklan dan penerbit boleh menggunakan FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Pengiklan dan penerbit boleh mengkaji keberkesanan iklan dengan cara yang tidak menjejak anda merentas berbilang laman.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Ciri percubaan dihidupkan</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Buka halaman sejarah</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Nama fail sudah wujud</translation>
 <translation id="8666759526542103597">Perihal pemeribadian iklan berasaskan penyemak imbas</translation>
 <translation id="8676789164135894283">Pengesahan log masuk</translation>
-<translation id="867767487203716855">Kemas kini seterusnya</translation>
 <translation id="8683039184091909753">imej</translation>
-<translation id="8683081248374354009">Tetapkan semula kumpulan</translation>
 <translation id="869891660844655955">Tarikh tamat tempoh</translation>
 <translation id="8699120352855309748">Jangan tawarkan untuk menterjemahkan bahasa ini</translation>
 <translation id="8712637175834984815">Faham</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
index f44bdfc6..a4234dff 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">နောက်ဆုံးတစ်နာရီ</translation>
 <translation id="1724977129262658800">သင့်စကားဝှက်ကို တည်းဖြတ်ရန် ဖွင့်ပါ</translation>
 <translation id="1726477445370128854">Chrome က သင်ဝင်ကြည့်နိုင်မည်ဟု ထင်သည့် စာမျက်နှာများကို ကြိုဖွင့်သည့်အခါ ပိုမိုမြန်ဆန်စွာ ကြည့်ရှုပြီး ရှာဖွေနိုင်ပါသည်</translation>
-<translation id="173522743738009831">'ပုဂ္ဂိုလ်ရေးဆိုင်ရာ လုံခြုံသည့်နေရာ' အကြောင်း</translation>
 <translation id="1736419249208073774">စူးစမ်းလေ့လာရန်</translation>
 <translation id="1749561566933687563">သင့် စာညှပ်များကို စင့်ခ် လုပ်ပါ</translation>
 <translation id="1750259112639922169">တဘ်အုပ်စု - တဘ် <ph name="TAB_COUNT" /> ခု</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> စက္ကန့် ကျန်သည်</translation>
 <translation id="2779651927720337254">ဒေါင်းလုဒ် မပြီးဆုံးပါ</translation>
 <translation id="2781151931089541271">၁ စက္ကန့် ကျန်သည်</translation>
-<translation id="2788468313014644040">အဖွဲ့နံပါတ်</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> တဘ်ကို ပိတ်ပါမည်</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">သိမ်းဆည်းထားသည့် စကားဝှက်များကို သင်၏ <ph name="BEGIN_LINK" />Google အကောင့်<ph name="END_LINK" /> တွင် ကြည့်ရှုစီမံပါ</translation>
 <translation id="2818669890320396765">သင်၏ဝဘ်လိပ်စာများကို စက်အားလုံးတွင် ရယူနိုင်ရန် လက်မှတ်ထိုးဝင်ပြီး စင့်ခ်လုပ်ခြင်းကို ဖွင့်ပါ</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ပုံကို ဝေမျှပါ</translation>
 <translation id="3387650086002190359"><ph name="FILE_NAME" /> ဒေါင်းလုဒ်မှာ စနစ် အမှားများကြောင့် မအောင်မြင်ခဲ့ပါ။</translation>
 <translation id="3389286852084373014">စာသား အလွန်ကြီးနေသည်</translation>
-<translation id="3391512812407811893">‘ပုဂ္ဂိုလ်ရေးဆိုင်ရာ လုံခြုံသည့်နေရာ’ အစမ်းသုံးခြင်းများ</translation>
 <translation id="3398320232533725830">စာညှပ်စီမံခန့်ခွဲမှုစနစ်ကို ဖွင့်ရန်</translation>
 <translation id="3407392651057365886">နောက်ထပ်စာမျက်နှာများကို ကြိုဖွင့်ထားသည်။ အခြားဝဘ်ဆိုက်များမှ တောင်းဆိုသည့်အခါ Google ဆာဗာများမှတစ်ဆင့် စာမျက်နှာများကို ကြိုဖွင့်ထားနိုင်ပါသည်။</translation>
 <translation id="3414952576877147120">အရွယ်အစား:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">ပြန်လည်လိုက်ကြည့်ရန်</translation>
 <translation id="6002122790816966947">သင်၏စက်များ</translation>
 <translation id="6005538289190791541">အကြံပြုထားသည့် စကားဝှက်</translation>
-<translation id="6032091552407840792">ဤအစမ်းသုံးမှုကို <ph name="BEGIN_LINK" />ဒေသအချို့<ph name="END_LINK" /> တွင်သာ ရနိုင်သည်။</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />ပုဂ္ဂိုလ်ရေးဆိုင်ရာ လုံခြုံသည့်နေရာ<ph name="END_LINK" /> ဖြင့် Chrome သည် အများသုံးဝဘ်၏ လည်ပတ်မှုကို ထိန်းသိမ်းပေးပြီး ဝဘ်ဆိုက်အမျိုးမျိုးရှိ ခြေရာခံခြင်းများမှ သင့်ကိုကာကွယ်ပေးမည့် နည်းပညာအသစ်များကို ရေးဆွဲနေပါသည်။
-
-‘ပုဂ္ဂိုလ်ရေးဆိုင်ရာ လုံခြုံသည့်နေရာ’ အစမ်းသုံးမှုများကို လက်ရှိ ရေးဆွဲနေဆဲဖြစ်ပြီး ရွေးချယ်ထားသော ဒေသများတွင် ရနိုင်သည်။ ဝဘ်ဆိုက်များသည် လောလောဆယ်တွင် ပြင်ပကုမ္ပဏီကွတ်ကီးများကဲ့သို့ လက်ရှိဝဘ်နည်းပညာများကို ဆက်လက်အသုံးပြုနေစဉ် ‘ပုဂ္ဂိုလ်ရေးဆိုင်ရာ လုံခြုံသည့်နေရာ’ ကို စမ်းသုံးကြည့်နိုင်သည်။</translation>
 <translation id="6039379616847168523">နောက်တဘ်သို့ သွားရန်</translation>
 <translation id="6040143037577758943">ပိတ်ရန်</translation>
 <translation id="604124094241169006">အလိုအလျောက်</translation>
@@ -1247,7 +1239,6 @@
 <translation id="7791543448312431591">ထည့်ရန်</translation>
 <translation id="7798392620021911922">တဘ် <ph name="TAB_COUNT" /> ခု ပြန်ယူထားသည်</translation>
 <translation id="780301667611848630">မလိုပါ</translation>
-<translation id="7805768142964895445">အခြေအနေ</translation>
 <translation id="7808889146555843082">ဤစကားဝှက်ကို ဖျက်ခြင်းဖြင့် <ph name="SITE" /> ရှိ သင့်အကောင့်ကို ဖျက်မည်မဟုတ်ပါ။ အခြားသူများ၏ ရန်မှကာကွယ်ရန် သင့်စကားဝှက်ကို ပြောင်းပါ သို့မဟုတ် <ph name="SITE" /> ရှိ သင့်အကောင့်ကို ဖျက်ပါ။</translation>
 <translation id="7810647596859435254">… ဖြင့် ဖွင့်ရန်</translation>
 <translation id="7815484226266492798">ဖန်သားပြင်ဓာတ်ပုံ အရှည်</translation>
@@ -1381,11 +1372,6 @@
 <translation id="8461694314515752532">စင့်ခ်လုပ်ထားသော ဒေတာများကို သင့်ကိုယ်ပိုင် စင့်ခ်စကားဝှက်ဖြင့် အသွင်ဝှက်ရန်</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> ကို အင်တာနက် ချိတ်ဆက်ထားခြင်း ရှိမရှိ စစ်ဆေးပါ</translation>
 <translation id="8473863474539038330">လိပ်စာများနှင့် အခြားအရာများ</translation>
-<translation id="8481921391193215807">ဖွင့်ထားသောအခါ ဝဘ်ဆိုက်များသည် ၎င်းတို့၏အကြောင်းအရာနှင့် ဝန်ဆောင်မှုတို့ပေးရန် ဤနေရာတွင်ပြထားသော ပုဂ္ဂိုလ်ရေးလုံခြုံမှုထိန်းသိမ်းသည့် နည်းလမ်းများကို အသုံးပြုနိုင်သည်။ ၎င်းတို့တွင် ဝဘ်ဆိုက်အမျိုးမျိုးတွင် ခြေရာခံခြင်းအတွက် အစားထိုးမှုများ ပါဝင်သည်။ နောက်ထပ်အစမ်းသုံးမှုများကို အချိန်နှင့်အမျှ ထပ်ထည့်သွားပါမည်။
-
-<ph name="BEGIN_LIST_ITEM1" />ကြော်ငြာရှင်များနှင့် ထုတ်ဝေသူများသည် FLoC ကို သုံးနိုင်သည်။<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />ကြော်ငြာရှင်များနှင့် ထုတ်ဝေသူများသည် ဝဘ်ဆိုက်များပေါ်တွင် သင့်ကိုခြေရာမခံသည့်နည်းလမ်းဖြင့် ကြော်ငြာများ၏ထိရောက်မှုကို လေ့လာနိုင်သည်။<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">အစမ်းသုံးလုပ်ဆောင်ချက်များကို ဖွင့်ထားသည်</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">မှတ်တမ်းစာမျက်နှာကို ဖွင့်ရန်</translation>
@@ -1431,9 +1417,7 @@
 <translation id="8664979001105139458">ဖိုင်အမည် ရှိပြီးသားဖြစ်သည်</translation>
 <translation id="8666759526542103597">ဘရောင်ဇာအခြေခံ ကြော်ငြာ စိတ်ကြိုက်သတ်မှတ်ခြင်းအကြောင်း</translation>
 <translation id="8676789164135894283">လက်မှတ်ထိုးဝင်မှု စိစစ်ချက်များ</translation>
-<translation id="867767487203716855">လာမည့် အပ်ဒိတ်</translation>
 <translation id="8683039184091909753">ပုံ</translation>
-<translation id="8683081248374354009">အဖွဲ့ကို ပြင်ဆင်သတ်မှတ်ရန်</translation>
 <translation id="869891660844655955">သက်တမ်း ကုန်ဆုံးရက်</translation>
 <translation id="8699120352855309748">ဤဘာသာစကားများကို ပြန်ဆိုရန် မကမ်းလှမ်းပါနှင့်</translation>
 <translation id="8712637175834984815">ရပါပြီ!</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
index 9f4cd720..c31c39e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">पछिल्लो घन्टा</translation>
 <translation id="1724977129262658800">आफ्नो पासवर्ड बदल्न अनलक गर्नुहोस्</translation>
 <translation id="1726477445370128854">Chrome ले उसलाई तपाईं जुन जुन पेज खोल्न सक्नुहुन्छ भन्ने लाग्छ ती पेज प्रिलोड गरेर राख्छ। यसले गर्दा तपाईं ती पेज छिटोछरितो रूपमा ब्राउज गर्न र खोज्न सक्नुहुन्छ</translation>
-<translation id="173522743738009831">प्राइभेसी स्यान्डबक्सका बारेमा</translation>
 <translation id="1736419249208073774">अन्वेषण गर्नुहोस्</translation>
 <translation id="1749561566933687563">तपाईंका पुस्तक चिन्हहरू सिंक गर्नुहोस्</translation>
 <translation id="1750259112639922169">ट्याब समूह - <ph name="TAB_COUNT" /> वटा ट्याब</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> सेकेन्ड बाँकी छ</translation>
 <translation id="2779651927720337254">डाउनलोड गर्न सकिएन</translation>
 <translation id="2781151931089541271">१ सेकेन्ड बाँकी छ</translation>
-<translation id="2788468313014644040">समूह नम्बर</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> ट्याब बन्द गरिने छ</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">आफ्नो <ph name="BEGIN_LINK" />Google खाता<ph name="END_LINK" /> मा सुरक्षित गरिएका पासवर्डहरू हेर्नुहोस् र व्यवस्थापन गर्नुहोस्</translation>
 <translation id="2818669890320396765">आफ्ना सबै डिभाइसमा पुस्तक चिन्हहरू प्राप्त गर्न साइन इन गरी सिंक गर्ने सुविधा अन गर्नुहोस्</translation>
 <translation id="2827278682606527653">फिड कार्ड मेनु आधा उचाइमा खुला छ</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">छवि सेयर गर्नुहोस्</translation>
 <translation id="3387650086002190359"><ph name="FILE_NAME" /> डाउनलोड फाइल प्रणाली त्रूटिका कारण असफल भयो।</translation>
 <translation id="3389286852084373014">पाठ ज्यादै ठुलो छ</translation>
-<translation id="3391512812407811893">प्राइभेसी स्यान्डबक्सको ट्रायल अवधि</translation>
 <translation id="3398320232533725830">पुस्तक चिन्ह प्रबन्धक खोल्नुहोस्</translation>
 <translation id="3407392651057365886">थप पेजहरू प्रिलोड गरेर राखिन्छ। अन्य साइटहरूले अनुरोध गरेका खण्डमा पेजहरू Google का सर्भरमार्फत प्रिलोड गरेर राखिन सक्छ।</translation>
 <translation id="3414952576877147120">आकार:</translation>
@@ -912,10 +908,6 @@
 <translation id="6000203700195075278">पुनः फलो गर्नुहोस्</translation>
 <translation id="6002122790816966947">तपाईंका डिभाइसहरू</translation>
 <translation id="6005538289190791541">सिफारिस गरिएको पासवर्ड</translation>
-<translation id="6032091552407840792">यो ट्रायल सुविधा <ph name="BEGIN_LINK" />केही क्षेत्र<ph name="END_LINK" />मा मात्र सक्रिय छ।</translation>
-<translation id="6033245666633565791">खुला वेबको जीवन्तता कायम राख्दै विभिन्न साइटमा प्रयोग गरिने क्रियाकलाप ट्र्याक गर्ने प्रविधिबाट तपाईंलाई सुरक्षित राख्नका निम्ति Chrome ले <ph name="BEGIN_LINK" />प्राइभेसी स्यान्डबक्स<ph name="END_LINK" />का सहायताले नयाँ प्रविधिहरू विकास गर्दै छ।
-
-प्राइभेसी स्यान्डबक्सका ट्रायल सुविधाहरू अझै पनि विकासकै चरणमा रहेका छन् र यी सुविधा निश्चित क्षेत्रहरूमा मात्र उपलब्ध छन्। साइटहरूले अहिलेका लागि तेस्रो पक्षीय कुकी जस्ता वेबका प्रचलित प्रविधिहरूको प्रयोग जारी राख्दै प्राइभेसी स्यान्डबक्स प्रयोग गरी हेर्न सक्छन्।</translation>
 <translation id="6039379616847168523">अर्को ट्याबमा जानुहोस्</translation>
 <translation id="6040143037577758943">बन्द गर्नुहोस्</translation>
 <translation id="604124094241169006">स्वचालित</translation>
@@ -1247,7 +1239,6 @@
 <translation id="7791543448312431591">थप्नुहोस्</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> वटा ट्याब रिस्टोर गरिए</translation>
 <translation id="780301667611848630">भयो, धन्यवाद</translation>
-<translation id="7805768142964895445">स्थिति</translation>
 <translation id="7808889146555843082">तपाईंले यो पासवर्ड मेटाउनुभयो भने <ph name="SITE" /> मा रहेको तपाईंको खाता मेटिने छैन। <ph name="SITE" /> मा रहेको तपाईंको खाता अन्य मान्छेहरूबाट सुरक्षित राख्न आफ्नो पासवर्ड परिवर्तन गर्नुहोस् वा उक्त खाता मेटाउनुहोस्।</translation>
 <translation id="7810647596859435254">निम्नमार्फत खोल्नुहोस्…</translation>
 <translation id="7815484226266492798">लामो स्क्रिनसट</translation>
@@ -1381,11 +1372,6 @@
 <translation id="8461694314515752532">सिंक गरिएको डेटालाई तपाईंको आफ्नै सिंक पासफ्रेजमार्फत इन्क्रिप्ट गर्नुहोस्</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> इन्टरनेटमा जोडिएको कुरा सुनिश्चित गर्नुहोस्</translation>
 <translation id="8473863474539038330">ठेगाना र थप कुराहरू</translation>
-<translation id="8481921391193215807">तपाईंले यो सुविधा अन गर्नुभयो भने साइटहरूले तिनका सामग्री तथा सेवा प्रदान गर्न गोपनीयता संरक्षण गर्ने यहाँ देखाइएका प्रविधिहरू प्रयोग गर्न सक्छन्। यसअन्तर्गत विभिन्न साइटहरूमा गरिने क्रियाकलाप ट्र्याक गर्ने प्रविधिको सट्टामा प्रयोग गर्न सकिने अन्य प्रविधिहरू पर्छन्। पछि थप ट्रायल सुविधाहरू समावेश गरिन सक्छन्।
-
-<ph name="BEGIN_LIST_ITEM1" />विज्ञापनदाता र प्रकाशकहरू FLoC प्रयोग गर्न सक्छन्।<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />विज्ञापनदाता र प्रकाशकहरू विभिन्न साइटहरूमा तपाईंले गर्ने क्रियाकलाप ट्र्याक नगरिकनै विज्ञापनको प्रभावकारिताका बारेमा अध्ययन गर्न सक्छन्।<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ट्रायल सुविधाहरू अन गरिएका छन्</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">इतिहासको पृष्ठ खोल्नुहोस्</translation>
@@ -1431,9 +1417,7 @@
 <translation id="8664979001105139458">यो नामको फाइल पहिलेदेखि नै विद्यमान छ</translation>
 <translation id="8666759526542103597">ब्राउजरमा आधारित विज्ञापनको पर्सनलाइजेसनका बारेमा जानकारी</translation>
 <translation id="8676789164135894283">साइन इन गर्न कार्यको पुष्टिसम्बन्धी सूचना</translation>
-<translation id="867767487203716855">अर्को अपडेट</translation>
 <translation id="8683039184091909753">फोटो</translation>
-<translation id="8683081248374354009">समूह रिसेट गर्नुहोस्</translation>
 <translation id="869891660844655955">समाप्ति मिति</translation>
 <translation id="8699120352855309748">यी भाषाहरू अनुवाद गर्ने प्रस्ताव नगरियोस्</translation>
 <translation id="8712637175834984815">भयो</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 0da47f4..93c5d54 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Afgelopen uur</translation>
 <translation id="1724977129262658800">Ontgrendel om je wachtwoord te bewerken</translation>
 <translation id="1726477445370128854">Je kunt sneller browsen en zoeken als Chrome pagina's vooraf laadt waarvan Chrome denkt dat je ze misschien gaat bezoeken</translation>
-<translation id="173522743738009831">Over Privacy Sandbox</translation>
 <translation id="1736419249208073774">Verkennen</translation>
 <translation id="1749561566933687563">Synchroniseer je bookmarks</translation>
 <translation id="1750259112639922169">Tabbladgroep: <ph name="TAB_COUNT" /> tabbladen</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> seconden resterend</translation>
 <translation id="2779651927720337254">mislukt</translation>
 <translation id="2781151931089541271">1 seconde resterend</translation>
-<translation id="2788468313014644040">Groepsnummer</translation>
 <translation id="2800066122460699237">Het tabblad <ph name="TAB_TITLE" /> wordt gesloten</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Bekijk en beheer opgeslagen wachtwoorden in je <ph name="BEGIN_LINK" />Google-account<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Log in en zet de synchronisatie aan om op al je apparaten toegang tot je bookmarks te hebben</translation>
 <translation id="2827278682606527653">Feedkaartmenu halve hoogte</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Afbeelding delen</translation>
 <translation id="3387650086002190359">Downloaden van <ph name="FILE_NAME" /> is mislukt door fouten in het bestandssysteem.</translation>
 <translation id="3389286852084373014">Tekst is te groot</translation>
-<translation id="3391512812407811893">Proeffuncties van Privacy Sandbox</translation>
 <translation id="3398320232533725830">Bookmarkbeheer openen</translation>
 <translation id="3407392651057365886">Er worden meer pagina's vooraf geladen. Pagina's kunnen op verzoek van andere sites vooraf worden geladen via de servers van Google.</translation>
 <translation id="3414952576877147120">Grootte:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Opnieuw volgen</translation>
 <translation id="6002122790816966947">Je apparaten</translation>
 <translation id="6005538289190791541">Voorgesteld wachtwoord</translation>
-<translation id="6032091552407840792">Deze proef is alleen actief in <ph name="BEGIN_LINK" />bepaalde regio's<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Met <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> ontwikkelt Chrome nieuwe technologieën om je te beschermen tegen tracking op verschillende sites terwijl het open web behouden blijft.
-
-Privacy Sandbox-proeven zijn nog actief in ontwikkeling en zijn beschikbaar in bepaalde regio's. Voorlopig kunnen sites Privacy Sandbox uitproberen en tegelijkertijd gebruik blijven maken van huidige webtechnologieën, zoals cookies van derden.</translation>
 <translation id="6039379616847168523">Naar het volgende tabblad gaan</translation>
 <translation id="6040143037577758943">Sluiten</translation>
 <translation id="604124094241169006">Automatisch</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Toevoegen</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> tabbladen hersteld</translation>
 <translation id="780301667611848630">Nee, bedankt</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Als je dit wachtwoord verwijdert, wordt je account op <ph name="SITE" /> niet verwijderd. Wijzig je wachtwoord of verwijder je account in <ph name="SITE" /> om het te beschermen.</translation>
 <translation id="7810647596859435254">Openen met…</translation>
 <translation id="7815484226266492798">Lang screenshot</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Gesynchroniseerde gegevens versleutelen met een eigen wachtwoordzin</translation>
 <translation id="8466613982764129868">Zorg dat <ph name="TARGET_DEVICE_NAME" /> is verbonden met internet</translation>
 <translation id="8473863474539038330">Adressen en meer</translation>
-<translation id="8481921391193215807">Als de functie aanstaat, kunnen sites de hier vermelde privacybeschermende technieken gebruiken om hun content en services aan te bieden. Hieronder vallen ook alternatieven voor tracking op verschillende sites. We kunnen in de loop van de tijd meer proeffuncties toevoegen.
-
-<ph name="BEGIN_LIST_ITEM1" />Adverteerders en uitgevers kunnen FLoC gebruiken.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Adverteerders en uitgevers kunnen de effectiviteit van advertenties onderzoeken zonder dat je bezoeken aan verschillende sites worden bijgehouden.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Proeffuncties staan aan</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">De pagina Geschiedenis openen</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Bestandsnaam bestaat al</translation>
 <translation id="8666759526542103597">Over browsergebaseerde advertentiepersonalisatie</translation>
 <translation id="8676789164135894283">Inlogverificaties</translation>
-<translation id="867767487203716855">Volgende update</translation>
 <translation id="8683039184091909753">afbeelding</translation>
-<translation id="8683081248374354009">Groep resetten</translation>
 <translation id="869891660844655955">Vervaldatum</translation>
 <translation id="8699120352855309748">Niet aanbieden om deze talen te vertalen</translation>
 <translation id="8712637175834984815">Begrepen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
index 1c296c46..0765f11 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Siste time</translation>
 <translation id="1724977129262658800">Lås opp for å redigere passordet ditt</translation>
 <translation id="1726477445370128854">Du kan surfe og søke raskere når Chrome forhåndslaster sider du kanskje kommer til å besøke</translation>
-<translation id="173522743738009831">Om Privacy Sandbox</translation>
 <translation id="1736419249208073774">Utforsk</translation>
 <translation id="1749561566933687563">Synkroniser bokmerkene dine</translation>
 <translation id="1750259112639922169">Fanegruppe – <ph name="TAB_COUNT" /> faner</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sekunder igjen</translation>
 <translation id="2779651927720337254">mislyktes</translation>
 <translation id="2781151931089541271">1 sekund igjen</translation>
-<translation id="2788468313014644040">Gruppenummer</translation>
 <translation id="2800066122460699237">Fanen <ph name="TAB_TITLE" /> blir lukket</translation>
-<translation id="2806840421670364300">FLoC (samlet læring i kohorter)</translation>
 <translation id="281504910091592009">Se og administrer lagrede passord i <ph name="BEGIN_LINK" />Google-kontoen<ph name="END_LINK" /> din</translation>
 <translation id="2818669890320396765">For å få bokmerkene dine på alle enhetene dine, logg på og slå på synkronisering</translation>
 <translation id="2827278682606527653">Feedkortmenyen er åpnet i halv høyde</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Del bildet</translation>
 <translation id="3387650086002190359">Nedlastingen av <ph name="FILE_NAME" /> ble avbrutt på grunn av filsystemfeil.</translation>
 <translation id="3389286852084373014">Teksten er for stor</translation>
-<translation id="3391512812407811893">Prøvefunksjoner i Privacy Sandbox</translation>
 <translation id="3398320232533725830">Åpne bokmerkebehandlingen</translation>
 <translation id="3407392651057365886">Flere sider forhåndslastes. Sider kan bli forhåndslastet via Googles tjenere når andre nettsteder ber om det.</translation>
 <translation id="3414952576877147120">Størrelse:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Følg på nytt</translation>
 <translation id="6002122790816966947">Enhetene dine</translation>
 <translation id="6005538289190791541">Foreslått passord</translation>
-<translation id="6032091552407840792">Denne utprøvingen er kun aktiv i <ph name="BEGIN_LINK" />enkelte regioner<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Med <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />utvikler Chrome nye teknologier for å sikre deg fra sporing på tvers av sider samtidig som det åpne nettet ivaretas.
-
-Utprøving av Privacy Sandbox er fremdeles under aktiv utvikling og er tilgjengelig i utvalgte regioner. Inntil videre kan nettsteder prøve prosessisolering for personvern samtidig som de fortsetter å bruke dagens netteknologier, som tredjeparts informasjonskapsler.</translation>
 <translation id="6039379616847168523">Gå til den neste fanen</translation>
 <translation id="6040143037577758943">Lukk</translation>
 <translation id="604124094241169006">Automatisk</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Legg til</translation>
 <translation id="7798392620021911922">Gjenopprettet <ph name="TAB_COUNT" /> faner</translation>
 <translation id="780301667611848630">Nei takk</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Sletting av dette passordet sletter ikke kontoen din på <ph name="SITE" />. Endre passordet eller slett kontoen på <ph name="SITE" /> for å beskytte den mot andre.</translation>
 <translation id="7810647596859435254">Åpne med…</translation>
 <translation id="7815484226266492798">Lang skjermdump</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Kryptér synkroniserte data med din egen passordfrase for synkronisering</translation>
 <translation id="8466613982764129868">Kontroller at <ph name="TARGET_DEVICE_NAME" /> er koblet til internett</translation>
 <translation id="8473863474539038330">Adresser med mer</translation>
-<translation id="8481921391193215807">Når dette er på, kan nettsteder bruke de personvernbevarende teknikkene som vises her, for å levere innhold og tjenester. Disse omfatter alternativer til sporing på tvers av nettsteder. Flere prøvefunksjoner kan bli lagt til over tid.
-
-<ph name="BEGIN_LIST_ITEM1" />Annonsører og utgivere kan bruke FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Annonsører og utgivere kan studere effektiviteten av annonser på en måte som ikke sporer deg på tvers av nettsteder.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Prøvefunksjoner er påslått</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Åpne loggsiden</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Filnavnet finnes allerede</translation>
 <translation id="8666759526542103597">Om nettleserbasert personlig tilpasning av annonser</translation>
 <translation id="8676789164135894283">Påloggingsbekreftelser</translation>
-<translation id="867767487203716855">Neste oppdatering</translation>
 <translation id="8683039184091909753">bilde</translation>
-<translation id="8683081248374354009">Tilbakestill gruppen</translation>
 <translation id="869891660844655955">Utløpsdato</translation>
 <translation id="8699120352855309748">Ikke tilby å oversette disse språkene</translation>
 <translation id="8712637175834984815">Skjønner</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
index 5da2005c..bea05a3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">ଶେଷ ଘଣ୍ଟାକର</translation>
 <translation id="1724977129262658800">ଆପଣଙ୍କ ପାସୱାର୍ଡ ଏଡିଟ୍ କରିବାକୁ ଅନଲକ୍ କରନ୍ତୁ</translation>
 <translation id="1726477445370128854">ଆପଣ ଭିଜିଟ କରିପାରନ୍ତି ବୋଲି Chrome ଭାବୁଥିବା ପୃଷ୍ଠାଗୁଡ଼ିକୁ ଏହା ପ୍ରିଲୋଡ କଲେ ଆପଣ ଶୀଘ୍ର ବ୍ରାଉଜ ଏବଂ ସନ୍ଧାନ କରିପାରିବେ</translation>
-<translation id="173522743738009831">ପ୍ରାଇଭେସି ସେଣ୍ଡବକ୍ସ ବିଷୟରେ</translation>
 <translation id="1736419249208073774">ଏକ୍ସପ୍ଲୋର୍‍ କରନ୍ତୁ</translation>
 <translation id="1749561566933687563">ନିଜର ବୁକ୍‌ମାର୍କ୍ସ ସିଙ୍କ୍ କରନ୍ତୁ</translation>
 <translation id="1750259112639922169">ଟାବ ଗ୍ରୁପ - <ph name="TAB_COUNT" />ଟି ଟାବ</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> ସେକେଣ୍ଡ ଅବଶିଷ୍ଟ ଅଛି</translation>
 <translation id="2779651927720337254">ବିଫଳ ହେଲା</translation>
 <translation id="2781151931089541271">1 ସେକେଣ୍ଡ ବାକି ଅଛି</translation>
-<translation id="2788468313014644040">ଗୋଷ୍ଠୀ ନମ୍ବର</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> ଟାବଟି ବନ୍ଦ ହୋଇଯିବ</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">ଆପଣଙ୍କର <ph name="BEGIN_LINK" />Google ଆକାଉଣ୍ଟ<ph name="END_LINK" />ରେ ସେଭ୍ ହୋ‍ଇଥିବା ପାସ୍‌ୱର୍ଡଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ ଓ ପରିଚାଳନା କରନ୍ତୁ।</translation>
 <translation id="2818669890320396765">ଆପଣଙ୍କର ସମସ୍ତ ଡିଭାଇସ୍‌ରେ ବୁକ୍‍ମାର୍କଗୁଡ଼ିକ ପ୍ରାପ୍ତ କରିବାକୁ, ସାଇନ୍‌ ଇନ୍‌ କରନ୍ତୁ ଏବଂ ସିଙ୍କ୍‌ ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ଛବି ସେୟାର୍ କରନ୍ତୁ</translation>
 <translation id="3387650086002190359">ଫାଇଲ୍ ସିଷ୍ଟମ୍‌ରେ ତ୍ରୁଟି ଥିବା ଯୋଗୁଁ <ph name="FILE_NAME" /> ଡାଉନ୍‌ଲୋଡ୍ ବିଫଳ ହେଲା।</translation>
 <translation id="3389286852084373014">ଟେକ୍ସଟ୍ ବହୁତ ଲମ୍ବା ଅଟେ</translation>
-<translation id="3391512812407811893">ପ୍ରାଇଭେସି ସେଣ୍ଡବକ୍ସ ଟ୍ରାଏଲ୍</translation>
 <translation id="3398320232533725830">ବୁକ୍‌ମାର୍କ ପରିଚାଳକ ଖୋଲନ୍ତୁ</translation>
 <translation id="3407392651057365886">ଅଧିକ ପୃଷ୍ଠାକୁ ପ୍ରିଲୋଡ କରାଯାଇଛି। ଅନ୍ୟ ସାଇଟଗୁଡ଼ିକ ଅନୁରୋଧ କଲେ ପୃଷ୍ଠାଗୁଡ଼ିକୁ Google ସର୍ଭରଗୁଡ଼ିକ ମାଧ୍ୟମରେ ପ୍ରିଲୋଡ କରାଯାଇପାରେ।</translation>
 <translation id="3414952576877147120">ଆକାର:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">ପୁଣି ଅନୁସରଣ କରନ୍ତୁ</translation>
 <translation id="6002122790816966947">ଆପଣଙ୍କ ଡିଭାଇସଗୁଡ଼ିକ</translation>
 <translation id="6005538289190791541">ପ୍ରସ୍ତାବିତ ପାସ୍‌ୱାର୍ଡ</translation>
-<translation id="6032091552407840792">ଏହି ଟ୍ରାଏଲ୍ କେବଳ <ph name="BEGIN_LINK" />କିଛି ଅଞ୍ଚଳ<ph name="END_LINK" />ରେ ସକ୍ରିୟ ଅଛି।</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> ସହିତ Chrome ଓପନ ୱେବକୁ ସଂରକ୍ଷିତ କରିବା ସମୟରେ କ୍ରସ୍-ସାଇଟ୍ ଟ୍ରାକିଂରୁ ଆପଣଙ୍କୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ନୂଆ ଟେକ୍ନୋଲୋଜିଗୁଡ଼ିକୁ ବିକଶିତ କରୁଛି।
-
-Privacy Sandbox ଟ୍ରାଏଲଗୁଡ଼ିକ ଏବେ ବି ବିକଶିତ ହେଉଛି ଏବଂ ଚୟନିତ ଅଞ୍ଚଳଗୁଡ଼ିକରେ ଉପଲବ୍ଧ ଅଛି। ବର୍ତ୍ତମାନ ପାଇଁ, ସାଇଟଗୁଡ଼ିକ ତୃତୀୟ-ପକ୍ଷ କୁକୀଗୁଡ଼ିକ ପରି ବର୍ତ୍ତମାନର ୱେବ୍ ଟେକ୍ନୋଲୋଜିଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବା ସମୟରେ Privacy Sandbox ବ୍ୟବହାର କରି ଦେଖିପାରେ।</translation>
 <translation id="6039379616847168523">ପରବର୍ତ୍ତୀ ଟାବ୍‌କୁ ଯାଆନ୍ତୁ</translation>
 <translation id="6040143037577758943">ବନ୍ଦ</translation>
 <translation id="604124094241169006">ସ୍ୱଚାଳିତ</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">ଯୋଡନ୍ତୁ</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" />ଟି ଟାବ୍ ରିଷ୍ଟୋର କରାଯାଇଛି</translation>
 <translation id="780301667611848630">ନାଁ, ଥାଉ</translation>
-<translation id="7805768142964895445">ସ୍ଥିତି</translation>
 <translation id="7808889146555843082">ଏହି ପାସୱାର୍ଡ ଡିଲିଟ୍ କରିବା ଦ୍ଵାରା <ph name="SITE" />ରେ ଥିବା ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ଡିଲିଟ୍ ହେବ ନାହିଁ। ଆପଣଙ୍କ ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ କରନ୍ତୁ କିମ୍ବା <ph name="SITE" />ରେ ଥିବା ଆପଣଙ୍କ ଆକାଉଣ୍ଟକୁ ଅନ୍ୟମାନଙ୍କ ଠାରୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ଏହାକୁ ଡିଲିଟ୍ କରନ୍ତୁ।</translation>
 <translation id="7810647596859435254">ଏଥିରେ ଖୋଲନ୍ତୁ…</translation>
 <translation id="7815484226266492798">ଲମ୍ବା ସ୍କ୍ରିନସଟ୍</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">ଆପଣ ନିଜର ସିଙ୍କ୍‌ ପାସ୍‌ଫ୍ରେଜ୍ ସହିତ ସିଙ୍କ୍ କରାଯାଇଥିବା ଡାଟାକୁ ଏନ୍‌କ୍ରିପ୍ଟ କରନ୍ତୁ।</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> ଇଣ୍ଟର୍ନେଟ୍ ସହ ସଂଯୁକ୍ତ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
 <translation id="8473863474539038330">ଠିକଣାଗୁଡ଼ିକ ଏବଂ ଅଧିକ</translation>
-<translation id="8481921391193215807">ଚାଲୁ ଥିଲେ, ସାଇଟଗୁଡ଼ିକ ସେଗୁଡ଼ିକର ବିଷୟବସ୍ତୁ ଓ ସେବା ପ୍ରଦାନ କରିବା ପାଇଁ ଏଠାରେ ଦେଖାଯାଇଥିବା ଗୋପନୀୟତା-ସଂରକ୍ଷଣ ସମ୍ବନ୍ଧିତ କୌଶଳଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରେ। ଏଥିରେ କ୍ରସ୍-ସାଇଟ୍ ଟ୍ରାକିଂର ବିକଳ୍ପଗୁଡ଼ିକ ଅନ୍ତର୍ଭୁକ୍ତ ଅଛି। ଅଧିକ ଟ୍ରାଏଲ୍ ସମୟ ଅନୁସାରେ ଯୋଗ କରାଯାଇପାରେ।
-
-<ph name="BEGIN_LIST_ITEM1" />ବିଜ୍ଞାପନଦାତା ଏବଂ ପବ୍ଲିସରମାନେ FLoC ବ୍ୟବହାର କରିପାରିବେ।<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />ବିଜ୍ଞାପନଦାତା ଏବଂ ପବ୍ଲିସରମାନେ ଏପରି ଉପାୟରେ ବିଜ୍ଞାପନଗୁଡ଼ିକର ପ୍ରଭାବକୁ ଅଧ୍ୟୟନ କରିପାରିବେ ଯାହା ଆପଣଙ୍କୁ ବିଭିନ୍ନ ସାଇଟରେ ଟ୍ରାକ୍ କରେ ନାହିଁ।<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ଟ୍ରାଏଲ୍ ଫିଚରଗୁଡ଼ିକ ଚାଲୁ ଅଛି</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ଇତିବୃତ୍ତି ପୃଷ୍ଠାକୁ ଖୋଲନ୍ତୁ</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ଫାଇଲ୍‌ର ନାମ ପୂର୍ବରୁ ଅଛି</translation>
 <translation id="8666759526542103597">ବ୍ରାଉଜର-ଆଧାରିତ ବିଜ୍ଞାପନ ପର୍ସନାଲାଇଜେସନ ବିଷୟରେ</translation>
 <translation id="8676789164135894283">ସାଇନ୍-ଇନ୍ ପାଇଁ ଯାଞ୍ଚକରଣ</translation>
-<translation id="867767487203716855">ପରବର୍ତ୍ତୀ ଅପଡେଟ୍</translation>
 <translation id="8683039184091909753">ଛବି</translation>
-<translation id="8683081248374354009">ଗୋଷ୍ଠୀ ରିସେଟ୍ କରନ୍ତୁ</translation>
 <translation id="869891660844655955">ମିଆଦ ଶେଷ ହେଉଥିବା ତାରିଖ</translation>
 <translation id="8699120352855309748">ଏହି ଭାଷାଗୁଡ଼ିକର ଅନୁବାଦ କରିବାକୁ ଅଫର୍ କରନ୍ତୁ ନାହିଁ</translation>
 <translation id="8712637175834984815">ବୁଝିଗଲି</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
index b099f0b..770644a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">ਪਿਛਲਾ ਘੰਟਾ</translation>
 <translation id="1724977129262658800">ਆਪਣੇ ਪਾਸਵਰਡ ਦਾ ਸੰਪਾਦਨ ਕਰਨ ਲਈ ਅਣਲਾਕ ਕਰੋ</translation>
 <translation id="1726477445370128854">Chrome ਮੁਤਾਬਕ ਜਿਨ੍ਹਾਂ ਪੰਨਿਆਂ 'ਤੇ ਤੁਸੀਂ ਜਾ ਸਕਦੇ ਹੋ ਜਦੋਂ ਇਹ ਉਨ੍ਹਾਂ ਨੂੰ ਪ੍ਰੀਲੋਡ ਕਰਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਬ੍ਰਾਊਜ਼ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਖੋਜ ਕਰ ਸਕਦੇ ਹੋ</translation>
-<translation id="173522743738009831">ਪ੍ਰਾਈਵੇਸੀ ਸੈਂਡਬਾਕਸ ਬਾਰੇ</translation>
 <translation id="1736419249208073774">ਪੜਚੋਲ ਕਰੋ</translation>
 <translation id="1749561566933687563">ਆਪਣੇ ਬੁੱਕਮਾਰਕ ਸਮਕਾਲੀ ਕਰੋ</translation>
 <translation id="1750259112639922169">ਟੈਬ ਗਰੁੱਪ - <ph name="TAB_COUNT" /> ਟੈਬ</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> ਸਕਿੰਟ ਬਾਕੀ</translation>
 <translation id="2779651927720337254">ਅਸਫਲ</translation>
 <translation id="2781151931089541271">1 ਸਕਿੰਟ ਬਾਕੀ</translation>
-<translation id="2788468313014644040">ਗਰੁੱਪ ਨੰਬਰ</translation>
 <translation id="2800066122460699237">ਟੈਬ <ph name="TAB_TITLE" /> ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">ਆਪਣੇ <ph name="BEGIN_LINK" />Google ਖਾਤੇ<ph name="END_LINK" /> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡ ਦੇਖੋ ਅਤੇ ਉਹਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="2818669890320396765">ਆਪਣੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਆਪਣੇ ਬੁੱਕਮਾਰਕ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਸਾਈਨ-ਇਨ ਕਰਕੇ ਸਿੰਕ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="2827278682606527653">ਫ਼ੀਡ ਕਾਰਡ ਮੀਨੂ ਅੱਧਾ ਖੁੱਲ੍ਹਾ ਹੈ</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">ਚਿਤਰ ਸਾਂਝੇ ਕਰੋ</translation>
 <translation id="3387650086002190359">ਫ਼ਾਈਲ ਸਿਸਟਮ ਗੜਬੜੀਆਂ ਦੇ ਕਾਰਨ <ph name="FILE_NAME" /> ਡਾਊਨਲੋਡ ਅਸਫ਼ਲ ਰਿਹਾ।</translation>
 <translation id="3389286852084373014">ਲਿਖਤ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵੱਡੀ ਹੈ</translation>
-<translation id="3391512812407811893">ਪ੍ਰਾਈਵੇਸੀ ਸੈਂਡਬਾਕਸ ਪਰਖਾਂ</translation>
 <translation id="3398320232533725830">ਬੁੱਕਮਾਰਕ ਪ੍ਰਬੰਧਕ ਖੋਲ੍ਹੋ</translation>
 <translation id="3407392651057365886">ਹੋਰ ਪੰਨੇ ਪ੍ਰੀਲੋਡ ਕੀਤੇ ਗਏ ਹਨ। ਦੂਜੀਆਂ ਸਾਈਟਾਂ ਵੱਲੋਂ ਬੇਨਤੀ ਕੀਤੇ ਜਾਣ 'ਤੇ ਪੰਨਿਆਂ ਨੂੰ Google ਸਰਵਰਾਂ ਰਾਹੀਂ ਪ੍ਰੀਲੋਡ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।</translation>
 <translation id="3414952576877147120">ਆਕਾਰ:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">ਮੁੜ-ਅਨੁਸਰਣ ਕਰੋ</translation>
 <translation id="6002122790816966947">ਤੁਹਾਡੇ ਡੀਵਾਈਸ</translation>
 <translation id="6005538289190791541">ਸੁਝਾਇਆ ਗਿਆ ਪਾਸਵਰਡ</translation>
-<translation id="6032091552407840792">ਇਹ ਪਰਖ ਸਿਰਫ਼ <ph name="BEGIN_LINK" />ਕੁਝ ਖੇਤਰਾਂ<ph name="END_LINK" /> ਵਿੱਚ ਹੀ ਕਿਰਿਆਸ਼ੀਲ ਹੈ।</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />ਪ੍ਰਾਈਵੇਸੀ ਸੈਂਡਬਾਕਸ<ph name="END_LINK" /> ਦੇ ਨਾਲ, Chrome ਨਵੀਆਂ ਤਕਨਾਲੋਜੀਆਂ ਦਾ ਵਿਕਾਸ ਕਰ ਰਿਹਾ ਹੈ, ਤਾਂਕਿ ਖੁੱਲੇ ਵੈੱਬ ਨੂੰ ਸੰਭਾਲ ਕੇ ਰੱਖਣ ਦੇ ਨਾਲ-ਨਾਲ ਤੁਹਾਨੂੰ ਕ੍ਰਾਸ-ਸਾਈਟ ਟਰੈਕਿੰਗ ਤੋਂ ਸੁਰੱਖਿਅਤ ਰੱਖਿਆ ਜਾ ਸਕੇ।
-
-ਪ੍ਰਾਈਵੇਸੀ ਸੈਂਡਬਾਕਸ ਪਰਖਾਂ ਅਜੇ ਵੀ ਵਿਕਾਸ ਅਧੀਨ ਹਨ ਅਤੇ ਚੁਣੇ ਗਏ ਖੇਤਰਾਂ ਵਿੱਚ ਉਪਲਬਧ ਹਨ। ਹੁਣ ਲਈ, ਸਾਈਟਾਂ ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਕੁਕੀਜ਼ ਵਰਗੀਆਂ ਮੌਜੂਦਾ ਵੈੱਬ ਤਕਨਾਲੋਜੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਪ੍ਰਾਈਵੇਸੀ ਸੈਂਡਬਾਕਸ ਨੂੰ ਅਜ਼ਮਾ ਸਕਦੀਆਂ ਹਨ।</translation>
 <translation id="6039379616847168523">ਅਗਲੀ ਟੈਬ 'ਤੇ ਜਾਓ</translation>
 <translation id="6040143037577758943">ਬੰਦ ਕਰੋ</translation>
 <translation id="604124094241169006">ਆਟੋਮੈਟਿਕ</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">ਜੋੜੋ</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> ਟੈਬਾਂ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="780301667611848630">ਨਹੀਂ ਧੰਨਵਾਦ</translation>
-<translation id="7805768142964895445">ਸਥਿਤੀ</translation>
 <translation id="7808889146555843082">ਇਸ ਪਾਸਵਰਡ ਨੂੰ ਮਿਟਾਉਣ ਨਾਲ <ph name="SITE" /> 'ਤੇ ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾਵੇਗਾ। ਇਸਨੂੰ ਹੋਰਾਂ ਤੋਂ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਲਈ ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲੋ ਜਾਂ <ph name="SITE" /> 'ਤੇ ਆਪਣਾ ਖਾਤਾ ਮਿਟਾਓ।</translation>
 <translation id="7810647596859435254">ਇਸ ਨਾਲ ਖੋਲ੍ਹੋ...</translation>
 <translation id="7815484226266492798">ਲੰਬਾ ਸਕ੍ਰੀਨਸ਼ਾਟ</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">ਆਪਣੇ ਖੁਦ ਦੇ ਸਿੰਕ ਪਾਸਫਰੇਜ਼ ਨਾਲ ਸਿੰਕ ਕੀਤੇ ਡਾਟੇ ਨੂੰ ਇਨਕ੍ਰਿਪਟ ਕਰੋ</translation>
 <translation id="8466613982764129868">ਪੱਕਾ ਕਰੋ ਕਿ <ph name="TARGET_DEVICE_NAME" /> ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਹੋਵੇ</translation>
 <translation id="8473863474539038330">ਪਤੇ ਅਤੇ ਹੋਰ</translation>
-<translation id="8481921391193215807">ਚਾਲੂ ਹੋਣ 'ਤੇ, ਸਾਈਟਾਂ ਆਪਣੀ ਸਮੱਗਰੀ ਅਤੇ ਸੇਵਾਵਾਂ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ ਇੱਥੇ ਦਿਖਾਈਆਂ ਗਈਆਂ ਪਰਦੇਦਾਰੀ-ਸੰਭਾਲਣ ਵਾਲੀਆਂ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀਆਂ ਹਨ। ਇਹਨਾਂ ਵਿੱਚ ਕ੍ਰਾਸ-ਸਾਈਟ ਟਰੈਕਿੰਗ ਦੇ ਵਿਕਲਪ ਸ਼ਾਮਲ ਹਨ। ਸਮੇਂ ਦੇ ਨਾਲ ਹੋਰ ਪਰਖਾਂ ਸ਼ਾਮਲ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।
-
-<ph name="BEGIN_LIST_ITEM1" />ਵਿਗਿਆਪਨਦਾਤੇ ਅਤੇ ਪ੍ਰਕਾਸ਼ਕ FLoC ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਨ।<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />ਵਿਗਿਆਪਨਦਾਤੇ ਅਤੇ ਪ੍ਰਕਾਸ਼ਕ ਵਿਗਿਆਪਨਾਂ ਦੀ ਪ੍ਰਭਾਵਕਤਾ ਦਾ ਅਧਿਐਨ ਅਜਿਹੇ ਤਰੀਕੇ ਨਾਲ ਕਰ ਸਕਦੇ ਹਨ ਜੋ ਤੁਹਾਨੂੰ ਸਾਈਟਾਂ 'ਤੇ ਟਰੈਕ ਨਹੀਂ ਕਰਦਾ।<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ਪਰਖ ਸੰਬੰਧੀ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਚਾਲੂ ਹਨ</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ਇਤਿਹਾਸ ਪੰਨਾ ਖੋਲ੍ਹੋ</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ਫ਼ਾਈਲ ਨਾਮ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</translation>
 <translation id="8666759526542103597">ਬ੍ਰਾਊਜ਼ਰ-ਆਧਾਰਿਤ ਵਿਗਿਆਪਨ ਵਿਅਕਤੀਗਤਕਰਨ ਬਾਰੇ</translation>
 <translation id="8676789164135894283">ਸਾਈਨ-ਇਨ ਲਈ ਪੁਸ਼ਟੀਕਰਨ</translation>
-<translation id="867767487203716855">ਅਗਲਾ ਅੱਪਡੇਟ</translation>
 <translation id="8683039184091909753">ਚਿੱਤਰ</translation>
-<translation id="8683081248374354009">ਗਰੁੱਪ ਰੀਸੈੱਟ ਕਰੋ</translation>
 <translation id="869891660844655955">ਮਿਆਦ ਪੁੱਗਣ ਦੀ ਤਾਰੀਖ</translation>
 <translation id="8699120352855309748">ਇਹਨਾਂ ਭਾਸ਼ਾਵਾਂ ਦਾ ਅਨੁਵਾਦ ਕਰਨ ਦੀ ਪੇਸ਼ਕਸ਼ ਨਾ ਕਰੋ</translation>
 <translation id="8712637175834984815">ਸਮਝ ਲਿਆ</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 b551d6b1..729fff0 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Ostatnia godzina</translation>
 <translation id="1724977129262658800">Odblokuj, aby edytować hasło</translation>
 <translation id="1726477445370128854">Przeglądanie i wyszukiwanie działa szybciej, gdy Chrome wstępnie wczytuje strony, które przewiduje, że możesz odwiedzić</translation>
-<translation id="173522743738009831">Piaskownica prywatności – informacje</translation>
 <translation id="1736419249208073774">Odkrywaj</translation>
 <translation id="1749561566933687563">Synchronizuj swoje zakładki</translation>
 <translation id="1750259112639922169">Grupa <ph name="TAB_COUNT" /> kart</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Pozostało: <ph name="SECONDS" /> s</translation>
 <translation id="2779651927720337254">Nie pobrano</translation>
 <translation id="2781151931089541271">Pozostała sekunda</translation>
-<translation id="2788468313014644040">Numer grupy</translation>
 <translation id="2800066122460699237">Zostanie zamknięta karta <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">Sfederowane uczenie się kohort</translation>
 <translation id="281504910091592009">Zapisane hasła znajdziesz na swoim <ph name="BEGIN_LINK" />koncie Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Aby korzystać ze swoich zakładek na wszystkich urządzeniach, zaloguj się i włącz synchronizację</translation>
 <translation id="2827278682606527653">Menu karty kanału – połowa wysokości</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Udostępnij zdjęcie</translation>
 <translation id="3387650086002190359">Nie udało się pobrać pliku <ph name="FILE_NAME" /> z powodu błędów systemu plików.</translation>
 <translation id="3389286852084373014">Tekst jest za długi</translation>
-<translation id="3391512812407811893">Wersje próbne w Piaskownicy prywatności</translation>
 <translation id="3398320232533725830">Otwórz menedżera zakładek</translation>
 <translation id="3407392651057365886">Wczytywanych jest więcej stron. Serwery Google mogą wstępnie wczytywać strony, gdy żądają tego inne witryny.</translation>
 <translation id="3414952576877147120">Rozmiar:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Ponownie dodaj do obserwowanych</translation>
 <translation id="6002122790816966947">Twoje urządzenia</translation>
 <translation id="6005538289190791541">Proponowane hasło</translation>
-<translation id="6032091552407840792">Wersja próbna jest dostępna tylko w <ph name="BEGIN_LINK" />niektórych regionach<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">W ramach <ph name="BEGIN_LINK" />Piaskownicy prywatności<ph name="END_LINK" /> Chrome rozwija nowe technologie chroniące przed śledzeniem w różnych witrynach przy zachowaniu otwartego charakteru internetu.
-
-Prace nad rozwojem Piaskownicy prywatności wciąż trwają, więc wersja próbna jest dostępna w wybranych regionach. Teraz witryny mogą ją wypróbować, korzystając nadal z obecnie stosowanych technologii sieciowych takich jak pliki cookie innych firm.</translation>
 <translation id="6039379616847168523">Przejdź do następnej karty</translation>
 <translation id="6040143037577758943">Zamknij</translation>
 <translation id="604124094241169006">Automatyczne</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Dodaj</translation>
 <translation id="7798392620021911922">Liczba przywróconych kart: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Nie, dziękuję</translation>
-<translation id="7805768142964895445">Stan</translation>
 <translation id="7808889146555843082">Usunięcie tego hasła nie spowoduje usunięcia Twojego konta w serwisie <ph name="SITE" />. Aby uniemożliwić innym osobom dostęp do konta w serwisie <ph name="SITE" />, usuń je lub zmień do niego hasło.</translation>
 <translation id="7810647596859435254">Otwórz za pomocą…</translation>
 <translation id="7815484226266492798">Długi zrzut ekranu</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Szyfruj synchronizowane dane własnym hasłem synchronizacji</translation>
 <translation id="8466613982764129868">Sprawdź, czy <ph name="TARGET_DEVICE_NAME" /> ma połączenie z internetem</translation>
 <translation id="8473863474539038330">Adresy i ustawienia</translation>
-<translation id="8481921391193215807">Gdy włączysz tę funkcję, witryny będą mogły dostarczać swoje treści i usługi, używając wymienionych tu technik chroniących prywatność. Obejmują one rozwiązania alternatywne dla śledzenia w witrynach. Z czasem może pojawić się więcej wersji próbnych.
-
-<ph name="BEGIN_LIST_ITEM1" />Reklamodawcy i wydawcy mogą korzystać ze sfederowanego uczenia się kohort (FLoC).<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Reklamodawcy i wydawcy mogą analizować skuteczność reklam, stosując metody niewymagające śledzenia Cię w witrynach.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Funkcje próbne są włączone</translation>
 <translation id="8485434340281759656"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
 <translation id="8489271220582375723">Otwórz stronę historii</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Ta nazwa pliku już istnieje</translation>
 <translation id="8666759526542103597">O personalizacji reklam na podstawie informacji z przeglądarki.</translation>
 <translation id="8676789164135894283">Weryfikacje logowania</translation>
-<translation id="867767487203716855">Następna aktualizacja</translation>
 <translation id="8683039184091909753">obraz</translation>
-<translation id="8683081248374354009">Resetuj grupę</translation>
 <translation id="869891660844655955">Data wygaśnięcia</translation>
 <translation id="8699120352855309748">Nie proponuj tłumaczenia tych języków</translation>
 <translation id="8712637175834984815">Rozumiem</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
index 6cc690da..143c5163 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Última hora</translation>
 <translation id="1724977129262658800">Desbloqueie para editar sua senha</translation>
 <translation id="1726477445370128854">Você pode navegar e fazer buscas mais rápido quando o Chrome pré-carrega páginas que acredita serem de seu interesse</translation>
-<translation id="173522743738009831">Sobre o Sandbox de privacidade</translation>
 <translation id="1736419249208073774">Explorar</translation>
 <translation id="1749561566933687563">Sincronize seus favoritos</translation>
 <translation id="1750259112639922169">Grupo de guias: <ph name="TAB_COUNT" /> guias</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> segundos restantes</translation>
 <translation id="2779651927720337254">falha</translation>
 <translation id="2781151931089541271">Um segundo restante</translation>
-<translation id="2788468313014644040">Número do grupo</translation>
 <translation id="2800066122460699237">A guia <ph name="TAB_TITLE" /> será fechada</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Ver e gerenciar as senhas salvas na sua <ph name="BEGIN_LINK" />Conta do Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Para ter seus favoritos em todos os seus dispositivos, faça login e ative a sincronização</translation>
 <translation id="2827278682606527653">O menu do card do feed está aberto pela metade</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Compartilhar imagem</translation>
 <translation id="3387650086002190359">Falha no download de <ph name="FILE_NAME" /> devido a erros do sistema de arquivos.</translation>
 <translation id="3389286852084373014">O texto está grande demais</translation>
-<translation id="3391512812407811893">Testes do Sandbox de privacidade</translation>
 <translation id="3398320232533725830">Abrir o gerenciador de favoritos</translation>
 <translation id="3407392651057365886">Mais páginas são pré-carregadas. As páginas podem ser pré-carregadas por servidores do Google quando solicitado por outros sites.</translation>
 <translation id="3414952576877147120">Tamanho:</translation>
@@ -914,10 +910,6 @@
 <translation id="6000203700195075278">Voltar a seguir</translation>
 <translation id="6002122790816966947">Seus dispositivos</translation>
 <translation id="6005538289190791541">Senha sugerida</translation>
-<translation id="6032091552407840792">Esse teste está disponível apenas em <ph name="BEGIN_LINK" />algumas regiões<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Com o <ph name="BEGIN_LINK" />Sandbox de privacidade<ph name="END_LINK" />, o Chrome está desenvolvendo novas tecnologias de proteção contra mecanismos de rastreamento entre sites, preservando uma Internet livre.
-
-Os testes dessa tecnologia ainda estão em desenvolvimento ativo e estão disponíveis apenas em algumas regiões. Por enquanto, os sites podem testar o Sandbox de privacidade enquanto continuam usando as tecnologias atuais da Web, como cookies de terceiros.</translation>
 <translation id="6039379616847168523">Ir para a próxima guia</translation>
 <translation id="6040143037577758943">Fechar</translation>
 <translation id="604124094241169006">Automático</translation>
@@ -1249,7 +1241,6 @@
 <translation id="7791543448312431591">Adicionar</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> guias restauradas</translation>
 <translation id="780301667611848630">Não</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Remover a senha não excluirá a conta em <ph name="SITE" />. Mude a senha ou exclua a conta em <ph name="SITE" /> para protegê-la.</translation>
 <translation id="7810647596859435254">Abrir com…</translation>
 <translation id="7815484226266492798">Captura de tela longa</translation>
@@ -1383,11 +1374,6 @@
 <translation id="8461694314515752532">Criptografar dados sincronizados com sua própria senha longa de sincronização</translation>
 <translation id="8466613982764129868">Verifique se o <ph name="TARGET_DEVICE_NAME" /> está conectado à Internet</translation>
 <translation id="8473863474539038330">Endereços e mais</translation>
-<translation id="8481921391193215807">Quando esse recurso estiver ativado, os sites poderão usar as técnicas de preservação de privacidade mostradas aqui para exibir conteúdo e serviços. Isso inclui alternativas ao rastreamento entre sites. Ao longo do tempo, é possível que outros testes sejam adicionados.
-
-<ph name="BEGIN_LIST_ITEM1" />Anunciantes e editores podem usar o FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Eles também podem analisar a eficácia dos anúncios sem rastrear suas ações em sites.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Os recursos de teste estão ativados</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Abrir Histórico</translation>
@@ -1433,9 +1419,7 @@
 <translation id="8664979001105139458">O nome do arquivo já existe</translation>
 <translation id="8666759526542103597">Sobre a personalização de anúncios com base no navegador</translation>
 <translation id="8676789164135894283">Verificações de login</translation>
-<translation id="867767487203716855">Próxima atualização</translation>
 <translation id="8683039184091909753">imagem</translation>
-<translation id="8683081248374354009">Redefinir grupo</translation>
 <translation id="869891660844655955">Validade</translation>
 <translation id="8699120352855309748">Não oferecer a opção de traduzir estes idiomas</translation>
 <translation id="8712637175834984815">Entendi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
index 8c3cc31..80a67a5 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Última hora</translation>
 <translation id="1724977129262658800">Desbloqueie para editar a palavra-passe</translation>
 <translation id="1726477445370128854">Pode explorar e pesquisar mais rapidamente quando o Chrome pré-carrega páginas que pensa que poderá visitar</translation>
-<translation id="173522743738009831">Acerca da Privacy Sandbox</translation>
 <translation id="1736419249208073774">Explorar</translation>
 <translation id="1749561566933687563">Sincronizar os marcadores</translation>
 <translation id="1750259112639922169">Grupo de separadores – <ph name="TAB_COUNT" /> separadores</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Faltam <ph name="SECONDS" /> segundos</translation>
 <translation id="2779651927720337254">falhou</translation>
 <translation id="2781151931089541271">Falta 1 segundo</translation>
-<translation id="2788468313014644040">Número do grupo</translation>
 <translation id="2800066122460699237">O separador <ph name="TAB_TITLE" /> será fechado</translation>
-<translation id="2806840421670364300">APC</translation>
 <translation id="281504910091592009">Veja e faça a gestão das palavras-passe guardadas na sua <ph name="BEGIN_LINK" />Conta Google<ph name="END_LINK" />.</translation>
 <translation id="2818669890320396765">Para obter os seus marcadores em todos os dispositivos, inicie sessão e ative a sincronização.</translation>
 <translation id="2827278682606527653">O menu do cartão do feed a meia altura.</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Partilhar imagem</translation>
 <translation id="3387650086002190359">A transferência de <ph name="FILE_NAME" /> falhou devido a erros do sistema de ficheiros.</translation>
 <translation id="3389286852084373014">O texto é demasiado grande</translation>
-<translation id="3391512812407811893">Avaliações da Privacy Sandbox</translation>
 <translation id="3398320232533725830">Abrir o gestor de marcadores</translation>
 <translation id="3407392651057365886">Mais páginas são pré-carregadas. As páginas podem ser pré-carregadas através dos servidores da Google quando solicitado por outros sites.</translation>
 <translation id="3414952576877147120">Tamanho:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Voltar a seguir</translation>
 <translation id="6002122790816966947">Os seus dispositivos</translation>
 <translation id="6005538289190791541">Palavra-passe sugerida</translation>
-<translation id="6032091552407840792">Esta avaliação está ativa apenas em <ph name="BEGIN_LINK" />algumas regiões<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Com a <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, o Chrome está a desenvolver novas tecnologias que protegem da monitorização entre sites, ao mesmo tempo que preservam a Web aberta.
-
-As avaliações da Privacy Sandbox ainda estão em desenvolvimento e estão disponíveis em regiões selecionadas. Por agora, os sites podem experimentar a Privacy Sandbox enquanto continuam a utilizar as tecnologias da Web atuais, como os cookies de terceiros.</translation>
 <translation id="6039379616847168523">Ir para o próximo separador</translation>
 <translation id="6040143037577758943">Fechar</translation>
 <translation id="604124094241169006">Automático</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Adicionar</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> separadores restaurados.</translation>
 <translation id="780301667611848630">Não, obrigado</translation>
-<translation id="7805768142964895445">Estado</translation>
 <translation id="7808889146555843082">Eliminar esta palavra-passe não elimina a sua conta em <ph name="SITE" />. Altere a palavra-passe ou elimine a sua conta em <ph name="SITE" /> para a manter protegida contra terceiros.</translation>
 <translation id="7810647596859435254">Abrir com…</translation>
 <translation id="7815484226266492798">Captura de ecrã longa</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Encriptar dados sincronizados com a sua própria frase de acesso de sincronização</translation>
 <translation id="8466613982764129868">Certifique-se de que o <ph name="TARGET_DEVICE_NAME" /> está ligado à Internet.</translation>
 <translation id="8473863474539038330">Moradas e mais</translation>
-<translation id="8481921391193215807">Quando esta opção está ativada, os sites podem utilizar as técnicas de preservação da privacidade mostradas aqui para fornecer o respetivo conteúdo e serviços. Estas incluem alternativas para a monitorização entre sites. Ao longo do tempo, podem ser adicionadas mais avaliações.
-
-<ph name="BEGIN_LIST_ITEM1" />Os anunciantes e os publicadores podem utilizar a APC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Os anunciantes e os publicadores podem estudar a eficácia dos anúncios sem monitorizar a sua navegação em sites.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">As funcionalidades de avaliação estão ativadas</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Abrir a página do histórico</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">O nome do ficheiro já existe</translation>
 <translation id="8666759526542103597">Acerca da personalização de anúncios com base no navegador</translation>
 <translation id="8676789164135894283">Validações de início de sessão</translation>
-<translation id="867767487203716855">Próxima atualização</translation>
 <translation id="8683039184091909753">imagem</translation>
-<translation id="8683081248374354009">Repor grupo</translation>
 <translation id="869891660844655955">Data de expiração</translation>
 <translation id="8699120352855309748">Não se disponibilizar para traduzir estes idiomas</translation>
 <translation id="8712637175834984815">Entendido</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 bd2cb57..4ee8ba4 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Ultima oră</translation>
 <translation id="1724977129262658800">Deblochează pentru a modifica parola</translation>
 <translation id="1726477445370128854">Poți să navighezi și să cauți mai repede când Chrome preîncarcă pagini pe care crede că le-ai putea accesa</translation>
-<translation id="173522743738009831">Despre Privacy Sandbox</translation>
 <translation id="1736419249208073774">Explorează</translation>
 <translation id="1749561566933687563">Sincronizează marcajele</translation>
 <translation id="1750259112639922169">Grup de file – <ph name="TAB_COUNT" /> file</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sec. rămase</translation>
 <translation id="2779651927720337254">nereușită</translation>
 <translation id="2781151931089541271">1 sec. rămasă</translation>
-<translation id="2788468313014644040">Numărul grupului</translation>
 <translation id="2800066122460699237">Fila <ph name="TAB_TITLE" /> va fi închisă</translation>
-<translation id="2806840421670364300">ÎFG</translation>
 <translation id="281504910091592009">Vezi și gestionează parolele salvate în <ph name="BEGIN_LINK" />Contul Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Pentru a accesa marcajele pe toate dispozitivele, conectează-te și activează sincronizarea</translation>
 <translation id="2827278682606527653">Meniul cardului din feed la jumătate din înălțime</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Trimite imaginea</translation>
 <translation id="3387650086002190359">Descărcarea fișierului <ph name="FILE_NAME" /> nu a reușit din cauza unor erori privind sistemul de fișiere.</translation>
 <translation id="3389286852084373014">Textul este prea mare</translation>
-<translation id="3391512812407811893">Perioadele de încercare pentru Privacy Sandbox</translation>
 <translation id="3398320232533725830">Deschide managerul de marcaje</translation>
 <translation id="3407392651057365886">Mai multe pagini sunt preîncărcate. Este posibil ca paginile să fie preîncărcate prin serverele Google atunci când alte site-uri solicită acest lucru.</translation>
 <translation id="3414952576877147120">Dimensiune:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Urmărește din nou</translation>
 <translation id="6002122790816966947">Dispozitivele tale</translation>
 <translation id="6005538289190791541">Parola sugerată</translation>
-<translation id="6032091552407840792">Această versiune de încercare este activă numai în <ph name="BEGIN_LINK" />anumite regiuni<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Cu <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome dezvoltă noi tehnologii care te apără de mecanismele de urmărire de pe mai multe site-uri, păstrând un web deschis.
-
-Versiunile de încercare Privacy Sandbox sunt încă în dezvoltare și sunt disponibile în anumite regiuni. Pentru moment, site-urile pot încerca Privacy Sandbox în timp ce folosesc mai departe tehnologiile web actuale, precum cookie-urile terțe.</translation>
 <translation id="6039379616847168523">Accesează fila următoare</translation>
 <translation id="6040143037577758943">Închide</translation>
 <translation id="604124094241169006">Automat</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Adaugă</translation>
 <translation id="7798392620021911922">S-au restabilit <ph name="TAB_COUNT" /> file</translation>
 <translation id="780301667611848630">Nu, mulțumesc</translation>
-<translation id="7805768142964895445">Stare</translation>
 <translation id="7808889146555843082">Prin ștergerea acestei parole, nu va fi șters și contul de pe <ph name="SITE" />. Schimbă-ți parola sau șterge contul din <ph name="SITE" /> ca să nu poată fi accesat de alte persoane.</translation>
 <translation id="7810647596859435254">Deschide cu…</translation>
 <translation id="7815484226266492798">Captură de ecran lungă</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Criptează datele sincronizate folosind propria expresie de acces pentru sincronizare</translation>
 <translation id="8466613982764129868">Asigură-te că <ph name="TARGET_DEVICE_NAME" /> este conectat la internet</translation>
 <translation id="8473863474539038330">Adrese și altele</translation>
-<translation id="8481921391193215807">Când opțiunea este activată, site-urile pot folosi tehnicile de păstrare a confidențialității indicate aici pentru a-și pune la dispoziție conținutul și serviciile. Acestea includ alternative la urmărirea pe mai multe site-uri. În timp se pot adăuga mai multe versiuni de încercare.
-
-<ph name="BEGIN_LIST_ITEM1" />Advertiserii și editorii pot folosi tehnologia ÎFG.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Advertiserii și editorii pot studia eficiența anunțurilor într-un mod care nu te urmărește pe site-uri.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Funcțiile de încercare sunt activate</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Deschide pagina Istoric</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Numele fișierului există deja</translation>
 <translation id="8666759526542103597">Despre Personalizarea anunțurilor bazată pe browser</translation>
 <translation id="8676789164135894283">Confirmarea conectării</translation>
-<translation id="867767487203716855">Următoarea actualizare</translation>
 <translation id="8683039184091909753">imagine</translation>
-<translation id="8683081248374354009">Resetează grupul</translation>
 <translation id="869891660844655955">Dată de expirare</translation>
 <translation id="8699120352855309748">Nu oferi traducerea pentru aceste limbi</translation>
 <translation id="8712637175834984815">Am înțeles</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
index be700f7..edc71cc9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Последний час</translation>
 <translation id="1724977129262658800">Чтобы изменить пароль, разблокируйте устройство</translation>
 <translation id="1726477445370128854">Предзагрузка страниц позволяет ускорить работу браузера Chrome.</translation>
-<translation id="173522743738009831">О Privacy Sandbox</translation>
 <translation id="1736419249208073774">Подробнее</translation>
 <translation id="1749561566933687563">Синхронизируйте закладки</translation>
 <translation id="1750259112639922169">Группа вкладок (вкладок: <ph name="TAB_COUNT" />)</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Осталось <ph name="SECONDS" /> сек.</translation>
 <translation id="2779651927720337254">ошибка</translation>
 <translation id="2781151931089541271">Осталась 1 сек.</translation>
-<translation id="2788468313014644040">Номер группы</translation>
 <translation id="2800066122460699237">Вкладка "<ph name="TAB_TITLE" />" будет закрыта.</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Просматривать сохраненные пароли и управлять ими можно на странице <ph name="BEGIN_LINK" />Аккаунт Google<ph name="END_LINK" />.</translation>
 <translation id="2818669890320396765">Чтобы получить доступ к закладкам на всех устройствах, войдите в аккаунт и включите синхронизацию.</translation>
 <translation id="2827278682606527653">Меню карточки из ленты открыто наполовину</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Поделиться изображением</translation>
 <translation id="3387650086002190359">Не удалось скачать файл <ph name="FILE_NAME" /> из-за ошибок файловой системы.</translation>
 <translation id="3389286852084373014">Сообщение слишком длинное</translation>
-<translation id="3391512812407811893">Пробные версии Privacy Sandbox</translation>
 <translation id="3398320232533725830">Открыть диспетчер закладок</translation>
 <translation id="3407392651057365886">Предзагружается больше страниц. Этот процесс может выполняться через серверы Google по запросу других сайтов.</translation>
 <translation id="3414952576877147120">Размер:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Снова подписаться</translation>
 <translation id="6002122790816966947">Ваши устройства</translation>
 <translation id="6005538289190791541">Предложенный пароль</translation>
-<translation id="6032091552407840792">Эта пробная функция доступна только в <ph name="BEGIN_LINK" />некоторых регионах<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> – инициатива Chrome по разработке новых технологий, которые позволят защитить пользователей от межсайтового отслеживания и при этом сохранить интернет открытым.
-
-Пробные функции Privacy Sandbox находятся на стадии разработки и доступны не во всех регионах. Пока сайты могут использовать Privacy Sandbox, не отказываясь от существующих веб-технологий, таких как сторонние файлы cookie.</translation>
 <translation id="6039379616847168523">Перейти к следующей вкладке</translation>
 <translation id="6040143037577758943">Закрыть</translation>
 <translation id="604124094241169006">Автоматически</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Добавить</translation>
 <translation id="7798392620021911922">Восстановлено вкладок: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Пропустить</translation>
-<translation id="7805768142964895445">Состояние</translation>
 <translation id="7808889146555843082">Это действие не приведет к удалению вашего аккаунта на сайте <ph name="SITE" />. Чтобы защитить от злоумышленников свои данные на сайте <ph name="SITE" />, удалите аккаунт или измените пароль.</translation>
 <translation id="7810647596859435254">Открыть с помощью...</translation>
 <translation id="7815484226266492798">Длинный скриншот</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Задать кодовую фразу для шифрования синхронизированных данных</translation>
 <translation id="8466613982764129868">Проверьте, подключено ли устройство <ph name="TARGET_DEVICE_NAME" /> к Интернету.</translation>
 <translation id="8473863474539038330">Адреса и другие данные</translation>
-<translation id="8481921391193215807">Если функции Privacy Sandbox включены, сайты могут использовать представленные здесь технологии, не нарушающие конфиденциальность, в том числе альтернативы межсайтовому отслеживанию. Со временем будет доступно больше пробных функций.
-
-<ph name="BEGIN_LIST_ITEM1" />Рекламодатели и издатели могут использовать технологию FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Рекламодатели и издатели могут оценивать эффективность рекламы, не отслеживая ваши действия на сайтах.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Функции включены</translation>
 <translation id="8485434340281759656"><ph name="DESCRIPTION" /> <ph name="FILE_SIZE" /> <ph name="SEPARATOR" /></translation>
 <translation id="8489271220582375723">Открыть страницу "История"</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Файл с таким именем уже существует.</translation>
 <translation id="8666759526542103597">О персонализации рекламы на основе данных браузера</translation>
 <translation id="8676789164135894283">Подтверждение входа</translation>
-<translation id="867767487203716855">Следующее обновление</translation>
 <translation id="8683039184091909753">Изображение</translation>
-<translation id="8683081248374354009">Сбросить настройки группы</translation>
 <translation id="869891660844655955">Срок действия</translation>
 <translation id="8699120352855309748">Не предлагать переводить страницы на этих языках</translation>
 <translation id="8712637175834984815">Готово</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
index 40a3ff0..de91b0eee 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">පසුගිය පැය</translation>
 <translation id="1724977129262658800">ඔබගේ මුරපදය සංස්කරණය කිරීමට අගුලු හරින්න</translation>
 <translation id="1726477445370128854">Chrome ඔබ පිවිසිය හැකි යැයි සිතන පිටු පූර්ව පූරණය කරන විට ඔබට වඩා වේගයෙන් බ්‍රවුස් කිරීමට සහ සෙවීමට හැකිය</translation>
-<translation id="173522743738009831">රහස්‍යතා සෑන්ඩ්බොක්ස් පිළිබඳව</translation>
 <translation id="1736419249208073774">ගවේෂණය කරන්න</translation>
 <translation id="1749561566933687563">ඔබගේ පොත් සලකුණු සමමුහුර්ත කරන්න</translation>
 <translation id="1750259112639922169">ටැබ සමූහය - ටැබ <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">තත්පර <ph name="SECONDS" />ක් ඉතිරියි</translation>
 <translation id="2779651927720337254">අසාර්ථකයි</translation>
 <translation id="2781151931089541271">තත්පර 1ක් ඉතිරියි</translation>
-<translation id="2788468313014644040">සමූහ අංකය</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> ටැබය වසනු ඇත</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">ඔබේ <ph name="BEGIN_LINK" />Google ගිණුම<ph name="END_LINK" /> තුළ සුරකින ලද මුරපද බලන්න සහ කළමනාකරණය කරන්න</translation>
 <translation id="2818669890320396765">ඔබේ සියලු උපාංග මත ඇති ඔබේ පිටුසන් ලබා ගැනීමට, පුරනය වී සමමුහුර්තය ක්‍රියාත්මක කරන්න</translation>
 <translation id="2827278682606527653">සංග්‍රහ කාඩ්පත් මෙනුව අඩක් උස</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">රූපය බෙදා ගන්න</translation>
 <translation id="3387650086002190359">පද්ධති දෝෂ නිසා <ph name="FILE_NAME" /> බාගැනීම අසාර්ථක විය.</translation>
 <translation id="3389286852084373014">පාඨය විශාල වැඩියි</translation>
-<translation id="3391512812407811893">රහස්‍යතා සෑන්ඩ්බොක්ස් අත්හදා බැලීම්</translation>
 <translation id="3398320232533725830">පිටුසන් කළමනාකරු විවෘත කරන්න</translation>
 <translation id="3407392651057365886">තවත් පිටු පූර්ව පූරණය කෙරේ. වෙනත් අඩවි විසින් ඉල්ලන විට Google සේවාදායක හරහා පිටු පූර්ව පූරණය කළ හැකිය.</translation>
 <translation id="3414952576877147120">ප්‍රමාණය:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">නැවත අනුගමනය කරන්න</translation>
 <translation id="6002122790816966947">ඔබගේ උපාංග</translation>
 <translation id="6005538289190791541">යෝජිත මුරපදය</translation>
-<translation id="6032091552407840792">මෙම අත්හදා බැලීම <ph name="BEGIN_LINK" />සමහර කලාප<ph name="END_LINK" /> තුළ පමණක් සක්‍රියයි.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />පෞද්ගලිකත්ව සෑන්ඩ්බොක්ස්<ph name="END_LINK" /> සමග, Chrome විවෘත වෙබය ආරක්ෂා කරන අතරම හරස් අඩවි හඹා යාමෙන් ඔබව ආරක්ෂා කිරීම සඳහා නව තාක්ෂණ සංවර්ධනය කරයි.
-
-පෞද්ගලිකත්ව සෑන්ඩ්බොක්ස් අත්හදා බැලීම් තවම සක්‍රිය සංවර්ධනයක පවතින අතර තෝරා ගත් කලාපවල ලබා ගත හැකිය. දැනට, අඩවි තෙවන පාර්ශ්ව කුකී වැනි වර්තමාන වෙබ් තාක්ෂණ දිගටම භාවිත කරන අතරතුර පෞද්ගලිකත්ව සෑන්ඩ්බොක්ස් අත්හදා බැලිය හැකිය.</translation>
 <translation id="6039379616847168523">ඊළඟ ටැබය වෙත පනින්න</translation>
 <translation id="6040143037577758943">වසන්න</translation>
 <translation id="604124094241169006">ස්වයංක්‍රීය</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">එක් කරන්න</translation>
 <translation id="7798392620021911922">ටැබ <ph name="TAB_COUNT" />ක් ප්‍රතිසාධනය කරන ලදි</translation>
 <translation id="780301667611848630">එපා, ස්තූතියි</translation>
-<translation id="7805768142964895445">තත්වය</translation>
 <translation id="7808889146555843082">මෙම මුරපදය මැකීම <ph name="SITE" /> මත ඔබේ ගිණුම මකන්නේ නැත. එය අන් අයගෙන් ආරක්ෂිතව තබා ගැනීමට ඔබේ මුරපදය වෙනස් කරන්න, නැති නම් <ph name="SITE" /> මත ඔබේ ගිණුම මකන්න.</translation>
 <translation id="7810647596859435254">විවෘත කරන්න...</translation>
 <translation id="7815484226266492798">දිගු තිර රුව</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">ඔබගේම සමමුහූර්ත මුර-වැකිකඩ සමඟ සමමුහූර්ත කළ දත්ත සංකේතන කරන්න</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> අන්තර්ජාලයට සම්බන්ධ කර තිබීම තහවුරු කර ගන්න</translation>
 <translation id="8473863474539038330">ලිපින සහ තව</translation>
-<translation id="8481921391193215807">ක්‍රියාත්මක විට, අඩවි ඒවායෙහි අන්තර්ගතය සහ සේවා සැපයීම සඳහා මෙහි පෙන්වා ඇති පෞද්ගලිකත්වය සංරක්ෂණය කිරීමේ ක්‍රම භාවිත කළ හැකිය. හරස්-අඩවි හඹා යාම සඳහා විකල්ප මේවාට ඇතුළත්ය. කාලයත් සමඟ තවත් අත්හදා බැලීම් එක් කළ හැකිය.
-
-<ph name="BEGIN_LIST_ITEM1" />වෙළඳ ප්‍රචාරකයන්ට සහ ප්‍රකාශකයින්ට FLoC භාවිත කළ හැකිය.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />වෙළඳ ප්‍රචාරකයන්ට සහ ප්‍රකාශකයින්ට අඩවි හරහා ඔබව හඹා නොයන ආකාරයකින් වෙළඳ දැන්වීම්වල ඵලදායීතාවය අධ්‍යයනය කළ හැකිය.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">අත්හදා බැලීමේ විශේෂාංග ක්‍රියාත්මකයි</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ඉතිහාසය පිටුව විවෘත කරන්න</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ගොනු නාමය දැනටමත් පවතී</translation>
 <translation id="8666759526542103597">බ්‍රවුසරය පදනම් කර ගත් වෙළඳ දැන්වීම් පුද්ගලිකකරණය ගැන</translation>
 <translation id="8676789164135894283">පිරීම් සත්‍යාපනය කිරීම්</translation>
-<translation id="867767487203716855">ඊළඟ යාවත්කාලීනය</translation>
 <translation id="8683039184091909753">රූපය</translation>
-<translation id="8683081248374354009">සමූහය යළි සකසන්න</translation>
 <translation id="869891660844655955">කල් ඉකුත් වීමේ දිනය:</translation>
 <translation id="8699120352855309748">මෙම භාෂා පරිවර්තනය කිරීමට පිරිනමන්න එපා</translation>
 <translation id="8712637175834984815">එය ලැබුණා</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
index a496bfe..c4fa830 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Posledná hodina</translation>
 <translation id="1724977129262658800">Ak chcete upraviť heslo, odomknite</translation>
 <translation id="1726477445370128854">Môžete prehliadať aj vyhľadávať rýchlejšie, keď Chrome prednačíta tie stránky, ktoré podľa neho možno navštívite</translation>
-<translation id="173522743738009831">Informácie o technológiách Privacy Sandbox</translation>
 <translation id="1736419249208073774">Preskúmať</translation>
 <translation id="1749561566933687563">Synchronizujte svoje záložky</translation>
 <translation id="1750259112639922169">Skupina kariet – počet kariet: <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Zostáva: <ph name="SECONDS" /> s</translation>
 <translation id="2779651927720337254">neúspešné</translation>
 <translation id="2781151931089541271">Zostáva: 1 s</translation>
-<translation id="2788468313014644040">Číslo skupiny</translation>
 <translation id="2800066122460699237">Karta <ph name="TAB_TITLE" /> bude zavretá</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Zobrazenie a správa uložených hesiel v <ph name="BEGIN_LINK" />účte Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Ak chcete získať záložky vo všetkých zariadeniach, prihláste sa a zapnite synchronizáciu</translation>
 <translation id="2827278682606527653">Ponuka karty feedu je otvorená do polovice</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Zdieľať obrázok</translation>
 <translation id="3387650086002190359">Súbor <ph name="FILE_NAME" /> sa nepodarilo stiahnuť z dôvodu chýb systému súborov.</translation>
 <translation id="3389286852084373014">Text je príliš veľký</translation>
-<translation id="3391512812407811893">Skúšobné verzie Privacy Sandbox</translation>
 <translation id="3398320232533725830">Otvorenie správcu záložiek</translation>
 <translation id="3407392651057365886">Prednačítavajú sa ďalšie stránky. Stránky môžu byť prednačítané prostredníctvom serverov Googlu, keď o ne požiadajú iné weby.</translation>
 <translation id="3414952576877147120">Veľkosť:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Znova sledovať</translation>
 <translation id="6002122790816966947">Vaše zariadenia</translation>
 <translation id="6005538289190791541">Navrhované heslo</translation>
-<translation id="6032091552407840792">Skúšobné obdobie je aktívne iba v <ph name="BEGIN_LINK" />niektorých oblastiach<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Pomocou technológií <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> vyvíja Chrome nové technológie, ktoré vás ochránia pred mechanizmami sledovania na rôznych weboch a súčasne zachovajú internet otvorený.
-
-Skúšobné obdobia technológií Privacy Sandbox sú stále v aktívnom vývoji a v niektorých oblastiach sú dostupné. Weby si zatiaľ môžu technológie Privacy Sandbox vyskúšať a zároveň používať aktuálne internetové technológie, ako sú súbory cookie tretej strany.</translation>
 <translation id="6039379616847168523">Prechod na ďalšiu kartu</translation>
 <translation id="6040143037577758943">Zavrieť</translation>
 <translation id="604124094241169006">Automatické</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Pridať</translation>
 <translation id="7798392620021911922">Bolo obnovených niekoľko kariet (<ph name="TAB_COUNT" />)</translation>
 <translation id="780301667611848630">Nie, ďakujem</translation>
-<translation id="7805768142964895445">Stav</translation>
 <translation id="7808889146555843082">Odstránením tohto hesla nevymažete svoj účet na webe <ph name="SITE" />. Ak chcete svoj účet chrániť pred ostatnými, odstráňte ho na webe <ph name="SITE" /> alebo zmeňte svoje heslo.</translation>
 <translation id="7810647596859435254">Otvoriť pomocou…</translation>
 <translation id="7815484226266492798">Dlhá snímka obrazovky</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Šifrovať synchronizované údaje pomocou vlastnej prístupovej frázy synchronizácie</translation>
 <translation id="8466613982764129868">Skontrolujte, či je zariadenie <ph name="TARGET_DEVICE_NAME" /> pripojené k internetu</translation>
 <translation id="8473863474539038330">Adresy a ďalšie údaje</translation>
-<translation id="8481921391193215807">Keď je táto možnosť zapnutá, weby môžu pomocou uvedených techník na ochranu súkromia poskytovať obsah a služby. Zahrnujú alternatívy sledovania medzi webmi. Postupne môžu byť pridané ďalšie skúšobné funkcie.
-
-<ph name="BEGIN_LIST_ITEM1" />Inzerenti a vlastníci môžu používať technológiu FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Inzerenti a vlastníci môžu preskúmať účinnosť reklám tak, že vás nebude možné na weboch sledovať.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Skúšobné funkcie sú zapnuté</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Otvorenie stránky História</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Súbor s takým názvom už existuje</translation>
 <translation id="8666759526542103597">Prispôsobenie reklám založené na prehliadači</translation>
 <translation id="8676789164135894283">Overenie prihlásenia</translation>
-<translation id="867767487203716855">Ďalšia aktualizácia</translation>
 <translation id="8683039184091909753">obrázok</translation>
-<translation id="8683081248374354009">Resetovať skupinu</translation>
 <translation id="869891660844655955">Koniec platnosti</translation>
 <translation id="8699120352855309748">Neponúkať preklad týchto jazykov</translation>
 <translation id="8712637175834984815">Dobre</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 953213a..f83ef6fe 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Zadnja ura</translation>
 <translation id="1724977129262658800">Odklenite, če želite urediti geslo.</translation>
 <translation id="1726477445370128854">Brskanje in iskanje sta hitrejša, ko Chrome vnaprej naloži strani, za katere meni, da jih boste morda obiskali.</translation>
-<translation id="173522743738009831">Zasebni peskovnik</translation>
 <translation id="1736419249208073774">Razišči</translation>
 <translation id="1749561566933687563">Sinhroniziranje zaznamkov</translation>
 <translation id="1750259112639922169">Skupina zavihkov – zavihki (<ph name="TAB_COUNT" />)</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Še <ph name="SECONDS" /> s</translation>
 <translation id="2779651927720337254">ni uspelo</translation>
 <translation id="2781151931089541271">Še 1 s</translation>
-<translation id="2788468313014644040">Številka skupine</translation>
 <translation id="2800066122460699237">Zavihek <ph name="TAB_TITLE" /> bo zaprt.</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Shranjena gesla si lahko ogledate in jih upravljate v <ph name="BEGIN_LINK" />Google Računu<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Če želite dostopati do zaznamkov v vseh napravah, se prijavite in vklopite sinhronizacijo</translation>
 <translation id="2827278682606527653">Meni kartice vira je odprt pri pol višine</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Skupna raba slike</translation>
 <translation id="3387650086002190359">Prenos datoteke <ph name="FILE_NAME" /> ni uspel zaradi napak v datotečnem sistemu.</translation>
 <translation id="3389286852084373014">Besedilo je preveliko</translation>
-<translation id="3391512812407811893">Preizkusi zasebnega peskovnika</translation>
 <translation id="3398320232533725830">Odpiranje upravitelja zaznamkov</translation>
 <translation id="3407392651057365886">Več strani je vnaprej naloženih. Strani so morda vnaprej naložene prek Googlovih strežnikov, ko tako zahtevajo druga spletna mesta.</translation>
 <translation id="3414952576877147120">Velikost:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Znova spremljaj</translation>
 <translation id="6002122790816966947">Vaše naprave</translation>
 <translation id="6005538289190791541">Predlagano geslo</translation>
-<translation id="6032091552407840792">Ta preizkus je aktiven samo v <ph name="BEGIN_LINK" />nekaterih regijah<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Pri Chromu v okviru pobude <ph name="BEGIN_LINK" />Zasebni peskovnik<ph name="END_LINK" /> razvijamo nove tehnologije, ki vas varujejo pred sledenjem na več spletnih mestih, hkrati pa skrbijo za ohranitev odprtosti spleta.
-
-Preizkusi peskovnika za zasebnost so še vedno v aktivnem razvoju in na voljo le na izbranih območjih. Spletna mesta lahko za zdaj preizkusijo peskovnik za zasebnost, obenem pa še naprej uporabljajo spletne tehnologije, kot so piškotki drugih ponudnikov.</translation>
 <translation id="6039379616847168523">Premik na naslednji zavihek</translation>
 <translation id="6040143037577758943">Zapri</translation>
 <translation id="604124094241169006">Samodejno</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Dodaj</translation>
 <translation id="7798392620021911922">Število obnovljenih zavihkov: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Ne, hvala</translation>
-<translation id="7805768142964895445">Stanje</translation>
 <translation id="7808889146555843082">Če izbrišete to geslo, ne izbrišete računa na <ph name="SITE" />. Če želite račun zaščititi pred drugimi, spremenite geslo ali izbrišite račun na <ph name="SITE" />.</translation>
 <translation id="7810647596859435254">Odpiranje z aplikacijo …</translation>
 <translation id="7815484226266492798">Dolg posnetek zaslona</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Šifriranje sinhroniziranih podatkov z vašim geslom za sinhronizacijo</translation>
 <translation id="8466613982764129868">Naprava <ph name="TARGET_DEVICE_NAME" /> mora biti povezana v internet</translation>
 <translation id="8473863474539038330">Naslovi in drugo</translation>
-<translation id="8481921391193215807">Če je funkcija vklopljena, lahko spletna mesta uporabljajo tukaj prikazane tehnike za ohranitev zasebnosti zaradi zagotavljanja svoje vsebine in storitev. Mednje sodijo nadomestne rešitve sledenju na več spletnih mestih. Sčasoma bo morda dodanih več preizkusov.
-
-<ph name="BEGIN_LIST_ITEM1" />Oglaševalci in izdajatelji lahko uporabljajo tehniko FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Oglaševalci in izdajatelji lahko preučujejo učinkovitost oglasov na način, ki vam ne sledi na spletnih mestih.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Funkcije preizkusa so omogočene</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /><ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Odpiranje strani z zgodovino</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Ime datoteke že obstaja</translation>
 <translation id="8666759526542103597">O osebnem prilagajanju oglasov na podlagi dejavnosti v brskalniku</translation>
 <translation id="8676789164135894283">Preverjanja prijave</translation>
-<translation id="867767487203716855">Naslednja posodobitev</translation>
 <translation id="8683039184091909753">slika</translation>
-<translation id="8683081248374354009">Ponastavi skupino</translation>
 <translation id="869891660844655955">Datum izteka</translation>
 <translation id="8699120352855309748">Ne ponudi prevajanja teh jezikov</translation>
 <translation id="8712637175834984815">Razumem</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
index 7b1f947..e02bfb3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Ora e fundit</translation>
 <translation id="1724977129262658800">Shkyçe për të modifikuar fjalëkalimin tënd</translation>
 <translation id="1726477445370128854">Mund të shfletosh dhe të kërkosh më shpejt kur Chrome ngarkon paraprakisht faqet që mendon se mund të vizitosh</translation>
-<translation id="173522743738009831">Rreth Privacy Sandbox</translation>
 <translation id="1736419249208073774">Eksploro</translation>
 <translation id="1749561566933687563">Sinkronizo faqeshënuesit e tu</translation>
 <translation id="1750259112639922169">Grupi i skedave - <ph name="TAB_COUNT" /> skeda</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sekonda të mbetura</translation>
 <translation id="2779651927720337254">dështoi</translation>
 <translation id="2781151931089541271">1 sekondë e mbetur</translation>
-<translation id="2788468313014644040">Numri i grupit</translation>
 <translation id="2800066122460699237">Skeda <ph name="TAB_TITLE" /> do të mbyllet</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Shfaq dhe menaxho fjalëkalimet e ruajtura në <ph name="BEGIN_LINK" />llogarinë tënde të Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Për të marrë faqeshënuesit në të gjitha pajisjet e tua, identifikohu dhe aktivizo sinkronizimin</translation>
 <translation id="2827278682606527653">Menyja e kartave të furnizimit në gjysmë lartësi</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Shpërndaje imazhin</translation>
 <translation id="3387650086002190359">Shkarkimi i <ph name="FILE_NAME" /> dështoi për shkak të gabimeve të sistemit të skedarëve.</translation>
 <translation id="3389286852084373014">Teksti është tepër i madh</translation>
-<translation id="3391512812407811893">Provat e Privacy Sandbox</translation>
 <translation id="3398320232533725830">Hap menaxherin e faqeshënuesve</translation>
 <translation id="3407392651057365886">Ngarkohen paraprakisht më shumë faqe. Faqet mund të ngarkohen paraprakisht nëpërmjet serverëve të Google kur kërkohen nga sajte të tjera.</translation>
 <translation id="3414952576877147120">Madhësia:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Ndiqe përsëri</translation>
 <translation id="6002122790816966947">Pajisjet e tua</translation>
 <translation id="6005538289190791541">Fjalëkalimi i sugjeruar</translation>
-<translation id="6032091552407840792">Kjo provë është aktive vetëm në <ph name="BEGIN_LINK" />disa rajone<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Me <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome po zhvillon teknologji të reja për të të mbrojtur nga gjurmimi nëpër sajtet e uebit, ndërkohë që vazhdon të ruajë uebin e hapur.
-
-Provat për Privacy Sandbox janë ende në zhvillim aktiv dhe ofrohen në rajone të zgjedhura. Për momentin, sajtet mund të provojnë Privacy Sandbox ndërkohë që vazhdojnë të përdorin teknologjitë aktuale të uebit si kukit e palëve të treta.</translation>
 <translation id="6039379616847168523">Kalo te skeda tjetër</translation>
 <translation id="6040143037577758943">Mbyll</translation>
 <translation id="604124094241169006">Automatike</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Shtoje</translation>
 <translation id="7798392620021911922">Rikthyer <ph name="TAB_COUNT" /> skeda</translation>
 <translation id="780301667611848630">Jo, faleminderit</translation>
-<translation id="7805768142964895445">Statusi</translation>
 <translation id="7808889146555843082">Fshirja e këtij fjalëkalimi nuk do ta fshijë llogarinë tënde në <ph name="SITE" />. Ndrysho fjalëkalimin ose fshi llogarinë tënde në <ph name="SITE" /> për ta mbajtur të sigurt nga të tjerët.</translation>
 <translation id="7810647596859435254">Hape me...</translation>
 <translation id="7815484226266492798">Pamje e gjatë e ekranit</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Enkripto të dhënat e sinkronizuara me frazën tënde të kalimit për sinkronizimin</translation>
 <translation id="8466613982764129868">Sigurohu që <ph name="TARGET_DEVICE_NAME" /> të jetë lidhur me internetin</translation>
 <translation id="8473863474539038330">Adresat dhe të tjera</translation>
-<translation id="8481921391193215807">Kur janë aktive, sajtet mund të përdorin teknikat e ruajtjes së privatësisë që shfaqen këtu për të ofruar përmbajtjen dhe shërbimet e tyre. Këto përfshijnë alternativa për gjurmimin ndërmjet sajteve. Mund të shtohen prova të tjera me kalimin e kohës.
-
-<ph name="BEGIN_LIST_ITEM1" />Reklamuesit dhe botuesit mund të përdorin teknikën FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Reklamuesit dhe botuesit mund të studiojnë efikasitetin e reklamave në një mënyrë që nuk të gjurmon nëpër sajtet e uebit.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Veçoritë e provës janë aktive</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Hap faqen e historikut</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Emri i skedarit ekziston tashmë</translation>
 <translation id="8666759526542103597">Rreth personalizimit të reklamave në bazë të shfletuesit</translation>
 <translation id="8676789164135894283">Verifikimet e identifikimit</translation>
-<translation id="867767487203716855">Përditësimi tjetër</translation>
 <translation id="8683039184091909753">imazhi</translation>
-<translation id="8683081248374354009">Rivendos grupin</translation>
 <translation id="869891660844655955">Data e skadimit</translation>
 <translation id="8699120352855309748">Mos ofro t'i përkthesh këto gjuhë</translation>
 <translation id="8712637175834984815">E kuptova</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
index 06f8f6e..eb63c70 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Poslednjih sat vremena</translation>
 <translation id="1724977129262658800">Otključajte da biste izmenili lozinku</translation>
 <translation id="1726477445370128854">Možete da pregledate i pretražujete brže kada Chrome predučita stranice za koje smatra da ćete ih možda posetiti</translation>
-<translation id="173522743738009831">O Zaštićenom okruženju privatnosti</translation>
 <translation id="1736419249208073774">Istraži</translation>
 <translation id="1749561566933687563">Sinhronizujte obeleživače</translation>
 <translation id="1750259112639922169">Grupa kartica – kartica: <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Još <ph name="SECONDS" /> sek</translation>
 <translation id="2779651927720337254">nije uspelo</translation>
 <translation id="2781151931089541271">Još 1 sek</translation>
-<translation id="2788468313014644040">Broj grupe</translation>
 <translation id="2800066122460699237">Kartica <ph name="TAB_TITLE" /> će biti zatvorena</translation>
-<translation id="2806840421670364300">Grupisani podaci o kohortama</translation>
 <translation id="281504910091592009">Pregledajte sačuvane lozinke i upravljajte njima na <ph name="BEGIN_LINK" />Google nalogu<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Da bi vam obeleživači bili dostupni na svim uređajima, prijavite se i uključite sinhronizaciju</translation>
 <translation id="2827278682606527653">Meni kartice fida je do polovine ekrana</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Deli sliku</translation>
 <translation id="3387650086002190359">Preuzimanje datoteke <ph name="FILE_NAME" /> nije uspelo zbog grešaka sistema datoteka.</translation>
 <translation id="3389286852084373014">Tekst je prevelik</translation>
-<translation id="3391512812407811893">Probe Zaštićenog okruženja privatnosti</translation>
 <translation id="3398320232533725830">Otvaranje Menadžera obeleživača</translation>
 <translation id="3407392651057365886">Više stranica se predučitava. Stranice mogu da budu predučitane preko Google servera kada to traže drugi sajtovi.</translation>
 <translation id="3414952576877147120">Veličina:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Ponovo prati</translation>
 <translation id="6002122790816966947">Uređaji</translation>
 <translation id="6005538289190791541">Predložena lozinka</translation>
-<translation id="6032091552407840792">Ova proba je aktivna samo u <ph name="BEGIN_LINK" />nekim regionima<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Sa <ph name="BEGIN_LINK" />Zaštićenim okruženjem privatnosti<ph name="END_LINK" /> Chrome razvija nove tehnologije koje će vas predostrožno zaštititi od praćenja na više sajtova uz očuvanje otvorenog veba.
-
-Aktivno programiranje proba Zaštićenog okruženja privatnosti je još uvek u toku i one su dostupne u određenim regionima. Sajtovi za sada mogu da isprobaju Zaštićeno okruženje privatnosti, a da i dalje koriste aktuelne veb-tehnologije poput kolačića trećih strana.</translation>
 <translation id="6039379616847168523">Prelazak na sledeću karticu</translation>
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="604124094241169006">Automatski</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Dodaj</translation>
 <translation id="7798392620021911922">Vraćene kartice: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Ne, hvala</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Brisanjem ove lozinke nećete izbrisati nalog na <ph name="SITE" />. Promenite lozinku ili izbrišite nalog na <ph name="SITE" /> da biste ga zaštitili od drugih.</translation>
 <translation id="7810647596859435254">Otvori pomoću…</translation>
 <translation id="7815484226266492798">Dugačak snimak ekrana</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Šifrujte sinhronizovane podatke pomoću sopstvene pristupne fraze za sinhronizaciju</translation>
 <translation id="8466613982764129868">Uverite se da je <ph name="TARGET_DEVICE_NAME" /> povezan na internet</translation>
 <translation id="8473863474539038330">Adrese i drugo</translation>
-<translation id="8481921391193215807">Kada je ovo uključeno, sajtovi mogu da koriste tehnike za očuvanje privatnosti koje su prikazane ovde da bi pružali sadržaj i usluge. One obuhvataju alternative za praćenje na više sajtova. Možda će tokom vremena biti dodato još proba.
-
-<ph name="BEGIN_LIST_ITEM1" />Oglašavači i objavljivači mogu da koriste grupisane podatke o kohortama.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Oglašavači i objavljivači mogu da proučavaju efikasnost oglasa na način koji vas ne prati na sajtovima.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Probne funkcije su uključene</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Otvaranje stranice istorija</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Ime datoteke već postoji</translation>
 <translation id="8666759526542103597">O personalizaciji oglasa na osnovu pregledača</translation>
 <translation id="8676789164135894283">Potvrde prijavljivanja</translation>
-<translation id="867767487203716855">Sledeće ažuriranje</translation>
 <translation id="8683039184091909753">slika</translation>
-<translation id="8683081248374354009">Resetuj grupu</translation>
 <translation id="869891660844655955">Datum isteka</translation>
 <translation id="8699120352855309748">Ne nudi prevod ovih jezika</translation>
 <translation id="8712637175834984815">Važi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
index 7325c5dd..7528791 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Последњих сат времена</translation>
 <translation id="1724977129262658800">Откључајте да бисте изменили лозинку</translation>
 <translation id="1726477445370128854">Можете да прегледате и претражујете брже када Chrome предучита странице за које сматра да ћете их можда посетити</translation>
-<translation id="173522743738009831">О Заштићеном окружењу приватности</translation>
 <translation id="1736419249208073774">Истражи</translation>
 <translation id="1749561566933687563">Синхронизујте обележиваче</translation>
 <translation id="1750259112639922169">Група картица – картица: <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Још <ph name="SECONDS" /> сек</translation>
 <translation id="2779651927720337254">није успело</translation>
 <translation id="2781151931089541271">Још 1 сек</translation>
-<translation id="2788468313014644040">Број групе</translation>
 <translation id="2800066122460699237">Картица <ph name="TAB_TITLE" /> ће бити затворена</translation>
-<translation id="2806840421670364300">Груписани подаци о кохортама</translation>
 <translation id="281504910091592009">Прегледајте сачуване лозинке и управљајте њима на <ph name="BEGIN_LINK" />Google налогу<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Да би вам обележивачи били доступни на свим уређајима, пријавите се и укључите синхронизацију</translation>
 <translation id="2827278682606527653">Мени картице фида је до половине екрана</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Дели слику</translation>
 <translation id="3387650086002190359">Преузимање датотеке <ph name="FILE_NAME" /> није успело због грешака система датотека.</translation>
 <translation id="3389286852084373014">Текст је превелик</translation>
-<translation id="3391512812407811893">Пробе Заштићеног окружења приватности</translation>
 <translation id="3398320232533725830">Отварање Менаџера обележивача</translation>
 <translation id="3407392651057365886">Више страница се предучитава. Странице могу да буду предучитане преко Google сервера када то траже други сајтови.</translation>
 <translation id="3414952576877147120">Величина:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Поново прати</translation>
 <translation id="6002122790816966947">Уређаји</translation>
 <translation id="6005538289190791541">Предложена лозинка</translation>
-<translation id="6032091552407840792">Ова проба је активна само у <ph name="BEGIN_LINK" />неким регионима<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Са <ph name="BEGIN_LINK" />Заштићеним окружењем приватности<ph name="END_LINK" /> Chrome развија нове технологије које ће вас предострожно заштитити од праћења на више сајтова уз очување отвореног веба.
-
-Активно програмирање проба Заштићеног окружења приватности је још увек у току и оне су доступне у одређеним регионима. Сајтови за сада могу да испробају Заштићено окружење приватности, а да и даље користе актуелне веб-технологије попут колачића трећих страна.</translation>
 <translation id="6039379616847168523">Прелазак на следећу картицу</translation>
 <translation id="6040143037577758943">Затвори</translation>
 <translation id="604124094241169006">Аутоматски</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Додај</translation>
 <translation id="7798392620021911922">Враћене картице: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Не, хвала</translation>
-<translation id="7805768142964895445">Статус</translation>
 <translation id="7808889146555843082">Брисањем ове лозинке нећете избрисати налог на <ph name="SITE" />. Промените лозинку или избришите налог на <ph name="SITE" /> да бисте га заштитили од других.</translation>
 <translation id="7810647596859435254">Отвори помоћу…</translation>
 <translation id="7815484226266492798">Дугачак снимак екрана</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Шифрујте синхронизоване податке помоћу сопствене приступне фразе за синхронизацију</translation>
 <translation id="8466613982764129868">Уверите се да је <ph name="TARGET_DEVICE_NAME" /> повезан на интернет</translation>
 <translation id="8473863474539038330">Адресе и друго</translation>
-<translation id="8481921391193215807">Када је ово укључено, сајтови могу да користе технике за очување приватности које су приказане овде да би пружали садржај и услуге. Оне обухватају алтернативе за праћење на више сајтова. Можда ће током времена бити додато још проба.
-
-<ph name="BEGIN_LIST_ITEM1" />Оглашавачи и објављивачи могу да користе груписане податке о кохортама.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Оглашавачи и објављивачи могу да проучавају ефикасност огласа на начин који вас не прати на сајтовима.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Пробне функције су укључене</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Отварање странице историја</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Име датотеке већ постоји</translation>
 <translation id="8666759526542103597">О персонализацији огласа на основу прегледача</translation>
 <translation id="8676789164135894283">Потврде пријављивања</translation>
-<translation id="867767487203716855">Следеће ажурирање</translation>
 <translation id="8683039184091909753">слика</translation>
-<translation id="8683081248374354009">Ресетуј групу</translation>
 <translation id="869891660844655955">Датум истека</translation>
 <translation id="8699120352855309748">Не нуди превод ових језика</translation>
 <translation id="8712637175834984815">Важи</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
index 1d58ddb..25a7297d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Senaste timmen</translation>
 <translation id="1724977129262658800">Lås upp om du vill redigera lösenordet</translation>
 <translation id="1726477445370128854">Du kan surfa och söka snabbare när Chrome läser in sidor som du kanske vill besöka i förväg</translation>
-<translation id="173522743738009831">Om Privacy Sandbox</translation>
 <translation id="1736419249208073774">Utforska</translation>
 <translation id="1749561566933687563">Synkronisera bokmärken</translation>
 <translation id="1750259112639922169">Flikgrupp – <ph name="TAB_COUNT" /> flikar</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sekunder kvar</translation>
 <translation id="2779651927720337254">misslyckades</translation>
 <translation id="2781151931089541271">1 sekund kvar</translation>
-<translation id="2788468313014644040">Gruppens nummer</translation>
 <translation id="2800066122460699237">Fliken <ph name="TAB_TITLE" /> stängs</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Visa och hantera sparade lösenord i <ph name="BEGIN_LINK" />Google-kontot<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Logga in och aktivera synkronisering om du vill ha dina bokmärken tillgängliga på alla enheter</translation>
 <translation id="2827278682606527653">Menyn med flödeskort är öppen och tar upp halva skärmen</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Dela bild</translation>
 <translation id="3387650086002190359">Det gick inte att ladda ned <ph name="FILE_NAME" /> på grund av filsystemfel.</translation>
 <translation id="3389286852084373014">Texten är för stor</translation>
-<translation id="3391512812407811893">Provfunktioner i Privacy Sandbox</translation>
 <translation id="3398320232533725830">Öppna bokmärkeshanteraren</translation>
 <translation id="3407392651057365886">Fler sidor läses in i förväg. Sidor kan läsas in i förväg via Googles servrar när de begärs av andra webbplatser.</translation>
 <translation id="3414952576877147120">Storlek:</translation>
@@ -914,10 +910,6 @@
 <translation id="6000203700195075278">Följ på nytt</translation>
 <translation id="6002122790816966947">Dina enheter</translation>
 <translation id="6005538289190791541">Föreslaget lösenord</translation>
-<translation id="6032091552407840792">Provperioden är endast aktiv i <ph name="BEGIN_LINK" />vissa regioner<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Med <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> utvecklar vi ny teknik för Chrome som skyddar dig från att bli spårad från webbplats till webbplats samtidigt som vi värnar den öppna webben.
-
-Provfunktioner i Privacy Sandbox är för närvarande under utveckling och tillgängliga i vissa regioner. För närvarande går det att testa Privacy Sandbox på en webbplats samtidigt som gängse webbteknik som tredjepartscookies används på den.</translation>
 <translation id="6039379616847168523">Hoppa till nästa flik</translation>
 <translation id="6040143037577758943">Stäng</translation>
 <translation id="604124094241169006">Automatisk</translation>
@@ -1249,7 +1241,6 @@
 <translation id="7791543448312431591">Lägg till</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> flikar har återställts</translation>
 <translation id="780301667611848630">Nej tack</translation>
-<translation id="7805768142964895445">Status</translation>
 <translation id="7808889146555843082">Att ta bort det här lösenordet innebär inte att ditt konto på <ph name="SITE" /> raderas. Skydda kontot genom att ändra lösenordet eller ta bort ditt konto på <ph name="SITE" />.</translation>
 <translation id="7810647596859435254">Öppna med …</translation>
 <translation id="7815484226266492798">Lång skärmbild</translation>
@@ -1383,11 +1374,6 @@
 <translation id="8461694314515752532">Kryptera synkroniserad data med en egen lösenfras för synkronisering</translation>
 <translation id="8466613982764129868">Kontrollera att <ph name="TARGET_DEVICE_NAME" /> är ansluten till internet</translation>
 <translation id="8473863474539038330">Adresser och annat</translation>
-<translation id="8481921391193215807">När det här alternativet är aktiverat kan webbplatser tillhandahålla sina tjänster med hjälp av de integritetsbevarande metoder som visas här. Det gäller bland annat alternativ till att spåra användaren från webbplats till webbplats. Fler provfunktioner kan läggas till med tiden.
-
-<ph name="BEGIN_LIST_ITEM1" />Annonsörer och utgivare kan använda FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Annonsörerna och utgivarna kan utvärdera annonsernas effektivitet med hjälp av andra metoder än att spåra dig från webbplats till webbplats.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Provfunktionerna är aktiverade</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Öppna historiksidan</translation>
@@ -1433,9 +1419,7 @@
 <translation id="8664979001105139458">Filnamnet finns redan</translation>
 <translation id="8666759526542103597">Om webbläsarbaserad annonsanpassning</translation>
 <translation id="8676789164135894283">Verifieringar för inloggning</translation>
-<translation id="867767487203716855">Nästa uppdatering</translation>
 <translation id="8683039184091909753">bild</translation>
-<translation id="8683081248374354009">Återställ gruppen</translation>
 <translation id="869891660844655955">Utgångsdatum</translation>
 <translation id="8699120352855309748">Erbjud inte att översätta dessa språk</translation>
 <translation id="8712637175834984815">Uppfattat</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
index 20b0caa..a9581e92 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Saa iliyopita</translation>
 <translation id="1724977129262658800">Fungua ili ubadilishe nenosiri lako</translation>
 <translation id="1726477445370128854">Unaweza kuvinjari na kutafuta kwa haraka zaidi Chrome inapopakia mapema kurasa ambazo inafikiri kuwa huenda ukazitembelea</translation>
-<translation id="173522743738009831">Kuhusu Utaratibu wa kuwekea vikwazo vya faragha</translation>
 <translation id="1736419249208073774">Gundua</translation>
 <translation id="1749561566933687563">Sawazisha alamisho zako</translation>
 <translation id="1750259112639922169">Kikundi cha vichupo - vichupo <ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Zimesalia sekunde <ph name="SECONDS" /></translation>
 <translation id="2779651927720337254">imeshindwa</translation>
 <translation id="2781151931089541271">Imesalia sekunde 1</translation>
-<translation id="2788468313014644040">Nambari ya kikundi</translation>
 <translation id="2800066122460699237">Kichupo cha <ph name="TAB_TITLE" /> kitafungwa</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Angalia na udhibiti manenosiri yaliyohifadhiwa kwenye <ph name="BEGIN_LINK" />Akaunti yako ya Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Ingia katika akaunti na uwashe kipengele cha usawazishaji ili upate alamisho zako kwenye vifaa vyako vyote</translation>
 <translation id="2827278682606527653">Menyu ya kadi ya mipasho inaonekana kiasi</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Shiriki picha</translation>
 <translation id="3387650086002190359">Kipakuliwa cha <ph name="FILE_NAME" /> hakijafaulu kwa sababu ya hitilafu za mfumo wa faili.</translation>
 <translation id="3389286852084373014">Maandishi ni makubwa mno</translation>
-<translation id="3391512812407811893">Majaribio ya Utaratibu wa kuwekea vikwazo vya faragha</translation>
 <translation id="3398320232533725830">Fungua kidhibiti cha alamisho</translation>
 <translation id="3407392651057365886">Kurasa nyingi zaidi hupakiwa mapema. Huenda kurasa zikapakiwa mapema kupitia seva za Google zinapoombwa na tovuti zingine.</translation>
 <translation id="3414952576877147120">Ukubwa:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Fuatilia tena</translation>
 <translation id="6002122790816966947">Vifaa vyako</translation>
 <translation id="6005538289190791541">Nenosiri linalopendekezwa</translation>
-<translation id="6032091552407840792">Jaribio hili linatumika katika <ph name="BEGIN_LINK" />baadhi ya maeneo<ph name="END_LINK" /> pekee.</translation>
-<translation id="6033245666633565791">Kwa kutumia <ph name="BEGIN_LINK" />Utaratibu wa kuwekea vikwazo vya faragha<ph name="END_LINK" />, Chrome inakuza teknolojia mpya zitakazokulinda dhidi ya ufuatiliaji wa data kwenye tovuti nyingi huku zikidumisha wavuti huria.
-
-Majaribio ya Utaratibu wa Kuwekea Vikwazo vya Faragha bado yanaendelea kutengenezwa na yanapatikana katika maeneo mahususi. Kwa sasa, tovuti zinaweza kujaribu Utaratibu wa Kuwekea Vikwazo vya Faragha huku zikiendelea kutumia teknolojia za sasa za wavuti kama vile vidakuzi vya wengine.</translation>
 <translation id="6039379616847168523">Nenda kwenye kichupo kinachofuata</translation>
 <translation id="6040143037577758943">Funga</translation>
 <translation id="604124094241169006">Otomatiki</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Ongeza</translation>
 <translation id="7798392620021911922">Umerejesha vichupo <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Hapana</translation>
-<translation id="7805768142964895445">Hali</translation>
 <translation id="7808889146555843082">Hatua ya kufuta nenosiri hili haitafuta akaunti yako kwenye <ph name="SITE" />. Badilisha nenosiri au futa akaunti yako kwenye <ph name="SITE" /> ili uilinde dhidi ya watu wengine.</translation>
 <translation id="7810647596859435254">Fungua ukitumia...</translation>
 <translation id="7815484226266492798">Picha Ndefu ya Skrini</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Simba data iliyosawazishwa kwa njia fiche ukitumia kauli yako ya siri ya usawazishaji</translation>
 <translation id="8466613982764129868">Hakikisha kwamba <ph name="TARGET_DEVICE_NAME" /> imeunganishwa kwenye intaneti</translation>
 <translation id="8473863474539038330">Anwani na zaidi</translation>
-<translation id="8481921391193215807">Wakati umewasha teknolojia hii, tovuti zinaweza kutumia mbinu zinazolinda faragha zilizoonyeshwa hapa kutoa maudhui na huduma. Mbinu hizi zitatumika badala ya zile za kufuatilia data kwenye tovuti nyingi. Huenda majaribio zaidi yakaongezwa baada ya muda.
-
-<ph name="BEGIN_LIST_ITEM1" />Watangazaji na wachapishaji wanaweza kutumia teknolojia ya FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Watangazaji na wachapishaji wanaweza kubaini ufanisi wa matangazo kwa njia ambayo haikufuatilii kwenye tovuti mbalimbali.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Vipengele vya jaribio vimewashwa</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Fungua ukurasa wa historia</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Jina la faili tayari lipo</translation>
 <translation id="8666759526542103597">Maelezo kuhusu kuweka mapendeleo ya matangazo kwenye kivinjari</translation>
 <translation id="8676789164135894283">Uthibitishaji wa kuingia katika akaunti</translation>
-<translation id="867767487203716855">Sasisho lijalo</translation>
 <translation id="8683039184091909753">picha</translation>
-<translation id="8683081248374354009">Badilisha kikundi</translation>
 <translation id="869891660844655955">Muda wake unakwisha tarehe</translation>
 <translation id="8699120352855309748">Usionyeshe chaguo la kutafsiri lugha hizi</translation>
 <translation id="8712637175834984815">Nimeelewa</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 fe8fdafc..1375e3ad 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">கடந்த ஒரு மணிநேரம்</translation>
 <translation id="1724977129262658800">கடவுச்சொல்லைத் திருத்த, அன்லாக் செய்யவும்</translation>
 <translation id="1726477445370128854">நீங்கள் பார்வையிடக்கூடிய பக்கங்களைக் கணித்து அவற்றை Chrome முன்கூட்டியே ஏற்றினால் நீங்கள் வேகமாக உலாவலாம் தேடலாம்</translation>
-<translation id="173522743738009831">தனியுரிமை சாண்ட்பாக்ஸைப் பற்றி</translation>
 <translation id="1736419249208073774">அறிக</translation>
 <translation id="1749561566933687563">உங்கள் புத்தகக்குறிகளை ஒத்திசைக்கவும்</translation>
 <translation id="1750259112639922169">பக்கக் குழு -<ph name="TAB_COUNT" /> பக்கங்கள்</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> வினாடிகள் மீதமுள்ளன</translation>
 <translation id="2779651927720337254">தோல்வியுற்றது</translation>
 <translation id="2781151931089541271">1 வினாடி மீதமுள்ளது</translation>
-<translation id="2788468313014644040">குழு எண்</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> பக்கம் மூடப்படும்</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">உங்கள் <ph name="BEGIN_LINK" />Google கணக்கில்<ph name="END_LINK" /> சேமிக்கப்பட்ட கடவுச்சொற்களைப் பார்த்து, நிர்வகிக்கவும்</translation>
 <translation id="2818669890320396765">உங்கள் அனைத்துச் சாதனங்களிலும் புத்தகக்குறிகளைப் பெற, உள்நுழைந்து, ஒத்திசைவை இயக்கவும்</translation>
 <translation id="2827278682606527653">ஃபீட் கார்டு மெனு பாதி அளவிற்குத் திறக்கப்பட்டுள்ளது</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">படத்தைப் பகிர்</translation>
 <translation id="3387650086002190359">ஃபைல் முறைமைப் பிழைகளால் <ph name="FILE_NAME" />ஐப் பதிவிறக்க முடியவில்லை.</translation>
 <translation id="3389286852084373014">உரையின் அளவு மிகப் பெரியதாக உள்ளது</translation>
-<translation id="3391512812407811893">சோதனையிலுள்ள தனியுரிமை சாண்ட்பாக்ஸ்</translation>
 <translation id="3398320232533725830">புக்மார்க்குகள் மேலாளரைத் திறக்கும்</translation>
 <translation id="3407392651057365886">இன்னும் அதிகமான பக்கங்களை முன்கூட்டியே ஏற்றும். பிற தளங்கள் கோரும்போது Google சேவையகங்கள் மூலம் பக்கங்கள் முன்கூட்டியே ஏற்றப்படக்கூடும்.</translation>
 <translation id="3414952576877147120">அளவு:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">மீண்டும் பின்தொடர்க</translation>
 <translation id="6002122790816966947">உங்கள் சாதனங்கள்</translation>
 <translation id="6005538289190791541">பரிந்துரைக்கப்படும் கடவுச்சொல்</translation>
-<translation id="6032091552407840792">இந்தச் சோதனை <ph name="BEGIN_LINK" />சில பிராந்தியங்களில்<ph name="END_LINK" /> மட்டுமே செயலில் இருக்கும்.</translation>
-<translation id="6033245666633565791">பொது இணையத்தைப் பாதுகாக்கும் அதே வேளையில் தளங்களுக்கு இடையே மாறும்போது கண்காணிக்கப்படுவதில் இருந்து உங்களைப் பாதுகாக்க, <ph name="BEGIN_LINK" />தனியுரிமை சாண்ட்பாக்ஸ்<ph name="END_LINK" /> மூலம் புதிய தொழில்நுட்பங்களை Chrome உருவாக்குகிறது.
-
-தனியுரிமை சாண்ட்பாக்ஸ் சோதனைகள் இன்னும் உருவாக்கத்தில் இருப்பதுடன் குறிப்பிட்ட பிராந்தியங்களில் மட்டுமே கிடைக்கின்றன. மூன்றாம் தரப்புக் குக்கீகள் போன்ற தற்போதைய இணையத் தொழில்நுட்பங்களைத் தொடர்ந்து பயன்படுத்தினாலும் தளங்கள் இப்போது தனியுரிமை சாண்ட்பாக்ஸைப் பயன்படுத்தக்கூடும்.</translation>
 <translation id="6039379616847168523">அடுத்த தாவலுக்குச் செல்லும்</translation>
 <translation id="6040143037577758943">மூடு</translation>
 <translation id="604124094241169006">தானியங்கு</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">சேர்</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> தாவல்கள் மீட்டெடுக்கப்பட்டன</translation>
 <translation id="780301667611848630">வேண்டாம்</translation>
-<translation id="7805768142964895445">நிலை</translation>
 <translation id="7808889146555843082">இந்தக் கடவுச்சொல்லை நீக்கினால் <ph name="SITE" /> டொமைனில் உள்ள உங்கள் கணக்கு நீக்கப்படாது. <ph name="SITE" /> டொமைனில் உள்ள உங்கள் கணக்கைப் பிறரிடமிருந்து பாதுகாக்க, உங்கள் கடவுச்சொல்லை மாற்றவும் அல்லது உங்கள் கணக்கை நீக்கவும்.</translation>
 <translation id="7810647596859435254">இதன் மூலம் திற…</translation>
 <translation id="7815484226266492798">நீண்ட ஸ்கிரீன்ஷாட்</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">ஒத்திசைக்கப்பட்ட தரவை எனது ஒத்திசைவுக் கடவுச்சொற்றொடர் மூலம் என்கிரிப்ட் செய்</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> சாதனம் இணையத்துடன் இணைக்கப்பட்டுள்ளதை உறுதி செய்யவும்</translation>
 <translation id="8473863474539038330">முகவரிகள் மற்றும் பல</translation>
-<translation id="8481921391193215807">இதை இயக்கினால் தளங்கள் அவற்றின் உள்ளடக்கத்தையும் சேவைகளையும் வழங்குவதற்காக இங்கே காட்டப்பட்டுள்ள தனியுரிமைப் பாதுகாப்புத் தொழில்நுட்பங்களைப் பயன்படுத்தக்கூடும். பல தளங்களிலிருந்து தரவுகளைக் கண்காணிக்கும் மாற்று முறைகளும் இவற்றில் அடங்கும். கூடுதல் செயல்பாடுகள் காலப்போக்கில் சேர்க்கப்படக்கூடும்.
-
-<ph name="BEGIN_LIST_ITEM1" />விளம்பரதாரர்களும் வெளியீட்டாளர்களும் FLoC தொழில்நுட்பத்தைப் பயன்படுத்தலாம்.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />தளங்களில் உலாவும்போது உங்களைக் கண்காணிக்காத வகையில் விளம்பரங்களின் செயல்திறனை விளம்பரதாரர்களும் வெளியீட்டாளர்களும் அறிந்துகொள்ளலாம்.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">சோதனையிலுள்ள அம்சங்கள் இயக்கப்பட்டுள்ளன</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">வரலாறு பக்கத்தைத் திறக்கும்</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ஃபைல் பெயர் ஏற்கனவே உள்ளது</translation>
 <translation id="8666759526542103597">உலாவி அடிப்படையிலான விளம்பரப் பிரத்தியேகமாக்கல் குறித்த ஓர் அறிமுகம்</translation>
 <translation id="8676789164135894283">உள்நுழைவுச் சரிபார்ப்புகள்</translation>
-<translation id="867767487203716855">அடுத்த புதுப்பிப்பு</translation>
 <translation id="8683039184091909753">படம்</translation>
-<translation id="8683081248374354009">குழு ஐடியை மீட்டமை</translation>
 <translation id="869891660844655955">காலாவதியாகும் தேதி</translation>
 <translation id="8699120352855309748">இந்த மொழிகளுக்கு மொழிபெயர்ப்பு வேண்டாம்:</translation>
 <translation id="8712637175834984815">புரிந்தது</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 ad0e41c..003ca6a 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">చివరి గంట</translation>
 <translation id="1724977129262658800">మీ పాస్‌వర్డ్‌ను ఎడిట్ చేయడానికి అన్‌లాక్ చేయండి</translation>
 <translation id="1726477445370128854">Chrome మీరు సందర్శించవచ్చని భావించే పేజీలను ప్రీ - లోడ్ చేసినప్పుడు మీరు వేగంగా బ్రౌజ్ చేయవచ్చు, సెర్చ్ చేయవచ్చు</translation>
-<translation id="173522743738009831">గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్ గురించి</translation>
 <translation id="1736419249208073774">అన్వేషించండి</translation>
 <translation id="1749561566933687563">మీ బుక్‌మార్క్‌లను సింక్ చేయండి</translation>
 <translation id="1750259112639922169">ట్యాబ్ గ్రూప్ - <ph name="TAB_COUNT" /> ట్యాబ్‌లు</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> సెకన్లు మిగిలి ఉంది</translation>
 <translation id="2779651927720337254">విఫలమైంది</translation>
 <translation id="2781151931089541271">1 సెకను మిగిలి ఉంది</translation>
-<translation id="2788468313014644040">గ్రూప్ నంబర్</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> ట్యాబ్ మూసివేయబడుతుంది</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">మీ <ph name="BEGIN_LINK" />Google ఖాతా<ph name="END_LINK" />లో సేవ్ చేసిన పాస్‌వర్డ్‌లను చూడండి, మేనేజ్ చేయండి</translation>
 <translation id="2818669890320396765">ఇక ఎప్పుడు ఎక్కడ బుక్‌మార్క్‌లను సెట్‌ చేసినా ఆటోమాటిక్‌గా మీ అన్ని పరికరాలలోనూ పొందాలనుకుంటే, సైన్ ఇన్ చేసి, సింక్‌ ఎంపికను ఆన్ చేయండి</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">చిత్రాన్ని షేర్‌ చేయి</translation>
 <translation id="3387650086002190359">ఫైల్ సిస్టమ్ లోపాల కారణంగా <ph name="FILE_NAME" /> డౌన్‌లోడ్ విఫలమైంది.</translation>
 <translation id="3389286852084373014">వచనం చాలా పెద్దదిగా ఉంది</translation>
-<translation id="3391512812407811893">గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్ ట్రయల్‌లు</translation>
 <translation id="3398320232533725830">బుక్‌మార్క్‌ల నిర్వాహికి తెరవండి</translation>
 <translation id="3407392651057365886">మరిన్ని పేజీలు ప్రీ - లోడ్ చేయబడ్డాయి. ఇతర సైట్‌లు ద్వారా రిక్వెస్ట్ చేసినప్పుడు పేజీలు Google సర్వర్‌ల ద్వారా ప్రీ - లోడ్ చేయబడవచ్చు.</translation>
 <translation id="3414952576877147120">సైజ్‌:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">మళ్లీ ఫాలో చేయి</translation>
 <translation id="6002122790816966947">మీ పరికరాలు</translation>
 <translation id="6005538289190791541">సూచించబడిన పాస్‌వర్డ్‌</translation>
-<translation id="6032091552407840792">ఈ ట్రయల్ <ph name="BEGIN_LINK" />కొన్ని ప్రాంతాలలో<ph name="END_LINK" /> మాత్రమే యాక్టివ్‌గా ఉంది.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్<ph name="END_LINK" />‌తో, Chrome మిమ్మల్ని వెబ్‌ను సంరక్షించేటప్పుడు క్రాస్-సైట్ ట్రాకింగ్ నుండి రక్షించడానికి కొత్త టెక్నాలజీలను డెవలప్ చేస్తుంది.
-
-గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్ ట్రయల్‌లు ఇప్పటికీ యాక్టివ్ డెవలప్‌మెంట్‌లో ఉన్నాయి, అలాగే ఎంచుకున్న ప్రాంతాలలో అందుబాటులో ఉన్నాయి. ప్రస్తుతానికి, సైట్‌లు థర్డ్-పార్టీ కుక్కీల వంటి ప్రస్తుత వెబ్ టెక్నాలజీలను ఉపయోగించడం కొనసాగిస్తూ గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్‌ను ట్రై చేయవచ్చు.</translation>
 <translation id="6039379616847168523">తదుపరి ట్యాబ్‌కు వెళ్లండి</translation>
 <translation id="6040143037577758943">మూసివేయి</translation>
 <translation id="604124094241169006">ఆటోమేటిక్‌గా</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">జోడించండి</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> ట్యాబ్‌లు రీస్టోర్ చేయబడ్డాయి</translation>
 <translation id="780301667611848630">వద్దు , ధన్యవాదాలు</translation>
-<translation id="7805768142964895445">స్థితి</translation>
 <translation id="7808889146555843082">ఈ పాస్‌వర్డ్‌ను తొలగించడం వలన <ph name="SITE" />లో మీ ఖాతా తొలగించబడదు. మీ ఖాతాను ఇతరుల నుండి కాపాడుకోవడానికి, మీ పాస్‌వర్డ్‌ను మార్చండి లేదా <ph name="SITE" />లో దానిని తొలగించండి.</translation>
 <translation id="7810647596859435254">దీనితో తెరువు…</translation>
 <translation id="7815484226266492798">పొడవైన స్క్రీన్‌షాట్</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">మీ స్వంత సింక్‌ రహస్య పదబంధంతో సింక్ చేయబడిన డేటాను ఎన్‌క్రిప్ట్ చేయండి</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> ఇంటర్నెట్‌కు కనెక్ట్ చేయబడి ఉందని నిర్ధారించుకోండి</translation>
 <translation id="8473863474539038330">అడ్రస్‌లు, మరికొన్ని వివరాలు</translation>
-<translation id="8481921391193215807">ఆన్ చేసినప్పుడు, సైట్‌లు వారి కంటెంట్, అలాగే సర్వీస్‌లను అందించడం కోసం, ఇక్కడ చూపిన గోప్యతా-సంరక్షణ పద్ధతులను ఉపయోగించవచ్చు. వీటిలో క్రాస్-సైట్ ట్రాకింగ్ ప్రత్యామ్నాయాలు కలిగి ఉంటాయి. కాలానుగుణంగా మరిన్ని ట్రయల్‌లు జోడించబడవచ్చు.
-
-<ph name="BEGIN_LIST_ITEM1" />అడ్వర్టయిజర్‌లు, పబ్లిషర్‌లు FLoCను ఉపయోగించవచ్చు.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />అడ్వర్టయిజర్‌లు, పబ్లిషర్‌లు సైట్‌లలో మిమ్మల్ని ట్రాక్ చేయని విధంగా యాడ్‌ల ప్రభావాన్ని అధ్యయనం చేయవచ్చు.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ట్రయల్ ఫీచర్‌లు ఆన్ చేయబడ్డాయి</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">హిస్టరీ పేజీని తెరవండి</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">ఫైల్ పేరు ఇప్పటికే ఉంది</translation>
 <translation id="8666759526542103597">బ్రౌజర్ ఆధారిత యాడ్ వ్యక్తిగతీకరణ గురించి</translation>
 <translation id="8676789164135894283">సైన్ ఇన్ వెరిఫికేషన్‌లు</translation>
-<translation id="867767487203716855">తర్వాతి అప్‌డేట్</translation>
 <translation id="8683039184091909753">ఇమేజ్</translation>
-<translation id="8683081248374354009">గ్రూప్‌ను రీసెట్ చేయండి</translation>
 <translation id="869891660844655955">గడువు తేదీ</translation>
 <translation id="8699120352855309748">ఈ భాషలను అనువాదం చేసే సదుపాయాన్ని అందించవద్దు</translation>
 <translation id="8712637175834984815">అర్థమైంది</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 ad9c4b5..862a4c3 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
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">ชั่วโมงที่แล้ว</translation>
 <translation id="1724977129262658800">ปลดล็อกเพื่อแก้ไขรหัสผ่าน</translation>
 <translation id="1726477445370128854">คุณจะท่องเว็บและค้นหาได้เร็วขึ้นเมื่อ Chrome โหลดหน้าเว็บที่คิดว่าคุณอาจจะเข้าชมไว้ล่วงหน้า</translation>
-<translation id="173522743738009831">เกี่ยวกับ Privacy Sandbox</translation>
 <translation id="1736419249208073774">สำรวจ</translation>
 <translation id="1749561566933687563">ซิงค์บุ๊กมาร์กของคุณ</translation>
 <translation id="1750259112639922169">กลุ่มแท็บ - <ph name="TAB_COUNT" /> แท็บ</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">เหลือ <ph name="SECONDS" /> วิ</translation>
 <translation id="2779651927720337254">ล้มเหลว</translation>
 <translation id="2781151931089541271">เหลือ 1 วิ</translation>
-<translation id="2788468313014644040">หมายเลขกลุ่ม</translation>
 <translation id="2800066122460699237">ระบบจะปิดแท็บ <ph name="TAB_TITLE" /></translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">ดูและจัดการรหัสผ่านที่บันทึกไว้ใน<ph name="BEGIN_LINK" />บัญชี Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">ลงชื่อเข้าใช้และเปิดการซิงค์เพื่อรับบุ๊กมาร์กในอุปกรณ์ทุกเครื่องของคุณ</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">แชร์รูปภาพ</translation>
 <translation id="3387650086002190359">การดาวน์โหลด <ph name="FILE_NAME" /> ล้มเหลวเพราะเกิดข้อผิดพลาดกับระบบไฟล์</translation>
 <translation id="3389286852084373014">ข้อความมีขนาดใหญ่เกินไป</translation>
-<translation id="3391512812407811893">ทดลองใช้ Privacy Sandbox</translation>
 <translation id="3398320232533725830">เปิดตัวจัดการบุ๊กมาร์ก</translation>
 <translation id="3407392651057365886">ระบบจะโหลดหน้าเว็บล่วงหน้าเพิ่มเติม ระบบอาจโหลดหน้าเว็บล่วงหน้าผ่านเซิร์ฟเวอร์ของ Google เมื่อเว็บไซต์อื่นๆ ขอ</translation>
 <translation id="3414952576877147120">ขนาด:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">ติดตามอีกครั้ง</translation>
 <translation id="6002122790816966947">อุปกรณ์ของคุณ</translation>
 <translation id="6005538289190791541">รหัสผ่านที่แนะนำ</translation>
-<translation id="6032091552407840792">การทดลองใช้นี้ใช้งานได้ใน<ph name="BEGIN_LINK" />บางภูมิภาค<ph name="END_LINK" />เท่านั้น</translation>
-<translation id="6033245666633565791">การใช้ <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> ช่วยให้ Chrome พัฒนาเทคโนโลยีใหม่ๆ เพื่อปกป้องคุณจากการติดตามข้ามเว็บไซต์ในขณะที่ยังคงรักษาความเปิดกว้างของเว็บไว้
-
-การทดลองใช้ Privacy Sandbox ยังคงอยู่ระหว่างการพัฒนาอย่างสุดความสามารถ และพร้อมให้ใช้งานแล้วในบางภูมิภาค ตอนนี้เว็บไซต์ต่างๆ อาจลองใช้ Privacy Sandbox ไปพร้อมกับการใช้เทคโนโลยีเว็บปัจจุบัน เช่น คุกกี้ของบุคคลที่สาม</translation>
 <translation id="6039379616847168523">ข้ามไปยังแท็บถัดไป</translation>
 <translation id="6040143037577758943">ปิด</translation>
 <translation id="604124094241169006">อัตโนมัติ</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">เพิ่ม</translation>
 <translation id="7798392620021911922">คืนค่าแท็บ <ph name="TAB_COUNT" /> แล้ว</translation>
 <translation id="780301667611848630">ไม่ ขอบคุณ</translation>
-<translation id="7805768142964895445">สถานะ</translation>
 <translation id="7808889146555843082">การลบรหัสผ่านนี้จะไม่ลบบัญชีของคุณใน <ph name="SITE" /> เปลี่ยนรหัสผ่านหรือลบบัญชีของคุณใน <ph name="SITE" /> เพื่อให้ปลอดภัยจากบุคคลอื่น</translation>
 <translation id="7810647596859435254">เปิดด้วย…</translation>
 <translation id="7815484226266492798">ภาพหน้าจอแบบยาว</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">เข้ารหัสลับข้อมูลที่ซิงค์ด้วยรหัสผ่านการซิงค์ของคุณเอง</translation>
 <translation id="8466613982764129868">ตรวจสอบว่า <ph name="TARGET_DEVICE_NAME" /> เชื่อมต่ออินเทอร์เน็ตอยู่</translation>
 <translation id="8473863474539038330">ที่อยู่และอื่นๆ</translation>
-<translation id="8481921391193215807">เมื่อเปิดไว้ เว็บไซต์อาจใช้เทคนิคการรักษาความเป็นส่วนตัวที่แสดงอยู่ที่นี่เพื่อจัดเตรียมเนื้อหาและให้บริการ ซึ่งรวมถึงทางเลือกในการติดตามข้ามเว็บไซต์ และอาจมีการเพิ่มช่วงทดลองใช้ในอนาคต
-
-<ph name="BEGIN_LIST_ITEM1" />ผู้ลงโฆษณาและผู้เผยแพร่โฆษณาใช้ FLoC ได้<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />ผู้ลงโฆษณาและผู้เผยแพร่โฆษณาจะศึกษาประสิทธิภาพของโฆษณาได้ในลักษณะที่ไม่ติดตามคุณข้ามเว็บไซต์<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ฟีเจอร์ช่วงทดลองใช้เปิดอยู่</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">เปิดหน้าประวัติการเข้าชม</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">มีชื่อไฟล์นี้อยู่แล้ว</translation>
 <translation id="8666759526542103597">เกี่ยวกับการปรับโฆษณาตามโปรไฟล์ของผู้ใช้ด้วยข้อมูลจากเบราว์เซอร์</translation>
 <translation id="8676789164135894283">การยืนยันการลงชื่อเข้าใช้</translation>
-<translation id="867767487203716855">การอัปเดตถัดไป</translation>
 <translation id="8683039184091909753">รูปภาพ</translation>
-<translation id="8683081248374354009">รีเซ็ตกลุ่ม</translation>
 <translation id="869891660844655955">วันหมดอายุ</translation>
 <translation id="8699120352855309748">ไม่ต้องเสนอการแปลภาษาเหล่านี้</translation>
 <translation id="8712637175834984815">สำเร็จ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
index 3387618..7edcfc6c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Son bir saat</translation>
 <translation id="1724977129262658800">Şifrenizi düzenlemek için kilidi açın</translation>
 <translation id="1726477445370128854">Chrome, ziyaret edebileceğinizi düşündüğü sayfaları önceden yüklediğinde daha hızlı göz atıp arama yapabilirsiniz</translation>
-<translation id="173522743738009831">Özel Korumalı Alan hakkında</translation>
 <translation id="1736419249208073774">Keşfet</translation>
 <translation id="1749561566933687563">Yer işaretlerinizi senkronize edin</translation>
 <translation id="1750259112639922169">Sekme grubu: <ph name="TAB_COUNT" /> sekme</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> sn. kaldı</translation>
 <translation id="2779651927720337254">başarısız</translation>
 <translation id="2781151931089541271">1 sn. kaldı</translation>
-<translation id="2788468313014644040">Grup numarası</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> sekmesi kapatılacak</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google Hesabınızdaki<ph name="END_LINK" /> kayıtlı şifrelerinizi görüntüleyin ve yönetin.</translation>
 <translation id="2818669890320396765">Yer işaretlerinizi tüm cihazlarınızda almak için oturum açın ve senkronizasyonu etkinleştirin</translation>
 <translation id="2827278682606527653">Akış kartı menüsü yarıya kadar açık</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Resmi paylaş</translation>
 <translation id="3387650086002190359">Dosya sistemi hataları nedeniyle <ph name="FILE_NAME" /> dosyası indirilemedi.</translation>
 <translation id="3389286852084373014">Metin çok büyük</translation>
-<translation id="3391512812407811893">Özel Korumalı Alan denemeleri</translation>
 <translation id="3398320232533725830">Yer işareti yöneticisini açar</translation>
 <translation id="3407392651057365886">Daha fazla sayfa önceden yüklenir. Diğer siteler istediğinde sayfalar Google sunucuları aracılığıyla önceden yüklenebilir.</translation>
 <translation id="3414952576877147120">Boyut:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Yeniden takip et</translation>
 <translation id="6002122790816966947">Cihazlarınız</translation>
 <translation id="6005538289190791541">Önerilen şifre</translation>
-<translation id="6032091552407840792">Bu deneme yalnızca <ph name="BEGIN_LINK" />bazı bölgelerde<ph name="END_LINK" /> etkindir.</translation>
-<translation id="6033245666633565791">Chrome, <ph name="BEGIN_LINK" />Özel Korumalı Alan<ph name="END_LINK" /> girişimi kapsamında, açık web'i korurken sizi siteler arası izlemeden koruyacak yeni teknolojiler geliştiriyor.
-
-Privacy Sandbox denemeleri, hâlâ aktif geliştirme aşamasında olup belirli bölgelerde kullanılmaktadır. Şimdilik, siteler üçüncü taraf çerezler gibi geçerli web teknolojilerini kullanmaya devam ederken Privacy Sandbox'ı deneyebilir.</translation>
 <translation id="6039379616847168523">Sonraki sekmeye gider</translation>
 <translation id="6040143037577758943">Kapat</translation>
 <translation id="604124094241169006">Otomatik</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Ekle</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> sekme geri yüklendi</translation>
 <translation id="780301667611848630">Hayır, teşekkürler</translation>
-<translation id="7805768142964895445">Durum</translation>
 <translation id="7808889146555843082">Bu şifre kaldırıldığında <ph name="SITE" /> üzerindeki hesabınız silinmez. <ph name="SITE" /> üzerindeki hesabınıza başka kişilerin ulaşmaması için şifrenizi değiştirin veya hesabı silin.</translation>
 <translation id="7810647596859435254">Birlikte aç…</translation>
 <translation id="7815484226266492798">Uzun Ekran Görüntüsü</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Senkronize edilen verileri kendi senkronizasyon parolanızla şifreleyin</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> cihazının internete bağlı olduğundan emin olun</translation>
 <translation id="8473863474539038330">Adresler ve daha fazlası</translation>
-<translation id="8481921391193215807">Etkinleştirildiğinde, siteler içeriklerini ve hizmetlerini sunmak için burada gösterilen gizliliği koruma tekniklerini kullanabilir. Bu teknikler, siteler arası izlemeye alternatif çözümler sağlar. Zaman içinde başka denemeler de eklenebilir.
-
-<ph name="BEGIN_LIST_ITEM1" />Reklamverenler ve yayıncılar FLoC'u kullanabilir.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Reklamverenler ve yayıncılar, sizi sitelerde izlemeden reklamların etkisini inceleyebilirler.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Deneme özellikleri açık</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Geçmiş sayfasını açar</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Dosya adı zaten mevcut</translation>
 <translation id="8666759526542103597">Tarayıcıya dayalı reklam kişiselleştirme hakkında</translation>
 <translation id="8676789164135894283">Oturum açma doğrulamaları</translation>
-<translation id="867767487203716855">Sonraki güncelleme</translation>
 <translation id="8683039184091909753">resim</translation>
-<translation id="8683081248374354009">Grubu sıfırla</translation>
 <translation id="869891660844655955">Son kullanma tarihi</translation>
 <translation id="8699120352855309748">Şu dilleri çevirmeyi önerme</translation>
 <translation id="8712637175834984815">Anlaşıldı</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
index a7f0f6b..9ee7f55 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Остання година</translation>
 <translation id="1724977129262658800">Розблокуйте, щоб змінити пароль</translation>
 <translation id="1726477445370128854">Ви можете шукати й переглядати контент швидше, коли Chrome попередньо завантажує сторінки, які ви, імовірно, захочете відвідати</translation>
-<translation id="173522743738009831">Про Privacy Sandbox</translation>
 <translation id="1736419249208073774">Огляд</translation>
 <translation id="1749561566933687563">Синхронізуйте свої закладки</translation>
 <translation id="1750259112639922169">Група вкладок – <ph name="TAB_COUNT" /> шт.</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Залишилося <ph name="SECONDS" /> с</translation>
 <translation id="2779651927720337254">не завантажено</translation>
 <translation id="2781151931089541271">Залишилась 1 с</translation>
-<translation id="2788468313014644040">Номер групи</translation>
 <translation id="2800066122460699237">Вкладку "<ph name="TAB_TITLE" />" буде закрито</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">Переглядайте збережені паролі й керуйте ними в <ph name="BEGIN_LINK" />обліковому записі Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Щоб мати доступ до закладок на всіх своїх пристроях, увійдіть в обліковий запис і ввімкніть синхронізацію</translation>
 <translation id="2827278682606527653">Меню картки зі стрічки відкрито на половину висоти</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Поділитися зображенням</translation>
 <translation id="3387650086002190359">Файл <ph name="FILE_NAME" /> не завантажено через помилки файлової системи.</translation>
 <translation id="3389286852084373014">SMS-повідомлення завелике</translation>
-<translation id="3391512812407811893">Пробні версії Privacy Sandbox</translation>
 <translation id="3398320232533725830">Відкрити Диспетчер закладок</translation>
 <translation id="3407392651057365886">Більше сторінок будуть попередньо завантажуватися. Сторінки можуть попередньо завантажуватися через сервери Google, коли інші сайти надсилають запити на них.</translation>
 <translation id="3414952576877147120">Розмір:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Підписатися знову</translation>
 <translation id="6002122790816966947">Ваші пристрої</translation>
 <translation id="6005538289190791541">Запропонований пароль</translation>
-<translation id="6032091552407840792">Ця пробна версія доступна лише в <ph name="BEGIN_LINK" />певних регіонах<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">За допомогою <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> команда Chrome розробляє нові технології, які захистять вас від механізмів відстеження на різних сайтах, зберігаючи відкритість і незалежність мережі Інтернет.
-
-Пробні технології Privacy Sandbox ще перебувають на стадії розробки й доступні лише у вибраних регіонах. Наразі сайти можуть користуватися Privacy Sandbox, продовжуючи застосовувати наявні веб-технології (зокрема сторонні файли cookie).</translation>
 <translation id="6039379616847168523">Перейти до наступної вкладки</translation>
 <translation id="6040143037577758943">Закрити</translation>
 <translation id="604124094241169006">Автоматично</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Додати</translation>
 <translation id="7798392620021911922">Відновлено стільки вкладок: <ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Ні, дякую</translation>
-<translation id="7805768142964895445">Статус</translation>
 <translation id="7808889146555843082">Якщо видалити цей пароль, ваш обліковий запис на сайті <ph name="SITE" /> залишиться. Змініть пароль або видаліть обліковий запис на сайті <ph name="SITE" />, щоб захистити його.</translation>
 <translation id="7810647596859435254">Відкрити за допомогою…</translation>
 <translation id="7815484226266492798">Довгий знімок екрана</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Шифрувати синхронізовані дані за допомогою власної парольної фрази</translation>
 <translation id="8466613982764129868">Переконайтеся, що пристрій <ph name="TARGET_DEVICE_NAME" /> підключено до Інтернету</translation>
 <translation id="8473863474539038330">Адреси й інше</translation>
-<translation id="8481921391193215807">Коли ці функції ввімкнено, сайти можуть використовувати зазначені технології, що забезпечують конфіденційність, щоб пропонувати контент і сервіси. Це альтернативні способи вирішення проблеми збору даних про дії користувачів на різних сайтах. З часом з’являтимуться інші пробні функції.
-
-<ph name="BEGIN_LIST_ITEM1" />Рекламодавці й видавці можуть використовувати технологію FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Рекламодавці й видавці можуть досліджувати ефективність оголошень, не відстежуючи ваші дії на різних сайтах.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Пробні функції ввімкнено</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Відкрити сторінку "Історія"</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Файл із такою назвою вже існує</translation>
 <translation id="8666759526542103597">Про персоналізацію реклами на основі даних веб-переглядача</translation>
 <translation id="8676789164135894283">Підтвердження входу</translation>
-<translation id="867767487203716855">Наступне оновлення</translation>
 <translation id="8683039184091909753">зображення</translation>
-<translation id="8683081248374354009">Скинути групу</translation>
 <translation id="869891660844655955">Діє до</translation>
 <translation id="8699120352855309748">Не пропонувати перекладати ці мови</translation>
 <translation id="8712637175834984815">Виконано</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
index 220434a..dd00617 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">پچھلے گھنٹے</translation>
 <translation id="1724977129262658800">اپنے پاس ورڈ کو ترمیم کرنے کیلئے غیر مقفل کریں</translation>
 <translation id="1726477445370128854">‏آپ تیزی سے براؤز اور تلاش کر سکتے ہیں جب Chrome ایسے صفحات کو پیشگی لوڈ کرتا ہے جن کے بارے میں اسے لگتا ہے کہ آپ ملاحظہ کر سکتے ہیں</translation>
-<translation id="173522743738009831">رازداری سینڈ باکس کے بارے میں</translation>
 <translation id="1736419249208073774">دریافت کریں</translation>
 <translation id="1749561566933687563">اپنے بُک مارکس کی مطابقت پذیری کریں</translation>
 <translation id="1750259112639922169">ٹیب گروپ - <ph name="TAB_COUNT" /> ٹیبز</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> سیکنڈ باقی</translation>
 <translation id="2779651927720337254">ناکام ہو گیا</translation>
 <translation id="2781151931089541271">1 سیکنڈ باقی</translation>
-<translation id="2788468313014644040">گروپ نمبر</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> ٹیب کو بند کر دیا جائے گا</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">‏اپنے <ph name="BEGIN_LINK" />Google اکاؤنٹ<ph name="END_LINK" /> میں محفوظ کردہ پاس ورڈز دیکھیں اور ان کا نظم کریں</translation>
 <translation id="2818669890320396765">اپنے سبھی آلات پر اپنے بُک مارکس حاصل کرنے کیلئے، سائن ان کریں اور سِنک کو آن کریں</translation>
 <translation id="2827278682606527653">نصف اونچائی پر فیڈ کارڈ مینو</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">تصویر کا اشتراک کریں</translation>
 <translation id="3387650086002190359">سسٹم کی خرابیوں کی وجہ سے <ph name="FILE_NAME" /> کو ڈاؤن لوڈ کرنا ناکام ہوگیا۔</translation>
 <translation id="3389286852084373014">متن کافی بڑا ہے</translation>
-<translation id="3391512812407811893">رازداری سینڈ باکس ٹرائلز</translation>
 <translation id="3398320232533725830">بُک مارکس مینیجر کو کھولیں</translation>
 <translation id="3407392651057365886">‏مزید صفحات پیشگی لوڈ کردہ ہیں۔ دیگر سائٹس کے ذریعے درخواست کیے جانے پر صفحات کو Google سرورز کے ذریعے پیشگی لوڈ کیا جا سکتا ہے۔</translation>
 <translation id="3414952576877147120">سائز:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">دوبارہ پیروی کریں</translation>
 <translation id="6002122790816966947">آپ کے آلات</translation>
 <translation id="6005538289190791541">تجویز کردہ پاس ورڈ</translation>
-<translation id="6032091552407840792">یہ ٹرائل صرف <ph name="BEGIN_LINK" />کچھ علاقوں<ph name="END_LINK" /> میں ہی فعال ہے۔</translation>
-<translation id="6033245666633565791">‏<ph name="BEGIN_LINK" />رازداری سینڈ باکس<ph name="END_LINK" /> کے ساتھ، Chrome آپ کو اوپن ویب کے تحفظ کے دوران کراس سائٹ کی ٹریکنگ سے محفوظ رکھنے کے لیے نئی ٹیکنالوجیز تیار کر رہا ہے۔
-
-رازداری سینڈ باکس ٹرائلز کا ڈیولپمنٹ ابھی بھی جاری ہے اور یہ منتخب علاقوں میں دستیاب ہیں۔ ابھی کے لئے، سائٹس فریق ثالث کوکیز جیسی موجودہ ویب ٹیکنالوجیز کا استعمال جاری رکھتے ہوئے رازداری سینڈ باکس کو آزما کر دیکھ سکتی ہیں۔</translation>
 <translation id="6039379616847168523">اگلے ٹیب پر جائیں</translation>
 <translation id="6040143037577758943">بند کریں</translation>
 <translation id="604124094241169006">خود کار</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">شامل کریں</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> ٹیبز کو بحال کیا گیا</translation>
 <translation id="780301667611848630">نہیں شکریہ</translation>
-<translation id="7805768142964895445">صورتحال</translation>
 <translation id="7808889146555843082">اس پاس ورڈ کو حذف کرنے سے آپ کا اکاؤنٹ <ph name="SITE" /> سے حذف نہیں ہوگا۔ اپنا اکاؤنٹ دوسروں سے محفوظ رکھنے کیلئے اپنا پاس ورڈ تبدیل کریں یا <ph name="SITE" /> سے اپنا اکاؤنٹ حذف کریں۔</translation>
 <translation id="7810647596859435254">اس کے ساتھ کھولیں…</translation>
 <translation id="7815484226266492798">طویل اسکرین شاٹ</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">اپنے ذاتی مطابقت پذیر پاس فریز کے ساتھ مطابقت پذیر کردہ ڈیٹا کی مرموزکاری کریں</translation>
 <translation id="8466613982764129868">یہ یقینی بنائیں کہ <ph name="TARGET_DEVICE_NAME" /> انٹرنیٹ سے منسلک ہے</translation>
 <translation id="8473863474539038330">پتے وغیرہ</translation>
-<translation id="8481921391193215807">‏آن ہونے پر، سائٹس اپنے مواد اور سروسز کو فراہم کرنے کے لیے یہاں دکھائی گئی رازداری کے تحفظ کی تکنیکوں کا استعمال کر سکتی ہیں۔ ان میں کراس سائٹ ٹریکنگ کے متبادلات شامل ہیں۔ آنے والے وقت میں مزید ٹرائلز شامل کئے جا سکتے ہیں۔
-
-<ph name="BEGIN_LIST_ITEM1" />مشتہرین اور ناشرین FLoC کا استعمال کر سکتے ہیں۔<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />مشتہرین اور ناشرین اشتہارات کی افادیت کا ایسے طریقے سے مطالعہ کر سکتے ہیں جو آپ کو مختلف سائٹس پر ٹریک نہ کرتا ہو۔<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">ٹرائل خصوصیات آن ہیں</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">سرگزشت صفحہ کھولیں</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">فائل کا نام پہلے سے موجود ہے</translation>
 <translation id="8666759526542103597">براؤزر کی بنیاد اشتہار کی ذاتی نوعیت سازی کے بارے میں</translation>
 <translation id="8676789164135894283">سائن ان کی تصدیقیں</translation>
-<translation id="867767487203716855">اگلا اپ ڈیٹ</translation>
 <translation id="8683039184091909753">تصویر</translation>
-<translation id="8683081248374354009">گروپ ری سیٹ کریں</translation>
 <translation id="869891660844655955">میعاد ختم ہونے کی تاریخ</translation>
 <translation id="8699120352855309748">ان زبانوں کو ترجمہ کرنے کی پیشکش نہ کریں</translation>
 <translation id="8712637175834984815">سمجھ آ گئی</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
index a2f9be7..b643672 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Oxirgi bir soat</translation>
 <translation id="1724977129262658800">Parolni almashtirish uchun qurilma qulfini oching</translation>
 <translation id="1726477445370128854">Sahifalarni tezroq koʻrib chiqish va qidirishingiz uchun Chrome sizni ochishi mumkin deb hisoblagan sahifalarni oldindan yuklaydi</translation>
-<translation id="173522743738009831">Privacy Sandbox haqida</translation>
 <translation id="1736419249208073774">Tanishuv</translation>
 <translation id="1749561566933687563">Xatcho‘plarni sinxronlang</translation>
 <translation id="1750259112639922169">Varaqlar guruhi - <ph name="TAB_COUNT" /> ta varaq</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> soniya qoldi</translation>
 <translation id="2779651927720337254">xatolik:</translation>
 <translation id="2781151931089541271">1 soniya qoldi</translation>
-<translation id="2788468313014644040">Guruh raqami</translation>
 <translation id="2800066122460699237"><ph name="TAB_TITLE" /> nomli varaq yopiladi</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google hisobingizga<ph name="END_LINK" /> saqlangan parollarni ko‘rish va boshqarish</translation>
 <translation id="2818669890320396765">Xatcho‘plarni barcha qurilmalaringizda sinxronlash uchun hisobingizga kiring va sinxronizatsiyani yoqing</translation>
 <translation id="2827278682606527653">Quyi bildirgi menyu yarim hajmda ochildi</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Rasmni ulashish</translation>
 <translation id="3387650086002190359">Fayllar tizimi xatoliklari tufayli “<ph name="FILE_NAME" />” fayli yuklab olinmadi.</translation>
 <translation id="3389286852084373014">Matn juda katta</translation>
-<translation id="3391512812407811893">Privacy Sandbox sinov versiyalari</translation>
 <translation id="3398320232533725830">Xatcho‘plar menejerini ochish</translation>
 <translation id="3407392651057365886">Aksariyat sahifalar oldindan yuklanadi. Sahifalar boshqa saytlar tomonidan talab qilinganida Google serverlari orqali oldindan yuklanadi.</translation>
 <translation id="3414952576877147120">Hajmi:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Qayta obuna</translation>
 <translation id="6002122790816966947">Qurilmalaringiz</translation>
 <translation id="6005538289190791541">Taklif qilingan parol</translation>
-<translation id="6032091552407840792">Bu tajribaviy funksiya faqatgina <ph name="BEGIN_LINK" />ayrim mamlakatlarda<ph name="END_LINK" /> ishlaydi.</translation>
-<translation id="6033245666633565791"><ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> yordamida Chrome ochiq internetni rivojlantirishni qoʻllab-quvvatlovchi va foydalanuvchilarni kuzatuv mexanizmlaridan himoya qiladigan texnologiyalarni ishlab chiqadi.
-
-Privacy Sandbox hali ishlab chiqish jarayonida va faqatgina ayrim mamlakatlarda mavjud. Hozircha uchinchi tomon cookie fayllari kabi veb texnologiyalardan voz kechmaslik sharti bilan, saytlar Privacy Sandbox funksiyalaridan foydalanishi mumkin.</translation>
 <translation id="6039379616847168523">Keyingi varaqqa o‘tish</translation>
 <translation id="6040143037577758943">Yopish</translation>
 <translation id="604124094241169006">Avtomatik</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Qo‘shish</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> ta varaq tiklandi</translation>
 <translation id="780301667611848630">Kerak emas</translation>
-<translation id="7805768142964895445">Holat</translation>
 <translation id="7808889146555843082">Bu parol olib tashlangani bilan <ph name="SITE" /> hisobingiz oʻchib ketmaydi. Boshqalardan himoyalash maqsadida <ph name="SITE" /> hisobingiz parolini almashtiring yoki olib tashlang.</translation>
 <translation id="7810647596859435254">Quyidagi bilan ochish…</translation>
 <translation id="7815484226266492798">Uzun skrinshot</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Sinxronlangan ma’lumotlarni kodli ibora bilan shifrlash</translation>
 <translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> internetga ulanganini tekshiring.</translation>
 <translation id="8473863474539038330">Mazillar va boshqa ma’lumotlar</translation>
-<translation id="8481921391193215807">Agar yoqilsa, saytlar oʻzlarining kontent va xizmatlarini taqdim etish uchun bu yerda koʻrsatilgan maxfiylikni saqlash texnikalaridan foydalanishi mumkin. Bunga muqobil saytlararo kuzatuv ham kiradi. Vaqti-vaqti bilan koʻproq sinov funksiyalari kiritiladi.
-
-<ph name="BEGIN_LIST_ITEM1" />Reklama beruvchilar va noshirlar FLoC uslubidan foydalanishi mumkin.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Reklama beruvchilar va noshirlar sizni internetda kuzatmasdan reklamalar samaradorligini oʻrganishlari mumkin.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Bepul sinov funksiyalari yoniq</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">“Tarix” sahifasini ochish</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Bunday nomli fayl allaqachon bor</translation>
 <translation id="8666759526542103597">Reklamalarni brauzer asosida moslashtirish haqida</translation>
 <translation id="8676789164135894283">Kirishni tasdiqlash</translation>
-<translation id="867767487203716855">Keyingi yangilanish</translation>
 <translation id="8683039184091909753">rasm</translation>
-<translation id="8683081248374354009">Guruh sozlamalarini tiklash</translation>
 <translation id="869891660844655955">Tugash muddati</translation>
 <translation id="8699120352855309748">Quyidagi tillarga tarjima taklif qilinmasin</translation>
 <translation id="8712637175834984815">Tushunarli</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
index dd466a1c..8cf2200 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Một giờ qua</translation>
 <translation id="1724977129262658800">Mở khóa để chỉnh sửa mật khẩu của bạn</translation>
 <translation id="1726477445370128854">Bạn có thể duyệt và tìm kiếm nhanh hơn khi Chrome tải trước các trang mà trình duyệt cho rằng bạn có thể sẽ truy cập</translation>
-<translation id="173522743738009831">Giới thiệu về Hộp cát về quyền riêng tư</translation>
 <translation id="1736419249208073774">Khám phá</translation>
 <translation id="1749561566933687563">Đồng bộ hóa dấu trang của bạn</translation>
 <translation id="1750259112639922169">Nhóm thẻ – <ph name="TAB_COUNT" /> thẻ</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">Còn <ph name="SECONDS" /> giây</translation>
 <translation id="2779651927720337254">không tải xuống được</translation>
 <translation id="2781151931089541271">Còn 1 giây</translation>
-<translation id="2788468313014644040">Số nhóm</translation>
 <translation id="2800066122460699237">Thẻ <ph name="TAB_TITLE" /> sẽ đóng</translation>
-<translation id="2806840421670364300">FLoC (Học liên kết theo nhóm cùng sở thích)</translation>
 <translation id="281504910091592009">Xem và quản lý các mật khẩu đã lưu trong <ph name="BEGIN_LINK" />Tài khoản Google<ph name="END_LINK" /> của bạn</translation>
 <translation id="2818669890320396765">Để sử dụng dấu trang trên tất cả các thiết bị, hãy đăng nhập và bật tính năng đồng bộ hóa</translation>
 <translation id="2827278682606527653">Trình đơn thẻ nguồn cấp dữ liệu mở ở nửa dưới của màn hình</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Chia sẻ hình ảnh</translation>
 <translation id="3387650086002190359">Tải xuống <ph name="FILE_NAME" /> không thành công do lỗi hệ thống tệp.</translation>
 <translation id="3389286852084373014">Văn bản quá lớn</translation>
-<translation id="3391512812407811893">Dùng thử Hộp cát về quyền riêng tư</translation>
 <translation id="3398320232533725830">Mở trình quản lý dấu trang</translation>
 <translation id="3407392651057365886">Sẽ có nhiều trang được tải trước hơn. Những trang này có thể được tải trước thông qua các máy chủ của Google khi được các trang web khác yêu cầu.</translation>
 <translation id="3414952576877147120">Kích thước:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Theo dõi lại</translation>
 <translation id="6002122790816966947">Thiết bị của bạn</translation>
 <translation id="6005538289190791541">Mật khẩu đề xuất</translation>
-<translation id="6032091552407840792">Chế độ dùng thử này chỉ hoạt động ở <ph name="BEGIN_LINK" />một số khu vực<ph name="END_LINK" />.</translation>
-<translation id="6033245666633565791">Với <ph name="BEGIN_LINK" />Hộp cát về quyền riêng tư<ph name="END_LINK" />, Chrome sẽ phát triển các công nghệ mới để giúp bạn không bị theo dõi trên nhiều trang web trong khi vẫn duy trì môi trường web mở.
-
-Chế độ dùng thử Hộp cát về quyền riêng tư vẫn đang trong giai đoạn phát triển và được cung cấp ở một số khu vực. Các trang web hiện có thể dùng thử Hộp cát về quyền riêng tư trong khi tiếp tục sử dụng các công nghệ web hiện tại như cookie của bên thứ ba.</translation>
 <translation id="6039379616847168523">Chuyển sang thẻ tiếp theo</translation>
 <translation id="6040143037577758943">Đóng</translation>
 <translation id="604124094241169006">Tự động</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Thêm</translation>
 <translation id="7798392620021911922">Đã khôi phục <ph name="TAB_COUNT" /> thẻ</translation>
 <translation id="780301667611848630">Không, cảm ơn</translation>
-<translation id="7805768142964895445">Trạng thái</translation>
 <translation id="7808889146555843082">Thao tác xóa mật khẩu này sẽ không xóa tài khoản của bạn trên <ph name="SITE" />. Hãy đổi mật khẩu hoặc xóa tài khoản của bạn trên <ph name="SITE" /> để giữ an toàn cho tài khoản của bạn.</translation>
 <translation id="7810647596859435254">Mở bằng…</translation>
 <translation id="7815484226266492798">Ảnh chụp toàn bộ màn hình</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Mã hóa dữ liệu đã đồng bộ hóa bằng cụm mật khẩu đồng bộ hóa của riêng bạn</translation>
 <translation id="8466613982764129868">Hãy đảm bảo <ph name="TARGET_DEVICE_NAME" /> có kết nối Internet</translation>
 <translation id="8473863474539038330">Địa chỉ và các lựa chọn khác</translation>
-<translation id="8481921391193215807">Khi bạn bật Hộp cát về quyền riêng tư, các trang web có thể dùng kỹ thuật bảo vệ quyền riêng tư theo mô tả ở đây để cung cấp nội dung và dịch vụ của mình. Các kỹ thuật này gồm có những biện pháp thay thế cho hoạt động theo dõi trên nhiều trang web. Theo thời gian, chúng tôi có thể bổ sung nhiều chế độ dùng thử khác.
-
-<ph name="BEGIN_LIST_ITEM1" />Các nhà quảng cáo và nhà xuất bản có thể dùng kỹ thuật FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Các nhà quảng cáo và nhà xuất bản có thể nghiên cứu tính hiệu quả của quảng cáo mà không cần theo dõi bạn trên các trang web.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Các tính năng dùng thử đang bật</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Mở trang lịch sử</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Tên tệp đã tồn tại</translation>
 <translation id="8666759526542103597">Giới thiệu về tính năng cá nhân hoá quảng cáo dựa vào trình duyệt</translation>
 <translation id="8676789164135894283">Xác minh việc đăng nhập</translation>
-<translation id="867767487203716855">Thời gian cập nhật tiếp theo</translation>
 <translation id="8683039184091909753">hình ảnh</translation>
-<translation id="8683081248374354009">Đặt lại nhóm</translation>
 <translation id="869891660844655955">Ngày hết hạn</translation>
 <translation id="8699120352855309748">Không đề xuất dịch những ngôn ngữ này</translation>
 <translation id="8712637175834984815">Bỏ qua</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
index 2beb81a..d6f00f8 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">过去一小时</translation>
 <translation id="1724977129262658800">解锁屏幕后才能修改您的密码</translation>
 <translation id="1726477445370128854">如果 Chrome 预加载它认为您可能会访问的网页,您便可更快速地浏览和搜索</translation>
-<translation id="173522743738009831">隐私沙盒简介</translation>
 <translation id="1736419249208073774">探索</translation>
 <translation id="1749561566933687563">同步您的书签</translation>
 <translation id="1750259112639922169">标签页分组 - <ph name="TAB_COUNT" /> 个标签页</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">还剩 <ph name="SECONDS" /> 秒</translation>
 <translation id="2779651927720337254">失败</translation>
 <translation id="2781151931089541271">还剩 1 秒</translation>
-<translation id="2788468313014644040">群组编号</translation>
 <translation id="2800066122460699237">系统将会关闭标签页“<ph name="TAB_TITLE" />”</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">查看和管理您的 <ph name="BEGIN_LINK" />Google 帐号<ph name="END_LINK" />中保存的密码</translation>
 <translation id="2818669890320396765">要将您的书签同步到您的所有设备上,请登录您的帐号并开启同步功能</translation>
 <translation id="2827278682606527653">动态卡片上的菜单已半屏打开</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">分享图片</translation>
 <translation id="3387650086002190359">未能成功下载 <ph name="FILE_NAME" />,因为文件系统出现了错误。</translation>
 <translation id="3389286852084373014">文本过长</translation>
-<translation id="3391512812407811893">试用隐私沙盒</translation>
 <translation id="3398320232533725830">打开书签管理器</translation>
 <translation id="3407392651057365886">预加载更多网页。被其他网站请求的网页可能会通过 Google 服务器预加载。</translation>
 <translation id="3414952576877147120">大小:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">重新关注</translation>
 <translation id="6002122790816966947">您的设备</translation>
 <translation id="6005538289190791541">建议的密码</translation>
-<translation id="6032091552407840792">这项试用版功能仅在<ph name="BEGIN_LINK" />部分区域<ph name="END_LINK" />有效。</translation>
-<translation id="6033245666633565791">Chrome 正在通过 <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> 开发新技术,以便既能保护开放网络又能使您免受跨网站跟踪。
-
-Privacy Sandbox 试用版功能尚处于积极开发阶段,目前只能在部分区域使用。现阶段,网站可在继续使用第三方 Cookie 等当前网络技术的同时试用 Privacy Sandbox。</translation>
 <translation id="6039379616847168523">跳转到下一个标签页</translation>
 <translation id="6040143037577758943">关闭</translation>
 <translation id="604124094241169006">自动</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">添加</translation>
 <translation id="7798392620021911922">已恢复 <ph name="TAB_COUNT" /> 个标签页</translation>
 <translation id="780301667611848630">不用了,谢谢</translation>
-<translation id="7805768142964895445">状态</translation>
 <translation id="7808889146555843082">删除此密码不会删除您在 <ph name="SITE" /> 上的帐号。如需保护您在 <ph name="SITE" /> 上的帐号免遭他人盗用,请更改您的密码或删除该帐号。</translation>
 <translation id="7810647596859435254">打开方式…</translation>
 <translation id="7815484226266492798">长屏幕截图</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">使用您自己的同步密码加密已同步的数据</translation>
 <translation id="8466613982764129868">请确保<ph name="TARGET_DEVICE_NAME" />已连接到互联网</translation>
 <translation id="8473863474539038330">地址和其他信息</translation>
-<translation id="8481921391193215807">如果此控件已开启,网站可能会使用此处所示的隐私保护技术来提供其内容和服务。这些技术包括跨网站跟踪机制的替代方案。随着时间的推移,我们可能会添加更多试用版功能。
-
-<ph name="BEGIN_LIST_ITEM1" />广告主和发布商可使用 FLoC。<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />广告主和发布商可通过一种不会对您进行跨网站跟踪的方式研究广告的效果。<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">试用版功能已开启</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">打开历史记录页</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">文件名已存在</translation>
 <translation id="8666759526542103597">关于基于浏览器的广告个性化</translation>
 <translation id="8676789164135894283">登录验证</translation>
-<translation id="867767487203716855">下一次更新</translation>
 <translation id="8683039184091909753">图片</translation>
-<translation id="8683081248374354009">重置群组</translation>
 <translation id="869891660844655955">截止日期</translation>
 <translation id="8699120352855309748">不询问是否翻译这些语言</translation>
 <translation id="8712637175834984815">知道了</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
index f7f77c0..5addcc69 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">過去一小時</translation>
 <translation id="1724977129262658800">解鎖後即可編輯密碼</translation>
 <translation id="1726477445370128854">Chrome 會預先載入您可能瀏覽的網頁,加快瀏覽及搜尋速度</translation>
-<translation id="173522743738009831">關於 Privacy Sandbox</translation>
 <translation id="1736419249208073774">探索</translation>
 <translation id="1749561566933687563">同步您的書籤</translation>
 <translation id="1750259112639922169">分頁群組 - <ph name="TAB_COUNT" /> 個分頁</translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389">尚餘 <ph name="SECONDS" /> 秒</translation>
 <translation id="2779651927720337254">失敗</translation>
 <translation id="2781151931089541271">尚餘 1 秒</translation>
-<translation id="2788468313014644040">群組號碼</translation>
 <translation id="2800066122460699237">即將關閉 <ph name="TAB_TITLE" /> 分頁</translation>
-<translation id="2806840421670364300">群組聯合學習 : FLoC</translation>
 <translation id="281504910091592009">查看和管理儲存在 <ph name="BEGIN_LINK" />Google 帳戶<ph name="END_LINK" />中的密碼</translation>
 <translation id="2818669890320396765">如要將書籤同步到所有裝置,請登入並開啟同步處理功能</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">分享圖片</translation>
 <translation id="3387650086002190359">檔案系統發生錯誤,因此無法下載 <ph name="FILE_NAME" />。</translation>
 <translation id="3389286852084373014">文字過多</translation>
-<translation id="3391512812407811893">試用 Privacy Sandbox</translation>
 <translation id="3398320232533725830">開啟書籤管理員</translation>
 <translation id="3407392651057365886">預先載入更多網頁。當其他網站要求連結網頁時,系統可能會透過 Google 伺服器預先載入這些網頁。</translation>
 <translation id="3414952576877147120">大小:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">重新追蹤</translation>
 <translation id="6002122790816966947">您的裝置</translation>
 <translation id="6005538289190791541">建議的密碼</translation>
-<translation id="6032091552407840792">此試用功能只會在<ph name="BEGIN_LINK" />部分地區<ph name="END_LINK" />啟用。</translation>
-<translation id="6033245666633565791">Chrome 透過「<ph name="BEGIN_LINK" />私隱沙箱<ph name="END_LINK" />」開發新的技術,防止有心人士透過跨網站追蹤機制取得您的資料,同時保護開放網絡。
-
-「私隱沙箱」的試用功能仍在開發階段,目前開放地區有限。現在網站可以嘗試使用「私隱沙箱」,亦能繼續使用第三方 Cookie 等現有的網絡技術。</translation>
 <translation id="6039379616847168523">跳至下一個分頁</translation>
 <translation id="6040143037577758943">關閉</translation>
 <translation id="604124094241169006">自動</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">新增</translation>
 <translation id="7798392620021911922">還原咗 <ph name="TAB_COUNT" /> 個分頁</translation>
 <translation id="780301667611848630">不用了,謝謝</translation>
-<translation id="7805768142964895445">狀態</translation>
 <translation id="7808889146555843082">刪除此密碼不會刪除您在 <ph name="SITE" /> 的帳戶。請變更密碼或刪除您在 <ph name="SITE" /> 的帳戶,以免被他人盜用。</translation>
 <translation id="7810647596859435254">選擇開啟應用程式…</translation>
 <translation id="7815484226266492798">長螢幕截圖</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">使用您的同步密碼短語,加密已同步的資料</translation>
 <translation id="8466613982764129868">請確保 <ph name="TARGET_DEVICE_NAME" /> 已連接互聯網</translation>
 <translation id="8473863474539038330">地址及其他資料</translation>
-<translation id="8481921391193215807">開啟後,網站可能會使用此處顯示的私隱保護技術提供內容和服務。這些技術包括替代跨網站追蹤的選項。本服務可能會陸續新增更多試用功能。
-
-<ph name="BEGIN_LIST_ITEM1" />廣告客戶和發佈者可使用 FLoC。<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />廣告客戶和發佈者無需追蹤您的網站瀏覽記錄,就能瞭解廣告成效。<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">試用功能已開啟</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">開啟記錄頁面</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">檔案名稱已存在</translation>
 <translation id="8666759526542103597">關於基於瀏覽器的廣告個人化</translation>
 <translation id="8676789164135894283">登入驗證</translation>
-<translation id="867767487203716855">下一個更新項目</translation>
 <translation id="8683039184091909753">圖片</translation>
-<translation id="8683081248374354009">重設群組</translation>
 <translation id="869891660844655955">到期日</translation>
 <translation id="8699120352855309748">不要詢問是否翻譯這些語言</translation>
 <translation id="8712637175834984815">我知道了</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
index 9d110910..1de4e3a7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -140,7 +140,6 @@
 <translation id="1718835860248848330">過去 1 小時</translation>
 <translation id="1724977129262658800">解鎖後即可編輯密碼</translation>
 <translation id="1726477445370128854">Chrome 會預先載入你可能造訪的網頁,加快你瀏覽及搜尋的速度</translation>
-<translation id="173522743738009831">關於 Privacy Sandbox</translation>
 <translation id="1736419249208073774">探索</translation>
 <translation id="1749561566933687563">同步處理您的書籤</translation>
 <translation id="1750259112639922169">分頁群組 - <ph name="TAB_COUNT" /> 個分頁</translation>
@@ -319,9 +318,7 @@
 <translation id="2777555524387840389">還剩 <ph name="SECONDS" /> 秒</translation>
 <translation id="2779651927720337254">失敗</translation>
 <translation id="2781151931089541271">還剩 1 秒</translation>
-<translation id="2788468313014644040">群組編號</translation>
 <translation id="2800066122460699237">即將關閉「<ph name="TAB_TITLE" />」分頁</translation>
-<translation id="2806840421670364300">FLoC</translation>
 <translation id="281504910091592009">你可以查看及管理 <ph name="BEGIN_LINK" />Google 帳戶<ph name="END_LINK" />中儲存的密碼</translation>
 <translation id="2818669890320396765">如要將書籤同步到所有裝置,請登入並開啟同步處理功能</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
@@ -442,7 +439,6 @@
 <translation id="3384347053049321195">分享圖片</translation>
 <translation id="3387650086002190359">檔案系統發生錯誤,因此無法下載 <ph name="FILE_NAME" />。</translation>
 <translation id="3389286852084373014">文字過多</translation>
-<translation id="3391512812407811893">試用 Privacy Sandbox</translation>
 <translation id="3398320232533725830">開啟書籤管理員</translation>
 <translation id="3407392651057365886">預先載入更多網頁。當其他網站要求連入網頁時,系統可能會透過 Google 伺服器預先載入這些網頁。</translation>
 <translation id="3414952576877147120">空間大小:</translation>
@@ -912,10 +908,6 @@
 <translation id="6000203700195075278">重新追蹤</translation>
 <translation id="6002122790816966947">你的裝置</translation>
 <translation id="6005538289190791541">建議的密碼</translation>
-<translation id="6032091552407840792">這項功能目前僅開放<ph name="BEGIN_LINK" />部分地區<ph name="END_LINK" />試用。</translation>
-<translation id="6033245666633565791">Chrome 透過 <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" /> 開發新的技術,防止有心人士透過跨網站追蹤機制取得你的資料,同時保護開放網路。
-
-Privacy Sandbox 的試用功能仍在積極開發階段,目前開放地區有限。現在網站可以嘗試使用 Privacy Sandbox,也能繼續使用第三方 Cookie 等現有的網路技術。</translation>
 <translation id="6039379616847168523">跳至下一個分頁</translation>
 <translation id="6040143037577758943">關閉</translation>
 <translation id="604124094241169006">自動</translation>
@@ -1247,7 +1239,6 @@
 <translation id="7791543448312431591">新增</translation>
 <translation id="7798392620021911922">已還原 <ph name="TAB_COUNT" /> 個分頁</translation>
 <translation id="780301667611848630">不用了,謝謝</translation>
-<translation id="7805768142964895445">狀態</translation>
 <translation id="7808889146555843082">刪除這組密碼並不會刪除你的 <ph name="SITE" /> 帳戶。請變更密碼或刪除你的 <ph name="SITE" /> 帳戶,以避免遭到他人盜用。</translation>
 <translation id="7810647596859435254">選擇開啟工具…</translation>
 <translation id="7815484226266492798">長螢幕截圖</translation>
@@ -1381,11 +1372,6 @@
 <translation id="8461694314515752532">使用你自己的同步通關密語,加密保護同步資料</translation>
 <translation id="8466613982764129868">請確認「<ph name="TARGET_DEVICE_NAME" />」已連上網際網路</translation>
 <translation id="8473863474539038330">地址和其他資訊</translation>
-<translation id="8481921391193215807">在啟用狀態下,網站可能會使用這裡顯示的隱私保護技術提供內容和服務,包括對於跨網站追蹤的替代性措施。本服務可能會陸續新增更多試用功能。
-
-<ph name="BEGIN_LIST_ITEM1" />廣告客戶和發布商可以使用 FLoC 技術。<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />廣告客戶和發布商不必追蹤你的網站瀏覽記錄,就能瞭解自身的廣告成效。<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">試用功能已開啟</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">開啟記錄頁面</translation>
@@ -1431,9 +1417,7 @@
 <translation id="8664979001105139458">檔案名稱已存在</translation>
 <translation id="8666759526542103597">關於以瀏覽器為主的廣告個人化</translation>
 <translation id="8676789164135894283">登入驗證</translation>
-<translation id="867767487203716855">下一個更新項目</translation>
 <translation id="8683039184091909753">圖片</translation>
-<translation id="8683081248374354009">重設群組</translation>
 <translation id="869891660844655955">到期日</translation>
 <translation id="8699120352855309748">不要詢問是否要翻譯這些語言</translation>
 <translation id="8712637175834984815">我瞭解了</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
index 315bd20..21e05866 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -139,7 +139,6 @@
 <translation id="1718835860248848330">Ihora lokugcina</translation>
 <translation id="1724977129262658800">Vula ukuze uhlele iphasiwedi yakho</translation>
 <translation id="1726477445370128854">Ungaphequlula futhi useshe ngokushesha uma i-Chrome ilayisha kusengaphambili amakhasi ecabanga ukuthi ungawavakashela</translation>
-<translation id="173522743738009831">Mayelana ne-Privacy Sandbox</translation>
 <translation id="1736419249208073774">Hlola</translation>
 <translation id="1749561566933687563">Vumelanisa amabhukhimakhi akho</translation>
 <translation id="1750259112639922169">Iqembu lethebhu - amathebhu angu-<ph name="TAB_COUNT" /></translation>
@@ -318,9 +317,7 @@
 <translation id="2777555524387840389"><ph name="SECONDS" /> amasekhondi asele</translation>
 <translation id="2779651927720337254">yehlulekile</translation>
 <translation id="2781151931089541271">1 isekhondi elisele</translation>
-<translation id="2788468313014644040">Inombolo yeqembu</translation>
 <translation id="2800066122460699237">Ithebhu engu-<ph name="TAB_TITLE" /> izovalwa</translation>
-<translation id="2806840421670364300">I-FLoC</translation>
 <translation id="281504910091592009">Buka futhi uphathe amaphasiwedi alondolozwe ku-<ph name="BEGIN_LINK" />akhawunti yakho ye-Google<ph name="END_LINK" /></translation>
 <translation id="2818669890320396765">Ukuze uthole amabhukhimakhi akho kuwo onke amadivayisi akho, ngena ngemvume uphinde uvule ukuvumelanisa</translation>
 <translation id="2827278682606527653">Ubude obunguhhafu bemenyu yekhadi lokuphakelayo</translation>
@@ -441,7 +438,6 @@
 <translation id="3384347053049321195">Yabelana isithombe</translation>
 <translation id="3387650086002190359">Ukulandwa kwe-<ph name="FILE_NAME" /> kuhlulekile ngenxa yamaphutha esistimu yefayela.</translation>
 <translation id="3389286852084373014">Umbhalo mkhulu kakhulu</translation>
-<translation id="3391512812407811893">Ukuzama i-Privacy Sandbox</translation>
 <translation id="3398320232533725830">Vula isiphathi samabhukhimakhi</translation>
 <translation id="3407392651057365886">Amakhasi amaningi alayishwa kusengaphambili. Amakhasi angalayishwa kusengaphambili ngeziphakeli ze-Google uma ecelwa ngamanye amasayithi.</translation>
 <translation id="3414952576877147120">Usayizi:</translation>
@@ -913,10 +909,6 @@
 <translation id="6000203700195075278">Phinda ulandele</translation>
 <translation id="6002122790816966947">Amadivayisi akho</translation>
 <translation id="6005538289190791541">Iphasiwedi ephakanyisiwe</translation>
-<translation id="6032091552407840792">Lo mzamo usebenza <ph name="BEGIN_LINK" />ezifundeni ezithile<ph name="END_LINK" /> kuphela.</translation>
-<translation id="6033245666633565791">Nge-<ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, i-Chrome ithuthukisa ubuchwepheshe obusha bokukuvikela ekulandeleni kwendawo ephambene lapho ugcina khona iwebhu evulekile.
-
-Imizamo ye-Privacy Sandbox isasungulwa futhi itholakala ezifundeni ezithile. Okwamanje, amasayithi angazama i-Privacy Sandbox kuyilapho eqhubeka nokusebenzisa ubuchwepheshe bewebhu bamanje obufana namakhukhi wenkampani yangaphandle.</translation>
 <translation id="6039379616847168523">Yeqela kuthebhu elandelayo</translation>
 <translation id="6040143037577758943">Vala</translation>
 <translation id="604124094241169006">Okuzenzakalelayo</translation>
@@ -1248,7 +1240,6 @@
 <translation id="7791543448312431591">Engeza</translation>
 <translation id="7798392620021911922">Kubuyiselwe amathebhu angu-<ph name="TAB_COUNT" /></translation>
 <translation id="780301667611848630">Cha ngiyabonga</translation>
-<translation id="7805768142964895445">Isimo</translation>
 <translation id="7808889146555843082">Ukususa le phasiwedi ngeke kususe i-akhawunti yakho ku-<ph name="SITE" />. Shintsha iphasiwedi yakho noma susa i-akhawunti yakho ku-<ph name="SITE" /> ukuze uyigcine iphephile kwabanye.</translation>
 <translation id="7810647596859435254">Vula nge...</translation>
 <translation id="7815484226266492798">Isithombe-skrini Eside</translation>
@@ -1382,11 +1373,6 @@
 <translation id="8461694314515752532">Bethela idatha evunyelanisiwe ngomushwana wokungena wakho wokuvumelanisa</translation>
 <translation id="8466613982764129868">Qinisekisa ukuthi i-<ph name="TARGET_DEVICE_NAME" /> ixhumeke ku-inthanethi</translation>
 <translation id="8473863474539038330">Amakheli nokuningi</translation>
-<translation id="8481921391193215807">Lapho avuliwe, amasayithi angasebenzisa izindlela zokugcina ubumfihlo eziboniswe lapha ukuhlinzeka ngokuqukethwe namasevisi wawo. Lezi zihlanganisa okunye kokulandelela kumasayithi amaningi. Ukuhlola okwengeziwe kungafakwa ngokuhamba kwesikhathi.
-
-<ph name="BEGIN_LIST_ITEM1" />Abakhangisi nabashicileli bangasebenzisa i-FLoC.<ph name="END_LIST_ITEM1" />
-
-<ph name="BEGIN_LIST_ITEM2" />Abakhangisi nabashicileli bangahlola ukusebenza kwezikhangiso ngendlela engakulandeleli kuwo wonke amasayithi.<ph name="END_LIST_ITEM2" /></translation>
 <translation id="8481980314595922412">Izici zokuhlola zivuliwe</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Vula ikhasi lewebhu</translation>
@@ -1432,9 +1418,7 @@
 <translation id="8664979001105139458">Igama lefayela selivele likhona</translation>
 <translation id="8666759526542103597">Mayelana nokwenza ngokwezifiso izikhangiso ezisekelwe Kubhrawuza</translation>
 <translation id="8676789164135894283">Iziqinisekiso zokungena ngemvume</translation>
-<translation id="867767487203716855">Isibuyekezo esilandelayo</translation>
 <translation id="8683039184091909753">isithombe</translation>
-<translation id="8683081248374354009">Setha kabusha iqembu</translation>
 <translation id="869891660844655955">Idethi yokuphelelwa yisikhathi</translation>
 <translation id="8699120352855309748">Unganikezeli ukuhumusha lezi zilimi</translation>
 <translation id="8712637175834984815">Ngiyitholile</translation>
diff --git a/chrome/browser/ui/ash/ime_controller_client_impl.cc b/chrome/browser/ui/ash/ime_controller_client_impl.cc
index 0bf8457b9..1491290 100644
--- a/chrome/browser/ui/ash/ime_controller_client_impl.cc
+++ b/chrome/browser/ui/ash/ime_controller_client_impl.cc
@@ -118,7 +118,7 @@
   const std::u16string short_name = descriptor.GetIndicator();
 
   ash::IMECandidateWindowHandlerInterface* cw_handler =
-      ui::IMEBridge::Get()->GetCandidateWindowHandler();
+      ash::IMEBridge::Get()->GetCandidateWindowHandler();
   if (!cw_handler)
     return;
 
diff --git a/chrome/browser/ui/ash/ime_controller_client_impl_unittest.cc b/chrome/browser/ui/ash/ime_controller_client_impl_unittest.cc
index cf204593..8bd7ab7 100644
--- a/chrome/browser/ui/ash/ime_controller_client_impl_unittest.cc
+++ b/chrome/browser/ui/ash/ime_controller_client_impl_unittest.cc
@@ -245,7 +245,7 @@
 TEST_F(ImeControllerClientImplTest, InputMethodChanged) {
   auto mock_candidate_window =
       std::make_unique<ash::MockIMECandidateWindowHandler>();
-  ui::IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
+  ash::IMEBridge::Get()->SetCandidateWindowHandler(mock_candidate_window.get());
 
   ImeControllerClientImpl client(&input_method_manager_);
   client.Init();
diff --git a/chrome/browser/ui/ash/keyboard/chrome_keyboard_bounds_observer.cc b/chrome/browser/ui/ash/keyboard/chrome_keyboard_bounds_observer.cc
index 13e1255d..c7b42c5 100644
--- a/chrome/browser/ui/ash/keyboard/chrome_keyboard_bounds_observer.cc
+++ b/chrome/browser/ui/ash/keyboard/chrome_keyboard_bounds_observer.cc
@@ -39,7 +39,7 @@
 }
 
 ui::InputMethod* GetCurrentInputMethod() {
-  ui::IMEBridge* bridge = ui::IMEBridge::Get();
+  ash::IMEBridge* bridge = ash::IMEBridge::Get();
   if (bridge && bridge->GetInputContextHandler())
     return bridge->GetInputContextHandler()->GetInputMethod();
   return nullptr;
diff --git a/chrome/browser/ui/ash/keyboard/chrome_keyboard_ui.cc b/chrome/browser/ui/ash/keyboard/chrome_keyboard_ui.cc
index 5d16efe..18d5dc6 100644
--- a/chrome/browser/ui/ash/keyboard/chrome_keyboard_ui.cc
+++ b/chrome/browser/ui/ash/keyboard/chrome_keyboard_ui.cc
@@ -74,7 +74,7 @@
 }
 
 ui::InputMethod* ChromeKeyboardUI::GetInputMethod() {
-  ui::IMEBridge* bridge = ui::IMEBridge::Get();
+  ash::IMEBridge* bridge = ash::IMEBridge::Get();
   if (!bridge || !bridge->GetInputContextHandler()) {
     // Needed by a handful of browser tests that use MockInputMethod.
     return ash::Shell::GetRootWindowForNewWindows()
diff --git a/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_browsertest.cc b/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_browsertest.cc
index bb1a72e..fdf1300b 100644
--- a/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_browsertest.cc
+++ b/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_browsertest.cc
@@ -93,7 +93,8 @@
     }
   }
 
-  void OnEntryWillDeregister(SidePanelEntry* entry) override {
+  void OnEntryWillDeregister(SidePanelRegistry* registry,
+                             SidePanelEntry* entry) override {
     if (entry->key() == GetKey(extension_id_)) {
       deregistration_run_loop_.QuitWhenIdle();
     }
diff --git a/chrome/browser/ui/views/side_panel/side_panel_combobox_model.cc b/chrome/browser/ui/views/side_panel/side_panel_combobox_model.cc
index 54a31aa..2da13ae 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_combobox_model.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_combobox_model.cc
@@ -28,6 +28,10 @@
 SidePanelComboboxModel::~SidePanelComboboxModel() = default;
 
 void SidePanelComboboxModel::AddItem(SidePanelEntry* entry) {
+  if (HasKey(entry->key())) {
+    return;
+  }
+
   entries_.emplace_back(entry->key(), entry->name(), entry->icon());
   std::sort(entries_.begin(), entries_.end(), [](const auto& a, const auto& b) {
     return a.key.id() < b.key.id();
@@ -38,35 +42,49 @@
 }
 
 void SidePanelComboboxModel::RemoveItem(const SidePanelEntry::Key& entry_key) {
-  base::EraseIf(entries_,
-                [entry_key](Item entry) { return entry.key == entry_key; });
-  for (auto& observer : observers()) {
-    observer.OnComboboxModelChanged(this);
+  if (base::EraseIf(entries_, [entry_key](Item entry) {
+        return entry.key == entry_key;
+      })) {
+    for (auto& observer : observers()) {
+      observer.OnComboboxModelChanged(this);
+    }
   }
 }
 
 void SidePanelComboboxModel::AddItems(
     const std::vector<std::unique_ptr<SidePanelEntry>>& entries) {
+  bool items_added = false;
   for (auto const& entry : entries) {
-    entries_.emplace_back(entry->key(), entry->name(), entry->icon());
+    if (!HasKey(entry->key())) {
+      items_added = true;
+      entries_.emplace_back(entry->key(), entry->name(), entry->icon());
+    }
   }
-  std::sort(entries_.begin(), entries_.end(),
-            [](const auto& a, const auto& b) { return a.key < b.key; });
-  for (auto& observer : observers()) {
-    observer.OnComboboxModelChanged(this);
+
+  if (items_added) {
+    std::sort(entries_.begin(), entries_.end(),
+              [](const auto& a, const auto& b) { return a.key < b.key; });
+    for (auto& observer : observers()) {
+      observer.OnComboboxModelChanged(this);
+    }
   }
 }
 
 void SidePanelComboboxModel::RemoveItems(
-    const std::vector<std::unique_ptr<SidePanelEntry>>& entries) {
-  for (auto const& current_entry : entries) {
-    SidePanelEntry::Key key = current_entry.get()->key();
+    const std::vector<SidePanelEntry::Key>& keys) {
+  bool items_erased = false;
+  for (const auto& key : keys) {
     auto position = base::ranges::find(entries_, key, &Item::key);
-    if (position != entries_.end())
+    if (position != entries_.end()) {
+      items_erased = true;
       entries_.erase(position);
+    }
   }
-  for (auto& observer : observers()) {
-    observer.OnComboboxModelChanged(this);
+
+  if (items_erased) {
+    for (auto& observer : observers()) {
+      observer.OnComboboxModelChanged(this);
+    }
   }
 }
 
@@ -94,6 +112,15 @@
   return 0;
 }
 
+bool SidePanelComboboxModel::HasKey(const SidePanelEntry::Key& key) const {
+  return base::ranges::find(entries_, key, &Item::key) != entries_.end();
+}
+
+int SidePanelComboboxModel::GetKeyCountForTesting(
+    const SidePanelEntry::Key& key) const {
+  return base::ranges::count(entries_, key, &Item::key);
+}
+
 size_t SidePanelComboboxModel::GetItemCount() const {
   return entries_.size();
 }
diff --git a/chrome/browser/ui/views/side_panel/side_panel_combobox_model.h b/chrome/browser/ui/views/side_panel/side_panel_combobox_model.h
index f3612a5..d63dbf9 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_combobox_model.h
+++ b/chrome/browser/ui/views/side_panel/side_panel_combobox_model.h
@@ -40,16 +40,23 @@
   void AddItem(SidePanelEntry* entry);
   void RemoveItem(const SidePanelEntry::Key& entry_key);
   void AddItems(const std::vector<std::unique_ptr<SidePanelEntry>>& entries);
-  void RemoveItems(const std::vector<std::unique_ptr<SidePanelEntry>>& entries);
+  void RemoveItems(const std::vector<SidePanelEntry::Key>& keys);
   SidePanelEntry::Key GetKeyAt(int index) const;
 
   // If the entry is in |entries_|, update the icon.
   void UpdateIconForEntry(SidePanelEntry* entry);
 
-  // Returns the index for the given side panel entry id, if the id doesn't
-  // exist in entries_ then default to 0.
+  // Returns the index for the given side panel entry key, if the key doesn't
+  // exist in `entries_` then default to 0.
   int GetIndexForKey(const SidePanelEntry::Key& key);
 
+  // Returns if the given side panel entry key exists in `entries_`.
+  bool HasKey(const SidePanelEntry::Key& key) const;
+
+  // Returns the number of `entries` with the given `key`. This should only be
+  // used to sanity check that a given extension key occurs at most once.
+  int GetKeyCountForTesting(const SidePanelEntry::Key& key) const;
+
   // ui::ComboboxModel:
   size_t GetItemCount() const override;
   std::u16string GetItemAt(size_t index) const override;
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
index 59b865c..dc8aa267 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
@@ -599,9 +599,29 @@
   }
 }
 
-void SidePanelCoordinator::OnEntryWillDeregister(SidePanelEntry* entry) {
+void SidePanelCoordinator::OnEntryWillDeregister(SidePanelRegistry* registry,
+                                                 SidePanelEntry* entry) {
   absl::optional<SidePanelEntry::Key> selected_key = GetSelectedKey();
-  combobox_model_->RemoveItem(entry->key());
+  if (entry->key().id() == SidePanelEntry::Id::kExtension) {
+    // Remove the extension entry from the combobox if one of these conditions
+    // are met:
+    //  - The entry will be deregistered from the global registry and there's no
+    //    entry for the extension in the active contextual registry.
+    //  - The entry will be deregistered from a contextual registry and there's
+    //    no entry for the extension in the global registry.
+    bool remove_if_global =
+        registry == global_registry_ &&
+        (!GetActiveContextualRegistry() ||
+         !GetActiveContextualRegistry()->GetEntryForKey(entry->key()));
+    bool remove_if_contextual = registry != global_registry_ &&
+                                !global_registry_->GetEntryForKey(entry->key());
+    if (remove_if_global || remove_if_contextual) {
+      combobox_model_->RemoveItem(entry->key());
+    }
+  } else {
+    combobox_model_->RemoveItem(entry->key());
+  }
+
   if (GetContentView()) {
     header_combobox_->SetSelectedIndex(combobox_model_->GetIndexForKey(
         GetLastActiveEntryKey().value_or(SidePanelEntry::Key(kDefaultEntry))));
@@ -646,7 +666,17 @@
       SidePanelRegistry::Get(selection.old_contents);
   if (old_contextual_registry) {
     old_contextual_registry->RemoveObserver(this);
-    combobox_model_->RemoveItems(old_contextual_registry->entries());
+    std::vector<SidePanelEntry::Key> contextual_keys_to_remove;
+
+    // Only remove the previous tab's contextual entries from the combobox if
+    // they are not in the global registry.
+    for (auto const& entry : old_contextual_registry->entries()) {
+      if (!global_registry_->GetEntryForKey(entry->key())) {
+        contextual_keys_to_remove.push_back(entry->key());
+      }
+    }
+
+    combobox_model_->RemoveItems(contextual_keys_to_remove);
   }
 
   // Add the current tab's contextual registry and update the combobox.
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
index 6714c19..268e3ea 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
@@ -141,7 +141,8 @@
 
   // SidePanelRegistryObserver:
   void OnEntryRegistered(SidePanelEntry* entry) override;
-  void OnEntryWillDeregister(SidePanelEntry* entry) override;
+  void OnEntryWillDeregister(SidePanelRegistry* registry,
+                             SidePanelEntry* entry) override;
   void OnEntryIconUpdated(SidePanelEntry* entry) override;
 
   // TabStripModelObserver:
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc b/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
index 3ec0bbd..556d14f 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
@@ -28,6 +28,19 @@
 
 using testing::_;
 
+namespace {
+
+// Creates a basic SidePanelEntry for the given `key` that returns an empty view
+// when shown.
+std::unique_ptr<SidePanelEntry> CreateEntry(const SidePanelEntry::Key& key) {
+  return std::make_unique<SidePanelEntry>(
+      key, u"basic entry",
+      ui::ImageModel::FromVectorIcon(kReadLaterIcon, ui::kColorIcon),
+      base::BindRepeating([]() { return std::make_unique<views::View>(); }));
+}
+
+}  // namespace
+
 class SidePanelCoordinatorTest : public TestWithBrowserView {
  public:
   void SetUp() override {
@@ -1036,6 +1049,108 @@
   ASSERT_EQ(1, global_count);
 }
 
+// Test that the combobox shows the correct number of extension entries when
+// global or contextual entries are registered.
+TEST_F(SidePanelCoordinatorTest, RegisterExtensionEntries) {
+  // Make sure the second tab is active.
+  browser_view()->browser()->tab_strip_model()->ActivateTabAt(1);
+  SidePanelEntry::Key extension_1_key(SidePanelEntry::Id::kExtension,
+                                      "extension_1");
+  SidePanelEntry::Key extension_2_key(SidePanelEntry::Id::kExtension,
+                                      "extension_2");
+  auto* combobox_model = coordinator_->GetComboboxModelForTesting();
+  EXPECT_FALSE(combobox_model->HasKey(extension_1_key));
+
+  // Currently on the second tab. Sanity check that registering an entry on the
+  // first tab should not show an entry in the combobox.
+  contextual_registries_[0]->Register(CreateEntry(extension_1_key));
+  EXPECT_FALSE(combobox_model->HasKey(extension_1_key));
+
+  contextual_registries_[1]->Register(CreateEntry(extension_1_key));
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+
+  // Check that registering a global entry while the combobox contains an item
+  // for the contextual entry still results in one item for an extension.
+  global_registry_->Register(CreateEntry(extension_1_key));
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+
+  EXPECT_FALSE(combobox_model->HasKey(extension_2_key));
+  global_registry_->Register(CreateEntry(extension_2_key));
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_2_key));
+
+  // Check that registering an entry on the active tab while the combobox
+  // contains an item for the global entry still results in one item for an
+  // extension.
+  contextual_registries_[1]->Register(CreateEntry(extension_2_key));
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_2_key));
+}
+
+// Test that the combobox shows the correct number of extension entries when
+// global or contextual entries are deregistered.
+TEST_F(SidePanelCoordinatorTest, DeregisterExtensionEntries) {
+  // Make sure the second tab is active.
+  browser_view()->browser()->tab_strip_model()->ActivateTabAt(1);
+  SidePanelEntry::Key extension_1_key(SidePanelEntry::Id::kExtension,
+                                      "extension_1");
+  auto* combobox_model = coordinator_->GetComboboxModelForTesting();
+
+  // Registers an entry in the global and active contextual registry.
+  auto register_entries = [this, &combobox_model, &extension_1_key]() {
+    contextual_registries_[1]->Register(CreateEntry(extension_1_key));
+    global_registry_->Register(CreateEntry(extension_1_key));
+    EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+  };
+
+  register_entries();
+  // If the contextual entry is deregistered while there exists a global entry,
+  // an entry should still be shown in the combobox.
+  contextual_registries_[1]->Deregister(extension_1_key);
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+  global_registry_->Deregister(extension_1_key);
+  EXPECT_FALSE(combobox_model->HasKey(extension_1_key));
+
+  register_entries();
+  // If the global entry is deregistered while there exists an active contextual
+  // entry, an entry should still be shown in the combobox.
+  global_registry_->Deregister(extension_1_key);
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+  contextual_registries_[1]->Deregister(extension_1_key);
+  EXPECT_FALSE(combobox_model->HasKey(extension_1_key));
+}
+
+// Test that the combobox shows the correct number of extension entries in
+// between tab switches.
+TEST_F(SidePanelCoordinatorTest, ExtensionEntriesTabSwitching) {
+  // Make sure the second tab is active.
+  browser_view()->browser()->tab_strip_model()->ActivateTabAt(1);
+  SidePanelEntry::Key extension_1_key(SidePanelEntry::Id::kExtension,
+                                      "extension_1");
+  auto* combobox_model = coordinator_->GetComboboxModelForTesting();
+
+  contextual_registries_[1]->Register(CreateEntry(extension_1_key));
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+
+  // Switch to the first tab, which does not have an extension entry for its
+  // registry.
+  browser_view()->browser()->tab_strip_model()->ActivateTabAt(0);
+  EXPECT_FALSE(combobox_model->HasKey(extension_1_key));
+
+  // Register an extension entry to the global registry.
+  global_registry_->Register(CreateEntry(extension_1_key));
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+
+  // Switch back to the second tab. There should be only one extension entry in
+  // the combobox, corresponding to the contextual registry's extension entry.
+  browser_view()->browser()->tab_strip_model()->ActivateTabAt(1);
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+
+  // Finally, switch back to the first tab. There should be only one extension
+  // entry in the combobox, corresponding to the global registry's extension
+  // entry.
+  browser_view()->browser()->tab_strip_model()->ActivateTabAt(0);
+  EXPECT_EQ(1, combobox_model->GetKeyCountForTesting(extension_1_key));
+}
+
 // Test that the SidePanelCoordinator behaves and updates corrected when dealing
 // with entries that load/display asynchronously.
 class SidePanelCoordinatorLoadingContentTest : public SidePanelCoordinatorTest {
diff --git a/chrome/browser/ui/views/side_panel/side_panel_registry.cc b/chrome/browser/ui/views/side_panel/side_panel_registry.cc
index 4880497..2e596bd78 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_registry.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_registry.cc
@@ -78,7 +78,7 @@
     active_entry_.reset();
   }
   for (SidePanelRegistryObserver& observer : observers_) {
-    observer.OnEntryWillDeregister(entry);
+    observer.OnEntryWillDeregister(this, entry);
   }
   RemoveEntry(entry);
   return true;
diff --git a/chrome/browser/ui/views/side_panel/side_panel_registry_observer.h b/chrome/browser/ui/views/side_panel/side_panel_registry_observer.h
index e61b09c..3160a5d 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_registry_observer.h
+++ b/chrome/browser/ui/views/side_panel/side_panel_registry_observer.h
@@ -8,17 +8,19 @@
 #include "base/observer_list_types.h"
 
 class SidePanelEntry;
+class SidePanelRegistry;
 
 class SidePanelRegistryObserver : public base::CheckedObserver {
  public:
   // Called when a SidePanelEntry is added to the registry.
   virtual void OnEntryRegistered(SidePanelEntry* entry) {}
 
-  // Called immediately before a SidePanelEntry is being removed from the
+  // Called immediately before a SidePanelEntry is being removed from the given
   // registry.
-  virtual void OnEntryWillDeregister(SidePanelEntry* entry) {}
+  virtual void OnEntryWillDeregister(SidePanelRegistry* registry,
+                                     SidePanelEntry* entry) {}
 
-  // Called when a SidePanelEntry's icon has been updated
+  // Called when a SidePanelEntry's icon has been updated.
   virtual void OnEntryIconUpdated(SidePanelEntry* entry) {}
 
  protected:
diff --git a/chrome/browser/ui/webui/ash/emoji/emoji_page_handler.cc b/chrome/browser/ui/webui/ash/emoji/emoji_page_handler.cc
index 796b7d9e..6fc871b 100644
--- a/chrome/browser/ui/webui/ash/emoji/emoji_page_handler.cc
+++ b/chrome/browser/ui/webui/ash/emoji/emoji_page_handler.cc
@@ -77,7 +77,7 @@
       // Can't use this->ime_ either as it may not be active, want to ensure
       // that we get the active IME.
       ui::InputMethod* input_method =
-          ui::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
+          IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
 
       if (!input_method) {
         return;
@@ -180,7 +180,7 @@
   // e.g. JS has mutated the web page while emoji picker was open, so check
   // that a valid input client is available as part of inserting the emoji.
   ui::InputMethod* input_method =
-      ui::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
+      IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
   if (!input_method) {
     DLOG(WARNING) << "no input_method found";
     CopyEmojiToClipboard(emoji_to_insert);
diff --git a/chrome/browser/ui/webui/ash/emoji/emoji_ui.cc b/chrome/browser/ui/webui/ash/emoji/emoji_ui.cc
index f477e75d..c82dcdf 100644
--- a/chrome/browser/ui/webui/ash/emoji/emoji_ui.cc
+++ b/chrome/browser/ui/webui/ash/emoji/emoji_ui.cc
@@ -74,7 +74,7 @@
   }
 
   ui::InputMethod* input_method =
-      ui::IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
+      IMEBridge::Get()->GetInputContextHandler()->GetInputMethod();
   ui::TextInputClient* input_client =
       input_method ? input_method->GetTextInputClient() : nullptr;
   const bool incognito_mode =
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 dc6f6f4..7d1f4cf 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2025,6 +2025,16 @@
       {"fledgePageTitle", IDS_SETTINGS_FLEDGE_PAGE_TITLE},
       {"fledgePageToggleLabel", IDS_SETTINGS_FLEDGE_PAGE_TOGGLE_LABEL},
       {"fledgePageToggleSubLabel", IDS_SETTINGS_FLEDGE_PAGE_TOGGLE_SUB_LABEL},
+      {"fledgePageCurrentSitesHeading",
+       IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_HEADING},
+      {"fledgePageCurrentSitesDescription",
+       IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION},
+      {"fledgePageCurrentSitesDescriptionLearnMore",
+       IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_LEARN_MORE},
+      {"fledgePageCurrentSitesDescriptionDisabled",
+       IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_DISABLED},
+      {"fledgePageCurrentSitesDescriptionEmpty",
+       IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_EMPTY},
       {"adMeasurementPageTitle", IDS_SETTINGS_AD_MEASUREMENT_PAGE_TITLE},
       {"adMeasurementPageToggleLabel",
        IDS_SETTINGS_AD_MEASUREMENT_PAGE_TOGGLE_LABEL},
diff --git a/chrome/browser/ui/webui/settings/site_settings_handler.cc b/chrome/browser/ui/webui/settings/site_settings_handler.cc
index 99c4910..efa9ec7 100644
--- a/chrome/browser/ui/webui/settings/site_settings_handler.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_handler.cc
@@ -1594,12 +1594,16 @@
 
   // Show an infobar reminding the user to reload tabs where their site
   // permissions have been updated.
+  // Info bar should only be shown on pages with the same origin and
+  // on the same profile
   for (auto* it : *BrowserList::GetInstance()) {
     TabStripModel* tab_strip = it->tab_strip_model();
     for (int i = 0; i < tab_strip->count(); ++i) {
       content::WebContents* web_contents = tab_strip->GetWebContentsAt(i);
       GURL tab_url = web_contents->GetLastCommittedURL();
-      if (url::IsSameOriginWith(origin, tab_url)) {
+      if (url::IsSameOriginWith(origin, tab_url) &&
+          it->profile()->GetOriginalProfile() ==
+              profile_->GetOriginalProfile()) {
         infobars::ContentInfoBarManager* infobar_manager =
             infobars::ContentInfoBarManager::FromWebContents(web_contents);
         PageInfoInfoBarDelegate::Create(infobar_manager);
diff --git a/chrome/browser/ui/webui/settings/site_settings_handler.h b/chrome/browser/ui/webui/settings/site_settings_handler.h
index 42eff52..98772b6 100644
--- a/chrome/browser/ui/webui/settings/site_settings_handler.h
+++ b/chrome/browser/ui/webui/settings/site_settings_handler.h
@@ -165,6 +165,9 @@
   FRIEND_TEST_ALL_PREFIXES(
       SiteSettingsHandlerTest,
       SendNotificationPermissionReviewList_FeatureDisabled);
+  FRIEND_TEST_ALL_PREFIXES(
+      SiteSettingsHandlerInfobarTest,
+      SettingPermissionsDoesNotTriggerInfobarOnDifferentProfile);
 #if BUILDFLAG(ENABLE_EXTENSIONS)
   FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, HandleGetExtensionName);
 #endif
diff --git a/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc b/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
index b9d0da3..edb638d3 100644
--- a/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
@@ -1962,6 +1962,11 @@
     window2_ = CreateBrowserWindow();
     browser2_ =
         CreateBrowser(profile(), browser()->type(), false, window2_.get());
+    window3_ = CreateBrowserWindow();
+
+    TestingProfile* profile2_ = CreateProfile2();
+    browser3_ =
+        CreateBrowser(profile2_, browser()->type(), false, window3_.get());
 
     extensions::TestExtensionSystem* extension_system =
         static_cast<extensions::TestExtensionSystem*>(
@@ -1975,10 +1980,16 @@
     // make sure that's cleared before BrowserContext / profile destruction.
     handler()->DisallowJavascript();
 
-    // Also destroy |browser2_| before the profile. browser()'s destruction is
-    // handled in BrowserWithTestWindowTest::TearDown().
+    // Also destroy `browser2_` before the profile.
     browser2()->tab_strip_model()->CloseAllTabs();
     browser2_.reset();
+
+    // Destroy `browser3_`.
+    browser3()->tab_strip_model()->CloseAllTabs();
+    browser3_.reset();
+
+    // Browser()'s destruction is handled in
+    // BrowserWithTestWindowTest::TearDown()
     BrowserWithTestWindowTest::TearDown();
   }
 
@@ -2017,6 +2028,18 @@
 
   Browser* browser2() { return browser2_.get(); }
 
+  // browser3 is from a different profile `profile2_` than
+  // browser2 and browser() which are from profile()
+  Browser* browser3() { return browser3_.get(); }
+
+  // Creates the second profile used by this test. The caller doesn't own the
+  // return value.
+  TestingProfile* CreateProfile2() {
+    return profile_manager()->CreateTestingProfile("testing_profile2@test",
+                                                   nullptr, std::u16string(), 0,
+                                                   GetTestingFactories());
+  }
+
   const std::string kNotifications;
 
  private:
@@ -2024,6 +2047,8 @@
   std::unique_ptr<SiteSettingsHandler> handler_;
   std::unique_ptr<BrowserWindow> window2_;
   std::unique_ptr<Browser> browser2_;
+  std::unique_ptr<BrowserWindow> window3_;
+  std::unique_ptr<Browser> browser3_;
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   std::unique_ptr<user_manager::ScopedUserManager> scoped_user_manager_;
 #endif
@@ -2170,6 +2195,54 @@
   EXPECT_TRUE(url::IsSameOriginWith(origin, tab_url));
 }
 
+TEST_F(SiteSettingsHandlerInfobarTest,
+       SettingPermissionsDoesNotTriggerInfobarOnDifferentProfile) {
+  // Note all GURLs starting with 'origin' below belong to the same origin.
+  //               _______________
+  //   Window 1:  / origin_anchor \
+  // -------------       -----------------------------------------------------
+  const GURL origin("https://www.example.com/");
+  std::string origin_anchor_string =
+      "https://www.example.com/with/path/blah#heading";
+  const GURL origin_anchor(origin_anchor_string);
+
+  //   Different
+  //   Profile (2) ______________
+  //   Window 3:  / origin_query \
+  // -------------------------------------------------------------------------
+  const GURL origin_query("https://www.example.com/?param=value");
+
+  // Set up. No info bars.
+  AddTab(browser(), origin_anchor);
+  EXPECT_EQ(0u,
+            GetInfoBarManagerForTab(browser(), 0, nullptr)->infobar_count());
+
+  AddTab(browser3(), origin_query);
+  EXPECT_EQ(0u,
+            GetInfoBarManagerForTab(browser3(), 0, nullptr)->infobar_count());
+
+  // Block notifications.
+  base::Value::List set_args;
+  set_args.Append(origin_anchor_string);
+  set_args.Append(kNotifications);
+  set_args.Append(
+      content_settings::ContentSettingToString(CONTENT_SETTING_BLOCK));
+  handler()->HandleSetOriginPermissions(set_args);
+
+  // Make sure all tabs within the same profile belonging to the same origin
+  // as `origin_anchor` have an infobar shown.
+  GURL tab_url;
+  EXPECT_EQ(1u,
+            GetInfoBarManagerForTab(browser(), 0, &tab_url)->infobar_count());
+  EXPECT_TRUE(url::IsSameOriginWith(origin, tab_url));
+
+  // Make sure all tabs with the same origin as `origin_anchor` that don't
+  // belong to the same profile don't have an infobar shown
+  EXPECT_EQ(0u,
+            GetInfoBarManagerForTab(browser3(), 0, &tab_url)->infobar_count());
+  EXPECT_TRUE(url::IsSameOriginWith(origin, tab_url));
+}
+
 TEST_F(SiteSettingsHandlerTest, SessionOnlyException) {
   const std::string google_with_port("https://www.google.com:443");
   base::Value::List set_args;
diff --git a/chrome/browser/updater/browser_updater_client_util_mac.mm b/chrome/browser/updater/browser_updater_client_util_mac.mm
index d3ed974c..e255359 100644
--- a/chrome/browser/updater/browser_updater_client_util_mac.mm
+++ b/chrome/browser/updater/browser_updater_client_util_mac.mm
@@ -266,8 +266,8 @@
   NSString* prompt = l10n_util::GetNSStringFWithFixup(
       IDS_PROMOTE_AUTHENTICATION_PROMPT,
       l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
-  base::mac::ScopedAuthorizationRef authorization(
-      base::mac::AuthorizationCreateToRunAsRoot(base::mac::NSToCFCast(prompt)));
+  base::mac::ScopedAuthorizationRef authorization =
+      base::mac::AuthorizationCreateToRunAsRoot(base::mac::NSToCFCast(prompt));
   if (!authorization.get()) {
     VLOG(0) << "Could not get authorization to run as root.";
     return;
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 3abba189..23f3ce8 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1672378270-d6b24f5817642a85871f23e64c4c3cecaef0f277.profdata
+chrome-linux-main-1672487919-f65ef54df96469281ac24150007e5d97e834af43.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 9b44b36d..7769ac76 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1672378270-90f16545179ef7958773bb1f907d5c7745ebcd5e.profdata
+chrome-mac-arm-main-1672487919-4d28ece0d17c7bf72c52a8cd5d196873e54889a5.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index e6a3d990..c154024 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1672378270-e289717da29ee1d5d1e018e45b694b22439bbb7f.profdata
+chrome-mac-main-1672487919-38da9d7a3b7f7b1783cf9b62078524f01dabe92f.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index e2d7ab0..dcbd3a9b 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1672378270-aed1a0483b2bcf326c3054219a1a9b7fbc089412.profdata
+chrome-win32-main-1672475384-64fd742d3090c940c993f2262a73a772fc52e84b.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index d6a57e1..a20f982d 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1672378270-22ff4bdcf83f9f96eefe20e31c0e82d599fe26a7.profdata
+chrome-win64-main-1672487919-6e602bafa7e2ee9345fc7f93516d3095324476fd.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index b31b6c0..48e31803 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -548,6 +548,11 @@
 BASE_FEATURE(kHappinessTrackingSystem,
              "HappinessTrackingSystem",
              base::FEATURE_DISABLED_BY_DEFAULT);
+// Enables or disables the Happiness Tracking System for Bluetooth revamp
+// survey.
+BASE_FEATURE(kHappinessTrackingSystemBluetoothRevamp,
+             "HappinessTrackingSystemBluetoothRevamp",
+             base::FEATURE_DISABLED_BY_DEFAULT);
 // Enables or disables the Happiness Tracking System for the Ent survey.
 BASE_FEATURE(kHappinessTrackingSystemEnt,
              "HappinessTrackingSystemEnt",
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index 8280c2c..0305aa8 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -311,6 +311,9 @@
 BASE_DECLARE_FEATURE(kHappinessTrackingSystem);
 
 COMPONENT_EXPORT(CHROME_FEATURES)
+BASE_DECLARE_FEATURE(kHappinessTrackingSystemBluetoothRevamp);
+
+COMPONENT_EXPORT(CHROME_FEATURES)
 BASE_DECLARE_FEATURE(kHappinessTrackingSystemEnt);
 
 COMPONENT_EXPORT(CHROME_FEATURES)
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index f91b0fb..8af56b3 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -765,6 +765,16 @@
 const char kUnifiedDesktopEnabledByDefault[] =
     "settings.display.unified_desktop_enabled_by_default";
 
+// An int64 pref. This is the timestamp, microseconds after epoch, that
+// indicates the end of the Bluetooth revamp experience survey.
+const char kHatsBluetoothRevampCycleEndTs[] =
+    "hats_bluetooth_revamp_cycle_end_timestamp";
+
+// A boolean pref. Indicates if the device is selected for the HaTS Bluetooth
+// revamp experience survey.
+const char kHatsBluetoothRevampIsSelected[] =
+    "hats_bluetooth_revamp_is_selected";
+
 // An int64 pref. This is a timestamp, microseconds after epoch, of the most
 // recent time the profile took or dismissed HaTS (happiness-tracking) survey.
 const char kHatsLastInteractionTimestamp[] = "hats_last_interaction_timestamp";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index b00c4b82..0209861 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -283,6 +283,8 @@
 extern const char kPlatformKeys[];
 extern const char kKeyPermissionsOneTimeMigrationDone[];
 extern const char kUnifiedDesktopEnabledByDefault[];
+extern const char kHatsBluetoothRevampCycleEndTs[];
+extern const char kHatsBluetoothRevampIsSelected[];
 extern const char kHatsLastInteractionTimestamp[];
 extern const char kHatsSurveyCycleEndTimestamp[];
 extern const char kHatsDeviceIsSelected[];
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index d9dec36..265f2b18 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -3700,6 +3700,7 @@
         "../browser/ash/arc/session/arc_session_manager_browsertest.cc",
         "../browser/ash/arc/user_session/arc_user_session_service_browsertest.cc",
         "../browser/ash/base/locale_util_browsertest.cc",
+        "../browser/ash/bluetooth/hats_bluetooth_revamp_trigger_impl_browsertest.cc",
         "../browser/ash/child_accounts/family_user_device_metrics_browsertest.cc",
         "../browser/ash/child_accounts/parent_access_code/parent_access_service_browsertest.cc",
         "../browser/ash/child_accounts/parent_access_code/parent_access_test_utils.cc",
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json
index 867a9c1..23702ec 100644
--- a/chrome/test/data/policy/policy_test_cases.json
+++ b/chrome/test/data/policy/policy_test_cases.json
@@ -3943,6 +3943,24 @@
       }
     ]
   },
+  "DeviceLoginScreenExtensionManifestV2Availability": {
+    "os": [
+      "chromeos_ash"
+    ],
+    "policy_pref_mapping_tests": [
+      {
+        "policies": {
+          "DeviceLoginScreenExtensionManifestV2Availability": 1
+        },
+        "prefs": {
+          "extensions.manifest_v2": {
+            "location": "signin_profile",
+            "value": 1
+          }
+        }
+      }
+    ]
+  },
   "BlockExternalExtensions": {
     "os": [
       "win",
diff --git a/chrome/test/data/webui/settings/cr_settings_browsertest.js b/chrome/test/data/webui/settings/cr_settings_browsertest.js
index b6564091..d4950119 100644
--- a/chrome/test/data/webui/settings/cr_settings_browsertest.js
+++ b/chrome/test/data/webui/settings/cr_settings_browsertest.js
@@ -379,16 +379,16 @@
   }
 };
 
-// TODO(crbug.com/1064002): Flaky on Linux.
-GEN('#if BUILDFLAG(IS_LINUX)');
-GEN('#define MAYBE_SiteList DISABLED_SiteList');
-GEN('#else');
-GEN('#define MAYBE_SiteList SiteList');
-GEN('#endif');
-TEST_F('CrSettingsSiteListTest', 'MAYBE_SiteList', function() {
+TEST_F('CrSettingsSiteListTest', 'SiteList', function() {
   runMochaSuite('SiteList');
 });
 
+// TODO(crbug.com/929455, crbug.com/1064002): Flaky test. When it is fixed,
+// merge SiteListDisabled back into SiteList.
+TEST_F('CrSettingsSiteListTest', 'DISABLED_SiteListDisabled', function() {
+  runMochaSuite('DISABLED_SiteList');
+});
+
 // TODO(crbug.com/929455): When the bug is fixed, merge
 // SiteListEmbargoedOrigin into SiteList.
 TEST_F('CrSettingsSiteListTest', 'SiteListEmbargoedOrigin', function() {
@@ -1043,24 +1043,14 @@
 // Some tests files are too large to run as a single "All" test (e.g. as above),
 // and flake on some bots. Each test suite can instead be run as an individual
 // test fixture, allowing more time to complete.
-
-// TODO(crbug.com/1403969): SecurityPage_SafeBrowsing suite is flaky on Mac,
-// but the operation of this file requires disabling all tests.
-// TODO(crbug.com/1404146): Figure out way of disabling tests per suite instead
-// of disabling the entire file.
-GEN('#if !BUILDFLAG(IS_MAC)');
 [[
-  'SecurityPage',
-  'security_page_test.js',
+  'SecurityPage', 'security_page_test.js',
   [
     'SecurityPage',
-    'SecurityPage_SafeBrowsing',
     'SecurityPage_FlagsDisabled',
-  ],
-]].forEach(test => registerTestSuites(...test));
-GEN('#endif');
-
-[[
+  ]
+],
+ [
    'AllSites',
    'all_sites_tests.js',
    [
@@ -1068,17 +1058,27 @@
      'AllSites_DisableFirstPartySets',
    ],
  ],
+
 ].forEach(test => registerTestSuites(...test));
 
+// TODO(crbug.com/1403969): SecurityPage_SafeBrowsing suite is flaky on Mac.
+GEN('#if !BUILDFLAG(IS_MAC)');
+registerTestSuites(
+    'SecurityPage', 'security_page_test.js', ['SecurityPage_SafeBrowsing']);
+GEN('#endif');
+
 function registerTestSuites(testName, module, suites) {
   const className = `CrSettings${testName}Test`;
-  this[className] = class extends CrSettingsBrowserTest {
-    /** @override */
-    get browsePreload() {
-      return `chrome://settings/test_loader.html?module=settings/${module}`;
-    }
-  };
-
+  // The classname may have already been registered, such as if some suites only
+  // run on some platforms.
+  if (!this[className]) {
+    this[className] = class extends CrSettingsBrowserTest {
+      /** @override */
+      get browsePreload() {
+        return `chrome://settings/test_loader.html?module=settings/${module}`;
+      }
+    };
+  }
   suites.forEach((suite) => {
     TEST_F(className, suite, () => runMochaSuite(suite));
   })
diff --git a/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts b/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts
index 4f0292d..ebc50be 100644
--- a/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts
+++ b/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts
@@ -366,6 +366,7 @@
 
 suite('PrivacySandboxFledgeSubpageTests', function() {
   let page: SettingsPrivacySandboxFledgeSubpageElement;
+  let testPrivacySandboxBrowserProxy: TestPrivacySandboxBrowserProxy;
   let settingsPrefs: SettingsPrefsElement;
 
   suiteSetup(function() {
@@ -376,12 +377,16 @@
     return CrSettingsPrefs.initialized;
   });
 
-  setup(function() {
+  setup(async function() {
+    testPrivacySandboxBrowserProxy = new TestPrivacySandboxBrowserProxy();
+    PrivacySandboxBrowserProxyImpl.setInstance(testPrivacySandboxBrowserProxy);
+
     document.body.innerHTML = window.trustedTypes!.emptyHTML;
     document.body.appendChild(settingsPrefs);
     page = document.createElement('settings-privacy-sandbox-fledge-subpage');
     page.prefs = settingsPrefs.prefs!;
     document.body.appendChild(page);
+    await testPrivacySandboxBrowserProxy.whenCalled('getFledgeState');
     return flushTasks();
   });
 
@@ -397,6 +402,9 @@
     assertEquals(
         loadTimeData.getString('fledgePageToggleSubLabel'),
         page.$.fledgeToggle.subLabel);
+    assertFalse(isChildVisible(page, '#currentSitesDescription'));
+    assertFalse(isChildVisible(page, '#currentSitesDescriptionEmpty'));
+    assertTrue(isChildVisible(page, '#currentSitesDescriptionDisabled'));
 
     page.$.fledgeToggle.click();
     await flushTasks();
@@ -406,6 +414,11 @@
         loadTimeData.getString('fledgePageToggleSubLabel'),
         page.$.fledgeToggle.subLabel);
     assertTrue(!!page.getPref('privacy_sandbox.m1.fledge_enabled.value'));
+    assertTrue(isChildVisible(page, '#currentSitesDescription'));
+    // TODO(crbug.com/1378703): Add test for `#currentSitesDescriptionEmpty`
+    // when `getFledgeState()` returns an empty list.
+    assertFalse(isChildVisible(page, '#currentSitesDescriptionEmpty'));
+    assertFalse(isChildVisible(page, '#currentSitesDescriptionDisabled'));
   });
 
   test('disableFledgeToggle', async function() {
@@ -416,6 +429,11 @@
     assertEquals(
         loadTimeData.getString('fledgePageToggleSubLabel'),
         page.$.fledgeToggle.subLabel);
+    assertTrue(isChildVisible(page, '#currentSitesDescription'));
+    // TODO(crbug.com/1378703): Add test for `#currentSitesDescriptionEmpty`
+    // when `getFledgeState()` returns an empty list.
+    assertFalse(isChildVisible(page, '#currentSitesDescriptionEmpty'));
+    assertFalse(isChildVisible(page, '#currentSitesDescriptionDisabled'));
 
     page.$.fledgeToggle.click();
     await flushTasks();
@@ -425,6 +443,9 @@
         loadTimeData.getString('fledgePageToggleSubLabel'),
         page.$.fledgeToggle.subLabel);
     assertFalse(!!page.getPref('privacy_sandbox.m1.fledge_enabled.value'));
+    assertFalse(isChildVisible(page, '#currentSitesDescription'));
+    assertFalse(isChildVisible(page, '#currentSitesDescriptionEmpty'));
+    assertTrue(isChildVisible(page, '#currentSitesDescriptionDisabled'));
   });
 });
 
diff --git a/chrome/test/data/webui/settings/site_list_tests.ts b/chrome/test/data/webui/settings/site_list_tests.ts
index 195f620..f620d72 100644
--- a/chrome/test/data/webui/settings/site_list_tests.ts
+++ b/chrome/test/data/webui/settings/site_list_tests.ts
@@ -535,6 +535,93 @@
   });
 });
 
+// TODO(crbug.com/929455, crbug.com/1064002): Flaky test. When it is fixed,
+// merge SiteListDisabled back into SiteList.
+suite('DISABLED_SiteList', function() {
+  /**
+   * A site list element created before each test.
+   */
+  let testElement: SiteListElement;
+
+  /**
+   * The mock proxy object to use during test.
+   */
+  let browserProxy: TestSiteSettingsPrefsBrowserProxy;
+
+  suiteSetup(function() {
+    // clang-format off
+          CrSettingsPrefs.setInitialized();
+    // clang-format on
+  });
+
+  suiteTeardown(function() {
+    CrSettingsPrefs.resetForTesting();
+  });
+
+  // Initialize a site-list before each test.
+  setup(function() {
+    populateTestExceptions();
+
+    browserProxy = new TestSiteSettingsPrefsBrowserProxy();
+    SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy);
+    document.body.innerHTML = window.trustedTypes!.emptyHTML;
+    testElement = document.createElement('site-list');
+    testElement.searchFilter = '';
+    document.body.appendChild(testElement);
+  });
+
+  teardown(function() {
+    // The code being tested changes the Route. Reset so that state is not
+    // leaked across tests.
+    Router.getInstance().resetRouteForTesting();
+  });
+
+  /**
+   * Configures the test element for a particular category.
+   * @param category The category to set up.
+   * @param subtype Type of list to use.
+   * @param prefs The prefs to use.
+   */
+  function setUpCategory(
+      category: ContentSettingsTypes, subtype: ContentSetting,
+      prefs: SiteSettingsPref) {
+    browserProxy.setPrefs(prefs);
+    testElement.cookiesExceptionType = CookiesExceptionType.COMBINED;
+    testElement.categorySubtype = subtype;
+    testElement.category = category;
+  }
+
+  test('list items shown and clickable when data is present', async function() {
+    const contentType = ContentSettingsTypes.GEOLOCATION;
+    setUpCategory(contentType, ContentSetting.ALLOW, prefsGeolocation);
+    const actualContentType = await browserProxy.whenCalled('getExceptionList');
+    assertEquals(contentType, actualContentType);
+
+    // Required for firstItem to be found below.
+    flush();
+
+    // Validate that the sites gets populated from pre-canned prefs.
+    assertEquals(2, testElement.sites.length);
+    assertEquals(
+        prefsGeolocation.exceptions[contentType][0]!.origin,
+        testElement.sites[0]!.origin);
+    assertEquals(
+        prefsGeolocation.exceptions[contentType][1]!.origin,
+        testElement.sites[1]!.origin);
+
+    // Validate that the sites are shown in UI and can be selected.
+    const clickable = testElement.shadowRoot!.querySelector('site-list-entry')!
+                          .shadowRoot!.querySelector<HTMLElement>('.middle');
+    assertTrue(!!clickable);
+    clickable!.click();
+
+    await flushTasks();
+    assertEquals(
+        prefsGeolocation.exceptions[contentType][0]!.origin,
+        Router.getInstance().getQueryParameters().get('site'));
+  });
+});
+
 suite('SiteList', function() {
   /**
    * A site list element created before each test.
@@ -953,36 +1040,6 @@
         });
   });
 
-  test('list items shown and clickable when data is present', async function() {
-    const contentType = ContentSettingsTypes.GEOLOCATION;
-    setUpCategory(contentType, ContentSetting.ALLOW, prefsGeolocation);
-    const actualContentType = await browserProxy.whenCalled('getExceptionList');
-    assertEquals(contentType, actualContentType);
-
-    // Required for firstItem to be found below.
-    flush();
-
-    // Validate that the sites gets populated from pre-canned prefs.
-    assertEquals(2, testElement.sites.length);
-    assertEquals(
-        prefsGeolocation.exceptions[contentType][0]!.origin,
-        testElement.sites[0]!.origin);
-    assertEquals(
-        prefsGeolocation.exceptions[contentType][1]!.origin,
-        testElement.sites[1]!.origin);
-
-    // Validate that the sites are shown in UI and can be selected.
-    const clickable = testElement.shadowRoot!.querySelector('site-list-entry')!
-                          .shadowRoot!.querySelector<HTMLElement>('.middle');
-    assertTrue(!!clickable);
-    clickable!.click();
-
-    await flushTasks();
-    assertEquals(
-        prefsGeolocation.exceptions[contentType][0]!.origin,
-        Router.getInstance().getQueryParameters().get('site'));
-  });
-
   test('Block list open when Allow list is empty', async function() {
     // Prefs: One item in Block list, nothing in Allow list.
     const contentType = ContentSettingsTypes.GEOLOCATION;
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index 9aaa905f..05c6c7fb 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-15296.0.0
\ No newline at end of file
+15297.0.0
\ No newline at end of file
diff --git a/chromeos/crosapi/mojom/test_controller.mojom b/chromeos/crosapi/mojom/test_controller.mojom
index 6e1c1f5..80a479ae 100644
--- a/chromeos/crosapi/mojom/test_controller.mojom
+++ b/chromeos/crosapi/mojom/test_controller.mojom
@@ -151,11 +151,11 @@
   // Calls the callback when the input method has focused on some input field.
   WaitForFocus@0() => ();
 
-  // Calls ui::InputMethodAsh::CommitText with
+  // Calls `ash::InputMethodAsh::CommitText` with
   // InsertTextCursorBehavior::kMoveCursorAfterText.
   CommitText@1(string text) => ();
 
-  // Calls ui::InputMethodAsh::UpdateComposition.
+  // Calls `ash::InputMethodAsh::UpdateComposition`.
   [MinVersion=1] SetComposition@2(string text, uint32 index) => ();
 };
 
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index 5e03627..84cd0ce 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -179,7 +179,7 @@
 <translation id="2498950423397131220">플로팅</translation>
 <translation id="2505327257735685095">현재 배경화면 이미지 새로고침</translation>
 <translation id="2513396635448525189">로그인 이미지</translation>
-<translation id="2517472476991765520">검색</translation>
+<translation id="2517472476991765520">스캔</translation>
 <translation id="2526590354069164005">데스크톱</translation>
 <translation id="253029298928638905">다시 시작 중...</translation>
 <translation id="2533048460510040082">추천 도움말 콘텐츠</translation>
diff --git a/components/autofill/core/browser/metrics/autofill_metrics.h b/components/autofill/core/browser/metrics/autofill_metrics.h
index 73eea08..c814269 100644
--- a/components/autofill/core/browser/metrics/autofill_metrics.h
+++ b/components/autofill/core/browser/metrics/autofill_metrics.h
@@ -472,16 +472,20 @@
     // UNMASK_PROMPT_SAVED_CARD_LOCALLY = 6,
     // User chose to opt in (checked the checkbox when it was empty).
     // Only logged if there was an attempt to unmask.
-    UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_IN = 7,
+    // Deprecated.
+    // UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_IN = 7,
     // User did not opt in when they had the chance (left the checkbox
     // unchecked).  Only logged if there was an attempt to unmask.
-    UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_IN = 8,
+    // Deprecated.
+    // UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_IN = 8,
     // User chose to opt out (unchecked the checkbox when it was check).
     // Only logged if there was an attempt to unmask.
-    UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_OUT = 9,
+    // Deprecated.
+    // UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_OUT = 9,
     // User did not opt out when they had a chance (left the checkbox checked).
     // Only logged if there was an attempt to unmask.
-    UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_OUT = 10,
+    // Deprecated.
+    // UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_OUT = 10,
     // The prompt was closed while chrome was unmasking the card (user pressed
     // verify and we were waiting for the server response).
     UNMASK_PROMPT_CLOSED_ABANDON_UNMASKING = 11,
diff --git a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h
index 2354573..38166a67 100644
--- a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h
+++ b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h
@@ -32,12 +32,10 @@
   virtual std::u16string GetOkButtonLabel() const = 0;
   virtual int GetCvcImageRid() const = 0;
   virtual bool ShouldRequestExpirationDate() const = 0;
-  virtual bool GetStoreLocallyStartState() const = 0;
 #if BUILDFLAG(IS_ANDROID)
   virtual int GetGooglePayImageRid() const = 0;
   virtual bool ShouldOfferWebauthn() const = 0;
   virtual bool GetWebauthnOfferStartState() const = 0;
-  virtual bool IsCardLocal() const = 0;
 #endif
   virtual base::TimeDelta GetSuccessMessageDuration() const = 0;
   virtual AutofillClient::PaymentsRpcResult GetVerificationResult() const = 0;
diff --git a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
index 561251d..df0b36a 100644
--- a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
+++ b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
@@ -220,20 +220,14 @@
 }
 
 std::u16string CardUnmaskPromptControllerImpl::GetInstructionsMessage() const {
-// The prompt for server cards should reference Google Payments, whereas the
-// prompt for local cards should not.
 #if BUILDFLAG(IS_IOS)
   int ids;
   if (card_unmask_prompt_options_.reason ==
           AutofillClient::UnmaskCardReason::kAutofill &&
       ShouldRequestExpirationDate()) {
-    ids = card_.record_type() == CreditCard::LOCAL_CARD
-              ? IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_EXPIRED_LOCAL_CARD
-              : IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_EXPIRED;
+    ids = IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_EXPIRED;
   } else {
-    ids = card_.record_type() == CreditCard::LOCAL_CARD
-              ? IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_LOCAL_CARD
-              : IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS;
+    ids = IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS;
   }
   // The iOS UI shows the card details in the instructions text since they
   // don't fit in the title.
@@ -253,9 +247,7 @@
             card_unmask_prompt_options_.challenge_option->cvc_position));
   }
   return l10n_util::GetStringUTF16(
-      card_.record_type() == CreditCard::LOCAL_CARD
-          ? IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_LOCAL_CARD
-          : IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS);
+      IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS);
 #endif
 }
 
@@ -290,11 +282,6 @@
          new_card_link_clicked_;
 }
 
-bool CardUnmaskPromptControllerImpl::GetStoreLocallyStartState() const {
-  return pref_service_->GetBoolean(
-      prefs::kAutofillWalletImportStorageCheckboxState);
-}
-
 #if BUILDFLAG(IS_ANDROID)
 int CardUnmaskPromptControllerImpl::GetGooglePayImageRid() const {
   return IDR_AUTOFILL_GOOGLE_PAY_WITH_DIVIDER;
@@ -308,11 +295,6 @@
   return pref_service_->GetBoolean(
       prefs::kAutofillCreditCardFidoAuthOfferCheckboxState);
 }
-
-bool CardUnmaskPromptControllerImpl::IsCardLocal() const {
-  return card_.record_type() == CreditCard::LOCAL_CARD;
-}
-
 #endif
 
 bool CardUnmaskPromptControllerImpl::InputCvcIsValid(
@@ -381,9 +363,8 @@
 base::TimeDelta CardUnmaskPromptControllerImpl::GetSuccessMessageDuration()
     const {
   return base::Milliseconds(
-      card_.record_type() == CreditCard::LOCAL_CARD ||
-              card_unmask_prompt_options_.reason ==
-                  AutofillClient::UnmaskCardReason::kPaymentRequest
+      card_unmask_prompt_options_.reason ==
+              AutofillClient::UnmaskCardReason::kPaymentRequest
           ? 0
           : 500);
 }
diff --git a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.h b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.h
index 734d865..8c9c6c4 100644
--- a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.h
+++ b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.h
@@ -61,12 +61,10 @@
   std::u16string GetOkButtonLabel() const override;
   int GetCvcImageRid() const override;
   bool ShouldRequestExpirationDate() const override;
-  bool GetStoreLocallyStartState() const override;
 #if BUILDFLAG(IS_ANDROID)
   int GetGooglePayImageRid() const override;
   bool ShouldOfferWebauthn() const override;
   bool GetWebauthnOfferStartState() const override;
-  bool IsCardLocal() const override;
 #endif
   bool InputCvcIsValid(const std::u16string& input_text) const override;
   bool InputExpirationIsValid(const std::u16string& month,
diff --git a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl_unittest.cc b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl_unittest.cc
index c50989cb..ed445b9 100644
--- a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl_unittest.cc
+++ b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl_unittest.cc
@@ -153,11 +153,6 @@
   }
 
  protected:
-  void SetImportCheckboxState(bool value) {
-    pref_service_->SetBoolean(prefs::kAutofillWalletImportStorageCheckboxState,
-                              value);
-  }
-
   void SetCreditCardForTesting(CreditCard card) { card_ = card; }
 
   CreditCard card_ = test::GetMaskedServerCard();
@@ -188,8 +183,6 @@
 
   void SetUp() override {
     CardUnmaskPromptControllerImplGenericTest::SetUp();
-    pref_service_->registry()->RegisterBooleanPref(
-        prefs::kAutofillWalletImportStorageCheckboxState, false);
 #if BUILDFLAG(IS_ANDROID)
     pref_service_->registry()->RegisterBooleanPref(
         prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
@@ -375,8 +368,6 @@
 
   void SetUp() override {
     CardUnmaskPromptControllerImplGenericTest::SetUp();
-    pref_service_->registry()->RegisterBooleanPref(
-        prefs::kAutofillWalletImportStorageCheckboxState, false);
 #if BUILDFLAG(IS_ANDROID)
     pref_service_->registry()->RegisterBooleanPref(
         prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
@@ -540,37 +531,6 @@
       card_has_nickname() ? 1 : 0);
 }
 
-TEST_P(LoggingValidationTestForNickname, DontLogForHiddenCheckbox) {
-  ShowPromptAndSimulateResponse(/*enable_fido_auth=*/false);
-  base::HistogramTester histogram_tester;
-  controller_->OnUnmaskDialogClosed();
-
-  histogram_tester.ExpectBucketCount(
-      "Autofill.UnmaskPrompt.ServerCard.Events",
-      AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_IN, 0);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.UnmaskPrompt.ServerCard.Events",
-      AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_IN, 0);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.UnmaskPrompt.ServerCard.Events",
-      AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_OUT, 0);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.UnmaskPrompt.ServerCard.Events",
-      AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_OUT, 0);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.UnmaskPrompt.Events.WithNickname",
-      AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_IN, 0);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.UnmaskPrompt.Events.WithNickname",
-      AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_IN, 0);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.UnmaskPrompt.Events.WithNickname",
-      AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_OUT, 0);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.UnmaskPrompt.Events.WithNickname",
-      AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_OUT, 0);
-}
-
 TEST_P(LoggingValidationTestForNickname, LogDurationNoAttempts) {
   ShowPrompt();
   base::HistogramTester histogram_tester;
@@ -722,8 +682,6 @@
 
   void SetUp() override {
     CardUnmaskPromptControllerImplGenericTest::SetUp();
-    pref_service_->registry()->RegisterBooleanPref(
-        prefs::kAutofillWalletImportStorageCheckboxState, false);
 #if BUILDFLAG(IS_ANDROID)
     pref_service_->registry()->RegisterBooleanPref(
         prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
@@ -767,8 +725,6 @@
 
   void SetUp() override {
     CardUnmaskPromptControllerImplGenericTest::SetUp();
-    pref_service_->registry()->RegisterBooleanPref(
-        prefs::kAutofillWalletImportStorageCheckboxState, false);
 #if BUILDFLAG(IS_ANDROID)
     pref_service_->registry()->RegisterBooleanPref(
         prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
@@ -821,8 +777,6 @@
 
   void SetUp() override {
     CardUnmaskPromptControllerImplGenericTest::SetUp();
-    pref_service_->registry()->RegisterBooleanPref(
-        prefs::kAutofillWalletImportStorageCheckboxState, false);
 #if BUILDFLAG(IS_ANDROID)
     pref_service_->registry()->RegisterBooleanPref(
         prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
@@ -854,8 +808,6 @@
  public:
   void SetUp() override {
     CardUnmaskPromptControllerImplGenericTest::SetUp();
-    pref_service_->registry()->RegisterBooleanPref(
-        prefs::kAutofillWalletImportStorageCheckboxState, false);
 #if BUILDFLAG(IS_ANDROID)
     pref_service_->registry()->RegisterBooleanPref(
         prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
index 3587c482..2a287a70 100644
--- a/components/autofill/core/common/autofill_prefs.cc
+++ b/components/autofill/core/common/autofill_prefs.cc
@@ -99,11 +99,6 @@
 // user.
 const char kAutofillWalletImportEnabled[] = "autofill.wallet_import_enabled";
 
-// Boolean that is set to the last choice user made when prompted for saving an
-// unmasked server card locally.
-const char kAutofillWalletImportStorageCheckboxState[] =
-    "autofill.wallet_import_storage_checkbox_state";
-
 // Integer that is set to the last major version where the Autocomplete
 // retention policy was run.
 const char kAutocompleteLastVersionRetentionPolicy[] =
@@ -138,8 +133,6 @@
   registry->RegisterIntegerPref(
       prefs::kAutofillCreditCardSigninPromoImpressionCount, 0);
   registry->RegisterBooleanPref(prefs::kAutofillWalletImportEnabled, true);
-  registry->RegisterBooleanPref(
-      prefs::kAutofillWalletImportStorageCheckboxState, true);
   registry->RegisterIntegerPref(
       prefs::kAutofillLastVersionDisusedCreditCardsDeleted, 0);
   registry->RegisterIntegerPref(prefs::kAutocompleteLastVersionRetentionPolicy,
diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h
index f87ce907..d8cb13ec 100644
--- a/components/autofill/core/common/autofill_prefs.h
+++ b/components/autofill/core/common/autofill_prefs.h
@@ -44,7 +44,6 @@
 extern const char kAutofillUploadEvents[];
 extern const char kAutofillUploadEventsLastResetTimestamp[];
 extern const char kAutofillWalletImportEnabled[];
-extern const char kAutofillWalletImportStorageCheckboxState[];
 extern const char kAutocompleteLastVersionRetentionPolicy[];
 
 namespace sync_transport_opt_in {
diff --git a/components/autofill_payments_strings.grdp b/components/autofill_payments_strings.grdp
index 17984953..73aae9a 100644
--- a/components/autofill_payments_strings.grdp
+++ b/components/autofill_payments_strings.grdp
@@ -328,9 +328,6 @@
     <message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS" desc="Text explaining what the user should do in the card unmasking dialog.">
       After you confirm, card details from your Google Account will be shared with this site.
     </message>
-    <message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_LOCAL_CARD" desc="Text explaining what the user should do in the card unmasking dialog.  Appears specifically for local cards already stored on the device.">
-      Once you confirm, your card details will be shared with this site.
-    </message>
     <message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_VIRTUAL_CARD" desc="Text providing instructions on how to unmask virtual card.">
       Enter the <ph name="NUMBER_OF_DIGITS">$1<ex>3</ex></ph>-digit security code on the <ph name="SIDE_OF_CARD">$2<ex>back of your card</ex></ph> so your bank can verify it's you
     </message>
@@ -348,15 +345,9 @@
     <message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS" desc="Text explaining what the user should do in the card unmasking dialog.">
       Enter the CVC for <ph name="CREDIT_CARD">$1<ex>Visa - 5679</ex></ph>. After you confirm, card details from your Google Account will be shared with this site.
     </message>
-    <message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_LOCAL_CARD" desc="Text explaining what the user should do in the card unmasking dialog.  Appears specifically for local cards already stored on the device.">
-      Enter the CVC for <ph name="CREDIT_CARD">$1<ex>Visa - 5679</ex></ph>. Once you confirm, your card details will be shared with this site.
-    </message>
     <message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_EXPIRED" desc="Text explaining what the user should do in the card unmasking dialog to update an expired card.">
       Enter the expiration date and CVC for <ph name="CREDIT_CARD">$1<ex>Visa - 5679</ex></ph> to update your card details. After you confirm, card details from your Google Account will be shared with this site.
     </message>
-    <message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS_EXPIRED_LOCAL_CARD" desc="Text explaining what the user should do in the card unmasking dialog to update an expired card.  Appears specifically for local cards already stored on the device.">
-      Enter the expiration date and CVC for <ph name="CREDIT_CARD">$1<ex>Visa - 5679</ex></ph> to update your card details. Once you confirm, your card details will be shared with this site.
-    </message>
     <message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_CVC_FIELD_TITLE" desc="The name of the field for credit card verification code in the card unmasking dialog. The text field where this is presented can be very narrow, so please prefer to translate this to the most common abbreviated form. [CHAR_LIMIT=4]">
       CVC
     </message>
diff --git a/components/browsing_data/content/cache_storage_helper.cc b/components/browsing_data/content/cache_storage_helper.cc
index 6e7f7b9..63ff7a5 100644
--- a/components/browsing_data/content/cache_storage_helper.cc
+++ b/components/browsing_data/content/cache_storage_helper.cc
@@ -16,6 +16,7 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/browser/storage_usage_info.h"
+#include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "url/gurl.h"
 
 using content::BrowserThread;
@@ -57,13 +58,10 @@
       &GetAllStorageKeysInfoForCacheStorageCallback, std::move(callback)));
 }
 
-void CacheStorageHelper::DeleteCacheStorage(const url::Origin& origin) {
+void CacheStorageHelper::DeleteCacheStorage(
+    const blink::StorageKey& storage_key) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
-  // TODO(https://crbug.com/1199077): Pass the real StorageKey into this
-  // function directly.
-  partition_->GetCacheStorageControl()->DeleteForStorageKey(
-      blink::StorageKey(origin));
+  partition_->GetCacheStorageControl()->DeleteForStorageKey(storage_key);
 }
 
 CannedCacheStorageHelper::CannedCacheStorageHelper(
@@ -72,27 +70,29 @@
 
 CannedCacheStorageHelper::~CannedCacheStorageHelper() {}
 
-void CannedCacheStorageHelper::Add(const url::Origin& origin) {
-  if (!HasWebScheme(origin.GetURL()))
+void CannedCacheStorageHelper::Add(const blink::StorageKey& storage_key) {
+  if (!HasWebScheme(storage_key.origin().GetURL())) {
     return;  // Non-websafe state is not considered browsing data.
+  }
 
-  pending_origins_.insert(origin);
+  pending_storage_key_.insert(storage_key);
 }
 
 void CannedCacheStorageHelper::Reset() {
-  pending_origins_.clear();
+  pending_storage_key_.clear();
 }
 
 bool CannedCacheStorageHelper::empty() const {
-  return pending_origins_.empty();
+  return pending_storage_key_.empty();
 }
 
 size_t CannedCacheStorageHelper::GetCount() const {
-  return pending_origins_.size();
+  return pending_storage_key_.size();
 }
 
-const std::set<url::Origin>& CannedCacheStorageHelper::GetOrigins() const {
-  return pending_origins_;
+const std::set<blink::StorageKey>& CannedCacheStorageHelper::GetStorageKeys()
+    const {
+  return pending_storage_key_;
 }
 
 void CannedCacheStorageHelper::StartFetching(FetchCallback callback) {
@@ -100,16 +100,18 @@
   DCHECK(!callback.is_null());
 
   std::list<StorageUsageInfo> result;
-  for (const auto& origin : pending_origins_)
-    result.emplace_back(blink::StorageKey(origin), 0, base::Time());
+  for (const auto& storage_key : pending_storage_key_) {
+    result.emplace_back(storage_key, 0, base::Time());
+  }
 
   content::GetUIThreadTaskRunner({})->PostTask(
       FROM_HERE, base::BindOnce(std::move(callback), result));
 }
 
-void CannedCacheStorageHelper::DeleteCacheStorage(const url::Origin& origin) {
-  pending_origins_.erase(origin);
-  CacheStorageHelper::DeleteCacheStorage(origin);
+void CannedCacheStorageHelper::DeleteCacheStorage(
+    const blink::StorageKey& storage_key) {
+  pending_storage_key_.erase(storage_key);
+  CacheStorageHelper::DeleteCacheStorage(storage_key);
 }
 
 }  // namespace browsing_data
diff --git a/components/browsing_data/content/cache_storage_helper.h b/components/browsing_data/content/cache_storage_helper.h
index 369ab0d..d88dd04 100644
--- a/components/browsing_data/content/cache_storage_helper.h
+++ b/components/browsing_data/content/cache_storage_helper.h
@@ -14,7 +14,7 @@
 #include "base/callback.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/ref_counted.h"
-#include "url/origin.h"
+#include "third_party/blink/public/common/storage_key/storage_key.h"
 
 namespace content {
 class StoragePartition;
@@ -44,8 +44,8 @@
   // Starts the fetching process, which will notify its completion via
   // |callback|. This must be called only in the UI thread.
   virtual void StartFetching(FetchCallback callback);
-  // Requests the Cache Storage data for an origin be deleted.
-  virtual void DeleteCacheStorage(const url::Origin& origin);
+  // Requests the Cache Storage data for a storage key be deleted.
+  virtual void DeleteCacheStorage(const blink::StorageKey& storage_key);
 
  protected:
   virtual ~CacheStorageHelper();
@@ -70,7 +70,7 @@
 
   // Add a Cache Storage to the set of canned Cache Storages that is
   // returned by this helper.
-  void Add(const url::Origin& origin);
+  void Add(const blink::StorageKey& storage_key);
 
   // Clear the list of canned Cache Storages.
   void Reset();
@@ -82,16 +82,16 @@
   size_t GetCount() const;
 
   // Returns the current list of Cache Storages.
-  const std::set<url::Origin>& GetOrigins() const;
+  const std::set<blink::StorageKey>& GetStorageKeys() const;
 
   // CacheStorageHelper methods.
   void StartFetching(FetchCallback callback) override;
-  void DeleteCacheStorage(const url::Origin& origin) override;
+  void DeleteCacheStorage(const blink::StorageKey& storage_key) override;
 
  private:
   ~CannedCacheStorageHelper() override;
 
-  std::set<url::Origin> pending_origins_;
+  std::set<blink::StorageKey> pending_storage_key_;
 };
 
 }  // namespace browsing_data
diff --git a/components/browsing_data/content/cache_storage_helper_browsertest.cc b/components/browsing_data/content/cache_storage_helper_browsertest.cc
index dbd7f1f..89d0e27d 100644
--- a/components/browsing_data/content/cache_storage_helper_browsertest.cc
+++ b/components/browsing_data/content/cache_storage_helper_browsertest.cc
@@ -18,6 +18,8 @@
 #include "content/public/test/content_browser_test.h"
 #include "content/shell/browser/shell.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/common/storage_key/storage_key.h"
+#include "url/origin.h"
 
 namespace browsing_data {
 namespace {
@@ -39,12 +41,14 @@
 };
 
 IN_PROC_BROWSER_TEST_F(CacheStorageHelperTest, CannedAddCacheStorage) {
-  const GURL origin1("http://host1:1/");
-  const GURL origin2("http://host2:1/");
+  const blink::StorageKey storage_key_1(
+      url::Origin::Create(GURL("http://host1:1/")));
+  const blink::StorageKey storage_key_2(
+      url::Origin::Create(GURL("http://host2:1/")));
 
   auto helper = MakeHelper();
-  helper->Add(url::Origin::Create(origin1));
-  helper->Add(url::Origin::Create(origin2));
+  helper->Add(storage_key_1);
+  helper->Add(storage_key_2);
 
   TestCompletionCallback callback;
   helper->StartFetching(base::BindOnce(&TestCompletionCallback::callback,
@@ -54,17 +58,18 @@
 
   ASSERT_EQ(2U, result.size());
   auto info = result.begin();
-  EXPECT_EQ(origin1, info->storage_key.origin().GetURL());
+  EXPECT_EQ(storage_key_1, info->storage_key);
   info++;
-  EXPECT_EQ(origin2, info->storage_key.origin().GetURL());
+  EXPECT_EQ(storage_key_2, info->storage_key);
 }
 
 IN_PROC_BROWSER_TEST_F(CacheStorageHelperTest, CannedUnique) {
-  const GURL origin("http://host1:1/");
+  const blink::StorageKey storage_key(
+      url::Origin::Create(GURL("http://host1:1/")));
 
   auto helper = MakeHelper();
-  helper->Add(url::Origin::Create(origin));
-  helper->Add(url::Origin::Create(origin));
+  helper->Add(storage_key);
+  helper->Add(storage_key);
 
   TestCompletionCallback callback;
   helper->StartFetching(base::BindOnce(&TestCompletionCallback::callback,
@@ -73,7 +78,7 @@
   std::list<content::StorageUsageInfo> result = callback.result();
 
   ASSERT_EQ(1U, result.size());
-  EXPECT_EQ(origin, result.begin()->storage_key.origin().GetURL());
+  EXPECT_EQ(storage_key, result.begin()->storage_key);
 }
 }  // namespace
 }  // namespace browsing_data
diff --git a/components/browsing_data/content/cache_storage_helper_unittest.cc b/components/browsing_data/content/cache_storage_helper_unittest.cc
index 8949cd7..dc222e7 100644
--- a/components/browsing_data/content/cache_storage_helper_unittest.cc
+++ b/components/browsing_data/content/cache_storage_helper_unittest.cc
@@ -11,6 +11,7 @@
 #include "content/public/test/browser_task_environment.h"
 #include "content/public/test/test_browser_context.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "url/gurl.h"
 
 namespace browsing_data {
@@ -32,39 +33,44 @@
 };
 
 TEST_F(CannedCacheStorageHelperTest, Empty) {
-  const GURL origin("http://host1:1/");
+  const blink::StorageKey storage_key(
+      url::Origin::Create(GURL("http://host1:1/")));
 
   auto helper = MakeHelper();
   ASSERT_TRUE(helper->empty());
-  helper->Add(url::Origin::Create(origin));
+  helper->Add(storage_key);
   ASSERT_FALSE(helper->empty());
   helper->Reset();
   ASSERT_TRUE(helper->empty());
 }
 
 TEST_F(CannedCacheStorageHelperTest, Delete) {
-  const url::Origin origin1 = url::Origin::Create(GURL("http://host1:9000"));
-  const url::Origin origin2 = url::Origin::Create(GURL("http://example.com"));
+  const blink::StorageKey storage_key_1 =
+      blink::StorageKey(url::Origin::Create(GURL("http://host1:9000")));
+  const blink::StorageKey storage_key_2 =
+      blink::StorageKey(url::Origin::Create(GURL("http://example.com")));
 
   auto helper = MakeHelper();
   EXPECT_TRUE(helper->empty());
-  helper->Add(origin1);
-  helper->Add(origin2);
-  helper->Add(origin2);
+  helper->Add(storage_key_1);
+  helper->Add(storage_key_2);
+  helper->Add(storage_key_2);
   EXPECT_EQ(2u, helper->GetCount());
-  helper->DeleteCacheStorage(origin2);
+  helper->DeleteCacheStorage(storage_key_2);
   EXPECT_EQ(1u, helper->GetCount());
 }
 
 TEST_F(CannedCacheStorageHelperTest, IgnoreExtensionsAndDevTools) {
-  const GURL origin1("chrome-extension://abcdefghijklmnopqrstuvwxyz/");
-  const GURL origin2("devtools://abcdefghijklmnopqrstuvwxyz/");
+  const blink::StorageKey storage_key_1(url::Origin::Create(
+      GURL("chrome-extension://abcdefghijklmnopqrstuvwxyz/")));
+  const blink::StorageKey storage_key_2(
+      url::Origin::Create(GURL("devtools://abcdefghijklmnopqrstuvwxyz/")));
 
   auto helper = MakeHelper();
   ASSERT_TRUE(helper->empty());
-  helper->Add(url::Origin::Create(origin1));
+  helper->Add(storage_key_1);
   ASSERT_TRUE(helper->empty());
-  helper->Add(url::Origin::Create(origin2));
+  helper->Add(storage_key_2);
   ASSERT_TRUE(helper->empty());
 }
 
diff --git a/components/browsing_data/content/local_shared_objects_container.cc b/components/browsing_data/content/local_shared_objects_container.cc
index 41b0c42b..e91f147 100644
--- a/components/browsing_data/content/local_shared_objects_container.cc
+++ b/components/browsing_data/content/local_shared_objects_container.cc
@@ -162,8 +162,10 @@
   for (const auto& info : shared_workers()->GetSharedWorkerInfo())
     origins[info.storage_key.origin()]++;
 
-  for (const auto& origin : cache_storages()->GetOrigins())
-    origins[origin]++;
+  for (const auto& storage_key : cache_storages()->GetStorageKeys()) {
+    // TODO(https://crbug.com/1199077): Use the real StorageKey once migrated.
+    origins[storage_key.origin()]++;
+  }
 
   for (const auto& origin : file_systems()->GetOrigins())
     origins[origin]++;
diff --git a/components/browsing_data/content/mock_cache_storage_helper.cc b/components/browsing_data/content/mock_cache_storage_helper.cc
index 0b83723..ef6c518 100644
--- a/components/browsing_data/content/mock_cache_storage_helper.cc
+++ b/components/browsing_data/content/mock_cache_storage_helper.cc
@@ -9,6 +9,7 @@
 #include "content/public/browser/storage_partition.h"
 #include "content/public/browser/storage_usage_info.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "url/gurl.h"
 
 namespace browsing_data {
@@ -26,10 +27,11 @@
   fetched_ = true;
 }
 
-void MockCacheStorageHelper::DeleteCacheStorage(const url::Origin& origin) {
+void MockCacheStorageHelper::DeleteCacheStorage(
+    const blink::StorageKey& storage_key) {
   ASSERT_TRUE(fetched_);
-  ASSERT_TRUE(origins_.find(origin) != origins_.end());
-  origins_[origin] = false;
+  ASSERT_TRUE(storage_keys_.find(storage_key) != storage_keys_.end());
+  storage_keys_[storage_key] = false;
 }
 
 void MockCacheStorageHelper::AddCacheStorageSamples() {
@@ -37,10 +39,10 @@
   const url::Origin kOrigin2 = url::Origin::Create(GURL("https://cshost2:2/"));
   content::StorageUsageInfo info1(blink::StorageKey(kOrigin1), 1, base::Time());
   response_.push_back(info1);
-  origins_[kOrigin1] = true;
+  storage_keys_[blink::StorageKey(kOrigin1)] = true;
   content::StorageUsageInfo info2(blink::StorageKey(kOrigin2), 2, base::Time());
   response_.push_back(info2);
-  origins_[kOrigin2] = true;
+  storage_keys_[blink::StorageKey(kOrigin2)] = true;
 }
 
 void MockCacheStorageHelper::Notify() {
@@ -49,12 +51,13 @@
 }
 
 void MockCacheStorageHelper::Reset() {
-  for (auto& pair : origins_)
+  for (auto& pair : storage_keys_) {
     pair.second = true;
+  }
 }
 
 bool MockCacheStorageHelper::AllDeleted() {
-  for (const auto& pair : origins_) {
+  for (const auto& pair : storage_keys_) {
     if (pair.second)
       return false;
   }
diff --git a/components/browsing_data/content/mock_cache_storage_helper.h b/components/browsing_data/content/mock_cache_storage_helper.h
index 21ddc270..52227dc 100644
--- a/components/browsing_data/content/mock_cache_storage_helper.h
+++ b/components/browsing_data/content/mock_cache_storage_helper.h
@@ -10,6 +10,7 @@
 
 #include "base/callback.h"
 #include "components/browsing_data/content/cache_storage_helper.h"
+#include "third_party/blink/public/common/storage_key/storage_key.h"
 
 namespace content {
 class BrowserContext;
@@ -37,19 +38,19 @@
   void Reset();
 
   // Returns true if all cache storage files were deleted since the last
-  // Reset() invokation.
+  // Reset() invocation.
   bool AllDeleted();
 
   // CacheStorageHelper.
   void StartFetching(FetchCallback callback) override;
-  void DeleteCacheStorage(const url::Origin& origin) override;
+  void DeleteCacheStorage(const blink::StorageKey& storage_key) override;
 
  private:
   ~MockCacheStorageHelper() override;
 
   FetchCallback callback_;
   bool fetched_ = false;
-  std::map<url::Origin, bool> origins_;
+  std::map<blink::StorageKey, bool> storage_keys_;
   std::list<content::StorageUsageInfo> response_;
 };
 
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index d26b67f..6ea26fe 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "17.28",
-  "log_list_timestamp": "2022-12-29T12:54:28Z",
+  "version": "17.30",
+  "log_list_timestamp": "2022-12-31T12:55:19Z",
   "operators": [
     {
       "name": "Google",
diff --git a/components/content_settings/browser/page_specific_content_settings.cc b/components/content_settings/browser/page_specific_content_settings.cc
index e2d4bb5..34c2f25 100644
--- a/components/content_settings/browser/page_specific_content_settings.cc
+++ b/components/content_settings/browser/page_specific_content_settings.cc
@@ -712,7 +712,7 @@
       container.indexed_dbs()->Add(blink::StorageKey(origin));
       return;
     case StorageType::CACHE:
-      container.cache_storages()->Add(origin);
+      container.cache_storages()->Add(blink::StorageKey(origin));
       return;
     case StorageType::FILE_SYSTEM:
       container.file_systems()->Add(origin);
diff --git a/components/page_load_metrics/browser/page_load_metrics_test_waiter.cc b/components/page_load_metrics/browser/page_load_metrics_test_waiter.cc
index 7dd3935..f2707a6 100644
--- a/components/page_load_metrics/browser/page_load_metrics_test_waiter.cc
+++ b/components/page_load_metrics/browser/page_load_metrics_test_waiter.cc
@@ -455,24 +455,13 @@
   if (!delegate)
     return;
 
-  double layout_shift_score =
-      (&delegate->GetPageRenderData())->layout_shift_score;
-  if (is_main_frame) {
-    if ((shift_frame_ == ShiftFrame::LayoutShiftOnlyInMainFrame ||
-         shift_frame_ == ShiftFrame::LayoutShiftOnlyInBothFrames) &&
-        last_main_frame_layout_shift_score_ < layout_shift_score &&
-        render_data.layout_shift_delta > 0) {
-      observed_.layout_shift_ = true;
-    }
-    last_main_frame_layout_shift_score_ = layout_shift_score;
-  } else {  // subframe
-    if ((shift_frame_ == ShiftFrame::LayoutShiftOnlyInSubFrame ||
-         shift_frame_ == ShiftFrame::LayoutShiftOnlyInBothFrames) &&
-        last_sub_frame_layout_shift_score_ < layout_shift_score &&
-        render_data.layout_shift_delta > 0) {
-      observed_.layout_shift_ = true;
-    }
-    last_sub_frame_layout_shift_score_ = layout_shift_score;
+  bool is_relevant_frame =
+      is_main_frame ? shift_frame_ == ShiftFrame::LayoutShiftOnlyInMainFrame
+                    : shift_frame_ == ShiftFrame::LayoutShiftOnlyInSubFrame;
+  if ((is_relevant_frame ||
+       shift_frame_ == ShiftFrame::LayoutShiftOnlyInBothFrames) &&
+      render_data.layout_shift_delta > 0) {
+    observed_.layout_shift_ = true;
   }
 
   if (ExpectationsSatisfied() && run_loop_)
diff --git a/components/page_load_metrics/browser/page_load_metrics_test_waiter.h b/components/page_load_metrics/browser/page_load_metrics_test_waiter.h
index a1d37419..75ee6ef5 100644
--- a/components/page_load_metrics/browser/page_load_metrics_test_waiter.h
+++ b/components/page_load_metrics/browser/page_load_metrics_test_waiter.h
@@ -363,9 +363,6 @@
   bool did_add_observer_ = false;
   bool soft_navigation_count_updated_ = false;
 
-  double last_main_frame_layout_shift_score_ = 0;
-  double last_sub_frame_layout_shift_score_ = 0;
-
   uint64_t current_num_input_events_ = 0;
   uint64_t expected_num_input_events_ = 0;
 
diff --git a/components/policy/proto/chrome_device_policy.proto b/components/policy/proto/chrome_device_policy.proto
index f6ce5bae..28fef58 100644
--- a/components/policy/proto/chrome_device_policy.proto
+++ b/components/policy/proto/chrome_device_policy.proto
@@ -1111,6 +1111,11 @@
   repeated string device_login_screen_extensions = 1;
 }
 
+// A boolean indicate if manifest v2 extension is available.
+message LoginScreenExtensionManifestV2AvailabilityProto {
+  optional bool login_screen_extension_manifest_v2_availability = 1;
+}
+
 // A list of allowed locales on the login screen.
 message LoginScreenLocalesProto {
   repeated string login_screen_locales = 1;
@@ -1913,4 +1918,6 @@
   optional KeyboardBacklightColorProto keyboard_backlight_color = 139;
   optional DeviceHindiInscriptLayoutEnabledProto
       device_hindi_inscript_layout_enabled = 140;
+  optional LoginScreenExtensionManifestV2AvailabilityProto
+      login_screen_extension_manifest_v2_availability = 141;
 }
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index b836aba..4c06c9f 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -4010,9 +4010,9 @@
 Si se le asigna el valor <ph name="LACROS_SELECTION_USER_CHOICE_VALUE" /> a esta política, el usuario podrá decidir qué versión del navegador <ph name="LACROS_NAME" /> se cargará: el binario desde la partición <ph name="LACROS_ROOTFS_NAME" /> o <ph name="LACROS_STATEFUL_NAME" />.
 Si el usuario no ha definido ninguna preferencia, se elegirá el binario con la versión más reciente.
 
-Si se asigna el valor <ph name="LACROS_SELECTION_ROOTFS_VALUE" /> a esta política, siempre se debe cargar el binario <ph name="LACROS_ROOTFS_NAME" /> del navegador <ph name="LACROS_NAME" />.
+Si se asigna el valor <ph name="LACROS_SELECTION_ROOTFS_VALUE" /> a esta política, siempre se carga el binario <ph name="LACROS_ROOTFS_NAME" /> del navegador <ph name="LACROS_NAME" />.
 
-Si se asigna el valor <ph name="LACROS_SELECTION_STATEFUL_VALUE" /> a esta política, siempre se debe cargar el binario <ph name="LACROS_STATEFUL_NAME" /> del navegador <ph name="LACROS_NAME" />.
+Si se asigna el valor <ph name="LACROS_SELECTION_STATEFUL_VALUE" /> a esta política, siempre se carga el binario <ph name="LACROS_STATEFUL_NAME" /> del navegador <ph name="LACROS_NAME" />.
 Usar este valor puede provocar un comportamiento inesperado si la versión del navegador <ph name="LACROS_STATEFUL_NAME" /> es anterior a la versión de <ph name="PRODUCT_OS_NAME" />.
 Este caso no es compatible y no se garantiza que funcione correctamente.
 
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 0c46e03..7bbe14e 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -1013,11 +1013,6 @@
 <translation id="1980777339173013601">Se il criterio viene impostato su true o se non viene configurato, gli utenti possono utilizzare ARC, a meno che ARC sia stato disattivato in altri modi. Se il criterio è impostato su false, gli utenti non affiliati non possono utilizzare ARC.
 
       Le modifiche al criterio vengono applicate solo mentre ARC non è in esecuzione, ad esempio durante l'avvio di ChromeOS.</translation>
-<translation id="1982507511322683896">Consente di specificare la configurazione <ph name="KRB5_CONFIG" /> suggerita per i nuovi ticket creati manualmente.
-
-      Se il criterio "KerberosUseCustomPrefilledConfig" viene attivato, il valore del criterio viene applicato come configurazione suggerita e viene mostrato nella sezione "Avanzate" della finestra di dialogo dell'autenticazione Kerberos. Se il criterio viene impostato su una stringa vuota o se non viene configurato, viene eliminata la configurazione di <ph name="PRODUCT_OS_NAME" /> consigliata. Se questo criterio non viene configurato avverrà la stessa cosa.
-
-      Se il criterio "KerberosUseCustomPrefilledConfig" viene disattivato, il valore di questo criterio non viene usato.</translation>
 <translation id="1985598967415986700">La riduzione dello user agent sarà controllabile tramite Field-Trials e Origin-Trials.</translation>
 <translation id="1987789058026551147">Attiva i report sulle sessioni kiosk del dispositivo</translation>
 <translation id="1988345404999458987">Consente di specificare le configurazioni dei server di stampa disponibili.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 6fddb80..0eda03e 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -870,6 +870,7 @@
 
       Als je het beleid niet toepast of niet instelt, wordt de host voor hulp op afstand uitgevoerd in de context van de gebruiker en kunnen externe gebruikers geen vensters met verhoogde bevoegdheid op de desktop gebruiken.</translation>
 <translation id="1837165432382702436">Hoogte van de pagina in micrometers</translation>
+<translation id="1838910874018595451">Vooraf ingestelde configuratie voor Kerberos-tickets</translation>
 <translation id="1843117931376765605">Vernieuwingsfrequentie voor gebruikersbeleid</translation>
 <translation id="1844620919405873871">Hiermee configureer je het beleid ten aanzien van snel ontgrendelen.</translation>
 <translation id="1844972978764975668">Toestaan dat query's naar een Google-server worden gestuurd om een nauwkeurig tijdstempel op te halen</translation>
@@ -889,6 +890,7 @@
       Als je het beleid niet instelt, is <ph name="DEFAULT_WEB_HID_GUARD_SETTING_POLICY_NAME" /> van toepassing als dit is ingesteld. Zo niet, dan gelden de persoonlijke instellingen van de gebruiker.
 
       De URL's in dit beleid mogen niet conflicteren met de URL's die zijn ingesteld via <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />. Als dit het geval is, krijgt dit beleid voorrang op <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
+<translation id="1858775210076906272">Vooraf ingevulde configuratie voor Kerberos</translation>
 <translation id="1861206724856734193">Hiermee stel je een lijst in met regels ter voorkoming van datalekken.</translation>
 <translation id="1862267110714201519">De functie voor ghostvenster uitzetten.</translation>
 <translation id="1865417998205858223">Rechten voor sleutels</translation>
@@ -1267,6 +1269,7 @@
 <translation id="2204753382813641270">Automatisch verbergen van archief beheren</translation>
 <translation id="2208976000652006649">Parameters voor zoek-URL die POST gebruikt</translation>
 <translation id="2213059592185933570">Maken van roamingprofielen aanzetten</translation>
+<translation id="2213342458177721585">De Hindi Inscript-indeling aanzetten voor het hele apparaat.</translation>
 <translation id="2215238871726750562">Als je het beleid instelt op 'True', wordt het browservenster niet geopend nadat de sessie is gestart.
 
       Als je het beleid instelt op 'False' of niet instelt, wordt het venster geopend.
@@ -1731,6 +1734,7 @@
 <translation id="2664682171745499686">Waarschuwingen voor nagebootste domeinen onderdrukken voor domeinen</translation>
 <translation id="2665422249821137126">Grote muisaanwijzer op het inlogscherm gebruiken</translation>
 <translation id="2667894101494585925">Ophalen van optimalisatiegids aanzetten</translation>
+<translation id="2669157090883237118">De aanbevolen <ph name="PRODUCT_OS_NAME" />-configuratie niet wijzigen.</translation>
 <translation id="2672012807430078509">Bepaalt of NTLM is aangezet als verificatieprotocol voor SMB-activeringen</translation>
 <translation id="2673363037046384711">De eindgebruiker kan de modus voor hoge efficiëntie aan- of uitzetten.</translation>
 <translation id="2678503605767349615">Vereiste clientcertificaten voor het hele apparaat</translation>
@@ -2548,6 +2552,7 @@
       Ga naar https://support.google.com/chrome/a?p=Supported_directory_variables voor een lijst met variabelen die je kunt gebruiken.
 
       Als dit beleid niet wordt ingesteld, wordt het standaard profielpad gebruikt. De gebruiker kan dit overschrijven met de opdrachtregelmarkering '--user-data-dir'.</translation>
+<translation id="3380801667330555918">De vooraf ingevulde configuratie voor Kerberos-tickets wijzigen</translation>
 <translation id="338149029069528354">Lokale gebruikersgegevens niet wissen</translation>
 <translation id="3381968327636295719"> gebruiken</translation>
 <translation id="3387211681524224831">Als je het beleid toepast, wordt browsegeschiedenis niet opgeslagen en tabbladsynchronisatie uitgezet. Gebruikers kunnen deze instelling niet wijzigen.
@@ -3917,6 +3922,11 @@
           Als dit beleid niet is ingesteld, staat de functie voor monogeluid in eerste instantie uit, maar kan de gebruiker deze op elk gewenst moment aanzetten.</translation>
 <translation id="4768446404233019970">3DES cipher suites aanzetten in TLS</translation>
 <translation id="4770334626033858263">De configuratie die is gebruikt om de toegangscode voor ouders te genereren en te verifiëren.</translation>
+<translation id="4773997835955617342">Hiermee wordt de voorgestelde <ph name="KRB5_CONFIG" />-configuratie voor de nieuwe handmatig gemaakte tickets gewijzigd.
+
+      Als je dit beleid toepast, wordt de waarde van het beleid KerberosCustomPrefilledConfig toegepast als voorgestelde configuratie en getoond in het gedeelte Geavanceerd van het dialoogvenster voor Kerberos-verificatie.
+
+      Als je dit beleid niet toepast of niet instelt, wordt in plaats daarvan de aanbevolen <ph name="PRODUCT_OS_NAME" />-configuratie toegepast. Deze staat ook in het gedeelte Geavanceerd van het dialoogvenster voor Kerberos-verificatie.</translation>
 <translation id="4774030790286815890">Als je deze instelling aanzet, mogen gebruikers toestemming geven voor Telefoonhub. Hiermee kunnen ze interactie met hun telefoon hebben op een Chrome OS-apparaat.
 
       Als je deze instelling uitzet, mogen gebruikers geen toestemming geven voor Telefoonhub.
@@ -6028,6 +6038,8 @@
 
       Hiermee worden de markeringen gespecificeerd die bij het starten moeten worden toegepast op <ph name="PRODUCT_NAME" />. De opgegeven markeringen worden alleen toegepast op het inlogscherm. Markeringen die worden ingesteld via dit beleid, worden niet doorgevoerd in gebruikerssessies.</translation>
 <translation id="6857240169209507953">Voorkomen dat <ph name="BOREALIS_NAME" /> wordt uitgevoerd op een apparaat</translation>
+<translation id="6857372417233723544">Als je het beleid instelt, wordt Hindi InScript-indeling aangezet voor <ph name="PRODUCT_OS_NAME" />.
+Als het beleid is ingesteld op False of niet is ingesteld, is de indeling niet beschikbaar. Hiervoor moet opnieuw worden opgestart.</translation>
 <translation id="685769593149966548">Strenge 'Beperkte modus' voor YouTube afdwingen</translation>
 <translation id="686079137349561371">Microsoft Windows 7 of later</translation>
 <translation id="68818134518270542">Als je het beleid instelt, geef je de apps op die gebruikers beschikbaar kunnen maken als notitie-app op het vergrendelscherm van <ph name="PRODUCT_OS_NAME" />.
@@ -6952,6 +6964,7 @@
 
           Als dit beleid niet is ingesteld, staan snelkoppelingen voor toegankelijkheidsfuncties standaard aan op het inlogscherm.</translation>
 <translation id="7777535871204167559">Externe opslagapparaten behandelen als alleen-lezen</translation>
+<translation id="7781452670568828399">De aanbevolen <ph name="PRODUCT_OS_NAME" />-configuratie wijzigen.</translation>
 <translation id="7784062550705119230">Als <ph name="PRINTERS_ALLOWLIST" /> wordt gekozen voor <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, kun je door <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> in te stellen aangeven welke printers gebruikers kunnen gebruiken. Alleen printers waarvan de ID overeenkomt met de waarden in dit beleid, zijn beschikbaar voor gebruikers. De ID's moeten overeenkomen met het veld <ph name="ID_FIELD" /> of <ph name="GUID_FIELD" /> in het bestand dat is opgegeven in <ph name="DEVICE_PRINTERS_POLICY_NAME" />.</translation>
 <translation id="7788511847830146438">Per profiel</translation>
 <translation id="7788632499792081231">Als je het beleid instelt, kun je een lijst met URL-patronen instellen voor sites die het klembord kunnen gebruiken. Dit omvat niet alle klembordbewerkingen op oorsprongen die overeenkomen met de patronen. Gebruikers kunnen bijvoorbeeld nog steeds plakken met sneltoetsen, aangezien dit niet wordt beperkt door de klembordrechten voor sites.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 693806c7..0ddd60f6 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -869,6 +869,7 @@
 
       Se a política for definida como "Desativada" ou deixada sem definição, o host de assistência remota será executado no contexto do usuário e os usuários remotos não poderão interagir com janelas elevadas no computador.</translation>
 <translation id="1837165432382702436">Altura da página em micrômetros.</translation>
+<translation id="1838910874018595451">Configuração pré-preenchida para tíquetes do Kerberos</translation>
 <translation id="1843117931376765605">Taxa de atualização da política do usuário</translation>
 <translation id="1844620919405873871">Configura as políticas relacionadas ao desbloqueio rápido.</translation>
 <translation id="1844972978764975668">Permitir consultas a um servidor do Google para recuperar um carimbo de data/hora preciso</translation>
@@ -888,6 +889,7 @@
       Se a política for deixada sem definição, a <ph name="DEFAULT_WEB_HID_GUARD_SETTING_POLICY_NAME" /> será aplicada, caso esteja definida. Caso contrário, a configuração pessoal do usuário será aplicada.
 
       Os URLs desta política não devem entrar em conflito com os configurados pela <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />. Se entrarem, esta política terá precedência sobre a <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
+<translation id="1858775210076906272">Configuração pré-preenchida do Kerberos</translation>
 <translation id="1861206724856734193">Define uma lista de regras para prevenção contra vazamento de dados.</translation>
 <translation id="1862267110714201519">Desativar o recurso de janela fantasma.</translation>
 <translation id="1865417998205858223">Principais permissões</translation>
@@ -1271,6 +1273,7 @@
 <translation id="2204753382813641270">Controlar a ocultação automática da estante</translation>
 <translation id="2208976000652006649">Parâmetros para URL de pesquisa que usa POST</translation>
 <translation id="2213059592185933570">Permitir a criação de perfis de roaming</translation>
+<translation id="2213342458177721585">Ativar o dispositivo Inscript Layout em todo o dispositivo.</translation>
 <translation id="2215238871726750562">Se a política for definida como verdadeira, a janela do navegador não será aberta no início da sessão.
 
       Se ela for definida como falsa ou não for definida, a janela poderá ser aberta.
@@ -1736,6 +1739,7 @@
 <translation id="2664682171745499686">Suprimir alertas de domínios parecidos em domínios</translation>
 <translation id="2665422249821137126">Ativar o cursor grande na tela de login</translation>
 <translation id="2667894101494585925">Ativar a busca do guia de otimização</translation>
+<translation id="2669157090883237118">Não mudar a configuração recomendada do <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="2672012807430078509">Controles que ativam o NTLM como protocolo de autenticação para ativações de PMEs</translation>
 <translation id="2673363037046384711">O usuário final pode ativar ou desativar o modo de alta eficiência.</translation>
 <translation id="2678503605767349615">Certificados do cliente em todo o dispositivo obrigatórios</translation>
@@ -2590,6 +2594,7 @@
       Acesse https://support.google.com/chrome/a?p=Supported_directory_variables para ver uma lista das variáveis que podem ser usadas.
 
       Se esta política for deixada sem definição, o caminho padrão do perfil será usado, e o usuário poderá substituí-lo pela flag de linha de comando "--user-data-dir".</translation>
+<translation id="3380801667330555918">Mudar a configuração pré-preenchida para tíquetes do Kerberos</translation>
 <translation id="338149029069528354">Não apagar dados locais de usuários</translation>
 <translation id="3381968327636295719">Usar o navegador de host por padrão</translation>
 <translation id="3387211681524224831">Se a política for definida como "Ativada" o histórico de navegação não será salvo, a sincronização de guias será desativada e os usuários não poderão mudar essa configuração.
@@ -4003,6 +4008,11 @@
           Se esta política não for definida, o áudio mono ficará desativado inicialmente, mas poderá ser ativado pelo usuário a qualquer momento.</translation>
 <translation id="4768446404233019970">Ativar pacotes de criptografia 3DES em TLS</translation>
 <translation id="4770334626033858263">Configuração usada para gerar e verificar o código de acesso do familiar responsável.</translation>
+<translation id="4773997835955617342">Muda a configuração sugerida do <ph name="KRB5_CONFIG" /> para os novos tíquetes criados manualmente.
+
+      Se esta política for ativada, o valor da "KerberosCustomPrefilledConfig" será aplicado como a configuração sugerida e mostrado na seção "Avançado" da caixa de diálogo de autenticação Kerberos.
+
+      Se ela for desativada ou for deixada sem definição, a configuração recomendada do <ph name="PRODUCT_OS_NAME" /> vai ser aplicada. Essa informação também aparece na seção "Avançado" da caixa de diálogo de autenticação do Kerberos.</translation>
 <translation id="4774030790286815890">Se esta configuração estiver ativada, os usuários não terão permissão para ativar o recurso "Seu smartphone", que permite que eles interajam com o smartphone em um dispositivo ChromeOS.
 
       Se esta configuração estiver desativada, os usuários não terão permissão para usar o recurso "Seu smartphone".
@@ -6163,6 +6173,8 @@
 
       Especifica os sinalizadores a serem aplicados ao <ph name="PRODUCT_NAME" /> quando ele for iniciado. Os sinalizadores especificados são aplicados apenas na tela de login. Os sinalizadores definidos por meio desta política não são propagados em sessões de usuário.</translation>
 <translation id="6857240169209507953">Evitar que a <ph name="BOREALIS_NAME" /> seja executada em um dispositivo</translation>
+<translation id="6857372417233723544">Se a política for definida, o layout de teclado Inscript hindi vai ser ativado no <ph name="PRODUCT_OS_NAME" />.
+Se ela for definida como "false" ou deixada sem definição, o layout não ficará disponível. É necessário reiniciar para que a mudança seja aplicada.</translation>
 <translation id="685769593149966548">Aplicar o Modo restrito rigoroso para o YouTube</translation>
 <translation id="686079137349561371">Microsoft Windows 7 ou versão posterior</translation>
 <translation id="68818134518270542">A definição da política especifica os apps que os usuários podem ativar para fazer anotações na tela de bloqueio do <ph name="PRODUCT_OS_NAME" />.
@@ -7092,6 +7104,7 @@
 
           Se esta política não for definida, os atalhos de recursos de acessibilidade serão ativados por padrão na tela de login.</translation>
 <translation id="7777535871204167559">Tratar dispositivos de armazenamento externo como somente leitura</translation>
+<translation id="7781452670568828399">Mudar a configuração recomendada do <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="7784062550705119230">Se <ph name="PRINTERS_ALLOWLIST" /> for escolhida para <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, a definição de <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> especificará quais impressoras os usuários podem usar. Apenas as impressoras com IDs correspondentes aos valores desta política estão disponíveis para os usuários. Os IDs precisam corresponder aos campos <ph name="ID_FIELD" /> ou <ph name="GUID_FIELD" /> no arquivo especificado na <ph name="DEVICE_PRINTERS_POLICY_NAME" />.</translation>
 <translation id="7788511847830146438">Por perfil</translation>
 <translation id="7788632499792081231">Se a política for definida, será possível configurar uma lista de padrões de URL que especifica os sites que podem usar a permissão do site para a área de transferência. Essa ação não inclui todas as operações da área de transferência ou origens que correspondem aos padrões. Por exemplo, os usuários ainda poderão colar usando atalhos do teclado, porque essa opção não é controlada pela permissão do site para a área de transferência.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 70f88ca..e9f04a2 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -866,6 +866,7 @@
 
       Если правило отключено или не настроено, хост удаленной поддержки подключается в контексте пользователя. В этом случае удаленные пользователи не могут взаимодействовать с привилегированными окнами на компьютере.</translation>
 <translation id="1837165432382702436">Высота страницы в микрометрах.</translation>
+<translation id="1838910874018595451">Предварительная конфигурация для билетов Kerberos</translation>
 <translation id="1843117931376765605">Частота обновлений политики пользователя</translation>
 <translation id="1844620919405873871">Настраивает правила, связанные с быстрой разблокировкой.</translation>
 <translation id="1844972978764975668">Разрешить отправку запросов на сервер Google для получения точных временных меток</translation>
@@ -885,6 +886,7 @@
       Если это правило не настроено, применяется правило <ph name="DEFAULT_WEB_HID_GUARD_SETTING_POLICY_NAME" /> при условии, что оно задано. В противном случае действуют персональные настройки пользователя.
 
       URL в этом правиле не должны противоречить настройкам <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />. При возникновении противоречия это правило считается более приоритетным, чем <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
+<translation id="1858775210076906272">Предварительная конфигурация Kerberos</translation>
 <translation id="1861206724856734193">Установка списка правил для предотвращения утечки данных</translation>
 <translation id="1862267110714201519">Отключить окна в режиме конфиденциальности</translation>
 <translation id="1865417998205858223">Позволяет разрешать или запрещать использование ключей</translation>
@@ -1001,6 +1003,11 @@
 <translation id="1962864958436828230">Установить минимально допустимый объем данных для ограничения CLIPBOARD, связанного с предотвращением утечки данных</translation>
 <translation id="1964634611280150550">Режим инкогнито отключен</translation>
 <translation id="1964802606569741174">Правило не влияет на приложение YouTube для Android. Чтобы принудительно включить режим Безопасного просмотра на YouTube, необходимо запретить установку приложения YouTube для Android.</translation>
+<translation id="1964985353230379667">Определяет предлагаемую конфигурацию <ph name="KRB5_CONFIG" /> для новых билетов, созданных вручную.
+
+      Если правило KerberosUseCustomPrefilledConfig включено, его значение используется в качестве предлагаемой конфигурации и показывается в разделе "Дополнительно" диалогового окна аутентификации Kerberos. Если правило не настроено или для него указана пустая строка, рекомендуемая конфигурация <ph name="PRODUCT_OS_NAME" /> будет удалена.
+
+      Если правило KerberosUseCustomPrefilledConfig отключено, его значение не используется.</translation>
 <translation id="1969212217917526199">Позволяет изменить правила сборок для отладки хоста удаленного доступа.
 
           Значение анализируется как словарь JSON, где проверяется соответствие названия правила его значению.</translation>
@@ -1268,6 +1275,7 @@
 <translation id="2204753382813641270">Автоматическое скрытие панели загрузок</translation>
 <translation id="2208976000652006649">Параметры запросов POST к URL-адресу для поиска</translation>
 <translation id="2213059592185933570">Разрешить создание перемещаемых профилей</translation>
+<translation id="2213342458177721585">Включить на устройстве раскладку InScript для хинди</translation>
 <translation id="2215238871726750562">Если задано значение True, то в начале сеанса окно браузера открываться не будет.
 
       Если правило не настроено или задано значение False, окно будет открываться при условии,
@@ -1733,6 +1741,7 @@
 <translation id="2664682171745499686">Не показывать предупреждения о похожих URL на доменах из списка</translation>
 <translation id="2665422249821137126">Включить большой курсор на экране входа</translation>
 <translation id="2667894101494585925">Разрешить получение метаданных и моделей машинного обучения при загрузке страниц</translation>
+<translation id="2669157090883237118">Не менять рекомендуемую конфигурацию <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="2672012807430078509">Определяет, можно ли использовать NTLM в качестве протокола аутентификации для подключенных ресурсов SMB</translation>
 <translation id="2673363037046384711">Конечный пользователь может включать или отключать режим высокой эффективности</translation>
 <translation id="2678503605767349615">Обязательные сертификаты клиента на уровне устройства</translation>
@@ -2580,6 +2589,7 @@
       Список поддерживаемых переменных приведен здесь: https://support.google.com/chrome/a?p=Supported_directory_variables.
 
       Если правило не настроено, будет выбран путь к профилю по умолчанию и пользователь сможет перезаписать его с помощью экспериментального параметра командной строки --user-data-dir.</translation>
+<translation id="3380801667330555918">Изменить предварительную конфигурацию для билетов Kerberos</translation>
 <translation id="338149029069528354">Не удалять локальные пользовательские данные</translation>
 <translation id="3381968327636295719">Использовать по умолчанию основной браузер</translation>
 <translation id="3387211681524224831">Если это правило включено, история браузера не сохраняется, синхронизация вкладок не выполняется и пользователи не могут изменить этот параметр.
@@ -3968,6 +3978,11 @@
           Если не настроить это правило, изначально монофонический звук будет отключен, но пользователь сможет включить его в любой момент.</translation>
 <translation id="4768446404233019970">Включить наборы шифров 3DES в TLS</translation>
 <translation id="4770334626033858263">Конфигурация, позволяющая генерировать и подтверждать родительский код доступа.</translation>
+<translation id="4773997835955617342">Изменяет предлагаемую конфигурацию <ph name="KRB5_CONFIG" /> для новых билетов, созданных вручную.
+
+      Если правило включено, значение правила KerberosCustomPrefilledConfig используется в качестве предлагаемой конфигурации и показывается в разделе "Дополнительно" диалогового окна аутентификации Kerberos.
+
+      Если правило отключено или не настроено, применяется рекомендуемая конфигурация <ph name="PRODUCT_OS_NAME" />. Обратите внимание, что она также показывается в разделе "Дополнительно" диалогового окна аутентификации Kerberos.</translation>
 <translation id="4774030790286815890">Если это правило включено, можно использовать функцию "Управление телефоном" для взаимодействия с телефоном через устройство Chrome OS.
 
       Когда правило отключено, эту функцию использовать нельзя.
@@ -6114,6 +6129,8 @@
 
       Определяет, какие настройки будут применяться при запуске <ph name="PRODUCT_NAME" />. Они используются только на экране входа и не распространяются на сеансы пользователей.</translation>
 <translation id="6857240169209507953">Запретить запуск <ph name="BOREALIS_NAME" /> на этом устройстве</translation>
+<translation id="6857372417233723544">Если правило настроено, раскладка InScript для хинди в <ph name="PRODUCT_OS_NAME" /> включена.
+Если правило не настроено или для него задано значение False, раскладка недоступна. Чтобы изменения вступили в силу, необходимо перезагрузить устройство.</translation>
 <translation id="685769593149966548">Включить принудительное использование Строгого безопасного режима в YouTube</translation>
 <translation id="686079137349561371">Microsoft Windows 7 и более поздних версиях</translation>
 <translation id="68818134518270542">Правило позволяет указать список приложений, которые можно использовать для создания заметок на заблокированном экране <ph name="PRODUCT_OS_NAME" />.
@@ -7042,6 +7059,7 @@
 
           Если не настроить это правило, по умолчанию быстрые клавиши специальных возможностей будут работать на экране входа.</translation>
 <translation id="7777535871204167559">Использовать внешние запоминающие устройства в режиме только для чтения</translation>
+<translation id="7781452670568828399">Изменить рекомендуемую конфигурацию <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="7784062550705119230">Если в правиле <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> задан параметр <ph name="PRINTERS_ALLOWLIST" />, правило <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> определяет принтеры, с которыми может работать пользователь. Пользователь может работать только с теми принтерами, идентификаторы которых указаны в правиле. Эти идентификаторы должны соответствовать значениям полей <ph name="ID_FIELD" /> и <ph name="GUID_FIELD" /> в файле, указанном в правиле <ph name="DEVICE_PRINTERS_POLICY_NAME" />.</translation>
 <translation id="7788511847830146438">Для каждого профиля</translation>
 <translation id="7788632499792081231">Позволяет задать список шаблонов URL для указания сайтов, которым разрешено использовать буфер обмена. Это правило не распространяется на действия с буфером обмена для источников, совпадающих с шаблонами. Например, пользователи по-прежнему смогут вставлять текст сочетанием клавиш, поскольку эта функция не ограничивается параметром доступа сайтов к буферу обмена.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index b5c8f3bd..440cd73d 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -1017,11 +1017,6 @@
 <translation id="1980777339173013601">การตั้งค่านโยบายเป็น "จริง" หรือไม่ได้ตั้งค่าจะทำให้ผู้ใช้ใช้ ARC ได้ เว้นแต่จะมีการปิด ARC ไว้ด้วยวิธีการอื่นๆ การตั้งค่านโยบายเป็น "เท็จ" หมายความว่าผู้ใช้ที่ไม่ได้เชื่อมโยงจะใช้ ARC ไม่ได้
 
       การเปลี่ยนแปลงนโยบายจะมีผลขณะที่ ARC ไม่ได้ทำงานอยู่เท่านั้น เช่น ขณะเริ่มต้น Chrome OS</translation>
-<translation id="1982507511322683896">ระบุการกำหนดค่าที่แนะนำของ <ph name="KRB5_CONFIG" /> สำหรับตั๋วใหม่ที่สร้างขึ้นด้วยตนเอง
-
-      หากเปิดใช้นโยบาย "KerberosUseCustomPrefilledConfig" ระบบจะใช้ค่าของนโยบายเป็นการกำหนดค่าที่แนะนำ และแสดงในส่วน "ขั้นสูง" ของกล่องโต้ตอบการตรวจสอบสิทธิ์ Kerberos การตั้งค่านโยบายนี้เป็นสตริงว่างเปล่าหรือไม่ได้ตั้งค่า จะเป็นการลบการกำหนดค่าที่แนะนำของ <ph name="PRODUCT_OS_NAME" /> การดำเนินการนี้จะเกิดขึ้นหากไม่ได้ตั้งค่านโยบายนี้ไว้
-
-      หากปิดใช้นโยบาย "KerberosUseCustomPrefilledConfig" จะไม่มีการใช้ค่าของนโยบายนี้</translation>
 <translation id="1985598967415986700">การลด User Agent จะควบคุมได้ผ่านช่วงทดลองใช้งานภาคสนามและช่วงทดลองใช้จากต้นทาง</translation>
 <translation id="1987789058026551147">เปิดใช้การรายงานเซสชันคีออสก์ของอุปกรณ์</translation>
 <translation id="1988345404999458987">ระบุการกำหนดค่าเซิร์ฟเวอร์การพิมพ์ที่พร้อมใช้งาน
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index d7f94a7..0a008ef 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -868,6 +868,7 @@
 
       Якщо це правило вимкнено або не налаштовано, хост віддаленої допомоги запускається без можливості працювати з робочим столом у режимі адміністратора.</translation>
 <translation id="1837165432382702436">Висота сторінки в мікрометрах</translation>
+<translation id="1838910874018595451">Попередньо вказана конфігурація для заявок Kerberos</translation>
 <translation id="1843117931376765605">Частота оновлення політики користувача</translation>
 <translation id="1844620919405873871">Налаштовує правила, пов’язані зі швидким розблокуванням.</translation>
 <translation id="1844972978764975668">Дозволити запити на сервер Google, щоб отримувати точну позначку часу</translation>
@@ -887,6 +888,7 @@
       Якщо не задавати значення для цього правила, застосовуватиметься правило <ph name="DEFAULT_WEB_HID_GUARD_SETTING_POLICY_NAME" /> (якщо його налаштовано). Якщо ні, використовуються особисті налаштування користувачів.
 
       URL-адреси, указані в цьому правилі, не можуть конфліктувати зі списком у правилі <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />. Якщо виникає конфлікт, це правило має перевагу над правилом <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
+<translation id="1858775210076906272">Попередньо вказана конфігурація Kerberos</translation>
 <translation id="1861206724856734193">Налаштовує список правил для запобігання витоку даних.</translation>
 <translation id="1862267110714201519">Вимкнути функцію вікна-привида</translation>
 <translation id="1865417998205858223">Основні дозволи</translation>
@@ -1269,6 +1271,7 @@
 <translation id="2204753382813641270">Контролювати автоматичне ховання полиці</translation>
 <translation id="2208976000652006649">Параметри URL-адреси пошуку, яка використовує метод POST</translation>
 <translation id="2213059592185933570">Увімкнути створення роумінгових профілів</translation>
+<translation id="2213342458177721585">Увімкнути розкладку InScript для гінді на рівні пристрою.</translation>
 <translation id="2215238871726750562">Якщо для цього правила вибрано значення True, вікно веб-переглядача не запускатиметься на початку сеансу.
 
       Якщо для цього правила вибрано значення False або його не налаштовано, вікно може запускатися.
@@ -1734,6 +1737,7 @@
 <translation id="2664682171745499686">Блокувати попередження про схожі домени на сторінках певних доменів</translation>
 <translation id="2665422249821137126">Увімкнути великий курсор на екрані входу</translation>
 <translation id="2667894101494585925">Увімкнути отримання посібника з оптимізації</translation>
+<translation id="2669157090883237118">Не змінювати рекомендовану конфігурацію для <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="2672012807430078509">Указує, чи можна вмикати NTLM як протокол автентифікації для підключення SMB</translation>
 <translation id="2673363037046384711">Кінцевий користувач може вмикати й вимикати режим високої ефективності.</translation>
 <translation id="2678503605767349615">Обов'язкові сертифікати клієнтів на рівні пристрою</translation>
@@ -2582,6 +2586,7 @@
       Список можливих змінних доступний на сторінці https://support.google.com/chrome/a?p=Supported_directory_variables.
 
       Якщо це правило не налаштовано, використовується шлях до профілю за умовчанням, а користувач може змінювати його за допомогою правила командного рядка --user-data-dir.</translation>
+<translation id="3380801667330555918">Змінювати попередньо вказану конфігурацію для заявок Kerberos</translation>
 <translation id="338149029069528354">Не видаляти локальні дані користувача</translation>
 <translation id="3381968327636295719">Використовувати веб-переглядач хосту за умовчанням</translation>
 <translation id="3387211681524224831">Якщо це правило активовано, історія веб-перегляду не зберігається, а вкладки не синхронізуються. Користувачі не можуть змінити цей параметр.
@@ -3976,6 +3981,11 @@
           Якщо це правило не налаштовано, монофонічне аудіо буде вимкнено, але користувач може будь-коли ввімкнути його.</translation>
 <translation id="4768446404233019970">Увімкнути набори шифрів 3DES у TLS</translation>
 <translation id="4770334626033858263">Конфігурація, за допомогою якої створюється й підтверджується батьківський код доступу.</translation>
+<translation id="4773997835955617342">Змінює пропоновану конфігурацію <ph name="KRB5_CONFIG" /> для нових заявок, створених вручну.
+
+      Якщо це правило ввімкнено, значення правила KerberosCustomPrefilledConfig застосовується як пропонована конфігурація та показується в розділі "Додатково" вікна автентифікації Kerberos.
+
+      Якщо це правило вимкнено або не налаштовано, застосовується рекомендована конфігурація для <ph name="PRODUCT_OS_NAME" />. Зверніть увагу: вона також відображається в розділі "Додатково" вікна автентифікації Kerberos.</translation>
 <translation id="4774030790286815890">Якщо це правило ввімкнено, користувачі зможуть активувати функцію "Керування телефоном", щоб взаємодіяти зі своїм телефоном на пристрої з ОС Chrome.
 
       Якщо цей параметр вимкнений, користувачі не зможуть активувати функцію "Керування телефоном".
@@ -6114,6 +6124,8 @@
 
       Указує позначки, які мають застосовуватися під час запуску <ph name="PRODUCT_NAME" />. Вони застосовуються лише на екрані входу. Позначки, додані за допомогою цього правила, не поширюються на сеанси користувача.</translation>
 <translation id="6857240169209507953">Запобігати виконанню правила <ph name="BOREALIS_NAME" /> на пристрої</translation>
+<translation id="6857372417233723544">За допомогою цього правила можна ввімкнути розкладку InScript для гінді в <ph name="PRODUCT_OS_NAME" />.
+Якщо вибрати для правила значення false або не налаштувати його, розкладка буде недоступною. Щоб це правило почало діяти, потрібно перезапустити пристрій.</translation>
 <translation id="685769593149966548">Застосувати строгий безпечний режим на YouTube</translation>
 <translation id="686079137349561371">Microsoft Windows 7 і новіших версій</translation>
 <translation id="68818134518270542">За допомогою цього правила можна створити список додатків, які користувачі можуть використовувати для нотаток на заблокованому екрані пристрою <ph name="PRODUCT_OS_NAME" />.
@@ -7045,6 +7057,7 @@
 
           Якщо це правило не налаштовано, комбінації клавіш для спеціальних можливостей буде ввімкнено за умовчанням на екрані входу.</translation>
 <translation id="7777535871204167559">Зовнішні пристрої пам’яті – лише для перегляду</translation>
+<translation id="7781452670568828399">Змінювати рекомендовану конфігурацію для <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="7784062550705119230">Якщо для правила <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> вибрано параметр <ph name="PRINTERS_ALLOWLIST" />, тоді налаштування <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> визначає, які принтери можна використовувати. Користувачам доступні лише принтери з переліченими в правилі ідентифікаторами. Ідентифікатори мають відповідати полю <ph name="ID_FIELD" /> або <ph name="GUID_FIELD" /> у файлі, указаному в правилі <ph name="DEVICE_PRINTERS_POLICY_NAME" />.</translation>
 <translation id="7788511847830146438">Для окремих профілів</translation>
 <translation id="7788632499792081231">За допомогою цього правила можна вказати список шаблонів URL-адрес, за якими визначатимуться сайти, що можуть запитувати дозвіл на використання буфера обміну. Воно стосується не всіх операцій із буфером обміну в джерелах, які збігаються із шаблонами. Наприклад, користувачі зможуть вставляти контент за допомогою комбінацій клавіш, оскільки для таких операцій не потрібен згаданий вище дозвіл.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 074b119..dc15eec 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -869,6 +869,7 @@
 
       Nếu bạn đặt thành Tắt hoặc không đặt chính sách này, thì máy chủ hỗ trợ từ xa sẽ chạy trong bối cảnh của người dùng và người dùng từ xa không thể thao tác với các cửa sổ bật lên trên màn hình.</translation>
 <translation id="1837165432382702436">Chiều cao của trang (tính bằng micromet)</translation>
+<translation id="1838910874018595451">Cấu hình điền sẵn cho phiếu yêu cầu hỗ trợ Kerberos</translation>
 <translation id="1843117931376765605">Chính sách tốc độ làm mới cho người dùng</translation>
 <translation id="1844620919405873871">Định cấu hình chính sách liên quan đến mở khóa nhanh.</translation>
 <translation id="1844972978764975668">Cho phép sẽ gửi các truy vấn đến máy chủ của Google để truy xuất dấu thời gian chính xác</translation>
@@ -888,6 +889,7 @@
       Nếu bạn không thiết lập chính sách này thì <ph name="DEFAULT_WEB_HID_GUARD_SETTING_POLICY_NAME" /> (nếu được thiết lập) sẽ được áp dụng. Nếu không, chế độ cài đặt cá nhân của người dùng sẽ được áp dụng.
 
       Các URL trong chính sách này không được xung đột với những URL đã thiết lập thông qua <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />. Nếu có xung đột, chính sách này sẽ được ưu tiên hơn <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" />.</translation>
+<translation id="1858775210076906272">Cấu hình điền sẵn của Kerberos</translation>
 <translation id="1861206724856734193">Đặt danh sách các quy tắc ngăn rò rỉ dữ liệu.</translation>
 <translation id="1862267110714201519">Tắt tính năng cửa sổ ảo.</translation>
 <translation id="1865417998205858223">Quyền khóa</translation>
@@ -1269,6 +1271,7 @@
 <translation id="2204753382813641270">Kiểm soát tự động ẩn giá</translation>
 <translation id="2208976000652006649">Tham số cho URL tìm kiếm sử dụng POST</translation>
 <translation id="2213059592185933570">Bật tính năng tạo hồ sơ chuyển vùng</translation>
+<translation id="2213342458177721585">Bật Bố cục Hindi Inscript trên toàn thiết bị.</translation>
 <translation id="2215238871726750562">Nếu bạn đặt chính sách này thành True, thì cửa sổ trình duyệt sẽ không chạy khi bắt đầu phiên.
 
       Nếu bạn đặt chính sách này thành False hoặc không đặt chính sách này, thì cửa sổ trình duyệt sẽ chạy.
@@ -1733,6 +1736,7 @@
 <translation id="2664682171745499686">Chặn các cảnh báo tương tự về miền trên các miền</translation>
 <translation id="2665422249821137126">Bật con trỏ lớn trên màn hình đăng nhập</translation>
 <translation id="2667894101494585925">Bật chế độ Tìm nạp hướng dẫn tối ưu hoá</translation>
+<translation id="2669157090883237118">Không thay đổi cấu hình <ph name="PRODUCT_OS_NAME" /> đề xuất.</translation>
 <translation id="2672012807430078509">Kiểm soát việc bật NTLM làm giao thức xác thực cho các điểm kết nối SMB</translation>
 <translation id="2673363037046384711">Người dùng cuối có thể bật hoặc tắt Chế độ hiệu quả cao.</translation>
 <translation id="2678503605767349615">Chứng chỉ ứng dụng bắt buộc cho toàn thiết bị</translation>
@@ -2583,6 +2587,7 @@
       Hãy truy cập vào https://support.google.com/chrome/a?p=Supported_directory_variables để xem danh sách các biến có thể dùng.
 
       Nếu bạn không đặt chính sách này, thì đường dẫn mặc định của hồ sơ sẽ được dùng và người dùng có thể ghi đè chính sách này bằng cờ dòng lệnh '--user-data-dir'.</translation>
+<translation id="3380801667330555918">Thay đổi cấu hình điền sẵn cho phiếu yêu cầu hỗ trợ Kerberos</translation>
 <translation id="338149029069528354">Không xoá dữ liệu người dùng cục bộ</translation>
 <translation id="3381968327636295719">Sử dụng trình duyệt chính theo mặc định</translation>
 <translation id="3387211681524224831">Khi bạn đặt chính sách này thành Bật, nhật ký duyệt web sẽ không được lưu, tính năng đồng bộ hóa thẻ sẽ tắt và người dùng không thể thay đổi tùy chọn cài đặt này.
@@ -3967,6 +3972,11 @@
           Nếu bạn không đặt chính sách này, thì ban đầu, chế độ đơn âm sẽ tắt nhưng người dùng có thể bật bất cứ lúc nào.</translation>
 <translation id="4768446404233019970">Bật bộ thuật toán mật mã 3DES trong TLS</translation>
 <translation id="4770334626033858263">Cấu hình dùng để tạo và xác minh Mã truy cập dành cho cha mẹ.</translation>
+<translation id="4773997835955617342">Thay đổi cấu hình <ph name="KRB5_CONFIG" /> đề xuất cho các phiếu yêu cầu hỗ trợ mới được tạo theo cách thủ công.
+
+      Nếu bạn bật chính sách này, thì giá trị của chính sách "KerberosCustomPrefilledConfig" sẽ được áp dụng làm cấu hình đề xuất và hiển thị trong phần "Advanced" (Nâng cao) của hộp thoại xác thực Kerberos.
+
+      Nếu bạn tắt hoặc không đặt chính sách này, thì cấu hình <ph name="PRODUCT_OS_NAME" /> đề xuất sẽ được áp dụng. Lưu ý: Cấu hình này cũng hiển thị trong phần "Advanced" (Nâng cao) của hộp thoại xác thực Kerberos.</translation>
 <translation id="4774030790286815890">Nếu bạn bật chế độ cài đặt này, người dùng sẽ được phép chọn sử dụng Trung tâm điều khiển điện thoại. Trung tâm này cho phép họ tương tác với điện thoại của hok trên một thiết bị ChromeOS.
 
       Nếu bạn tắt chế độ cài đặt này, người dùng sẽ không được phép sử dụng Trung tâm điều khiển điện thoại.
@@ -6100,6 +6110,8 @@
 
       Chỉ định cờ sẽ được áp dụng cho <ph name="PRODUCT_NAME" /> khi khởi động. Cờ được chỉ định sẽ chỉ được áp dụng trên màn hình đăng nhập. Các cờ được đặt qua chính sách này không phản ánh trong các phiên của người dùng.</translation>
 <translation id="6857240169209507953">Không cho phép <ph name="BOREALIS_NAME" /> chạy trên một thiết bị</translation>
+<translation id="6857372417233723544">Nếu bạn đặt chính sách này thì hệ thống sẽ bật Bố cục Hindi Inscript trên <ph name="PRODUCT_OS_NAME" />.
+Nếu bạn đặt chính sách này thành sai hoặc không đặt thì bố cục này sẽ không được áp dụng. Bạn cần khởi động lại để chính sách có hiệu lực.</translation>
 <translation id="685769593149966548">Buộc sử dụng Chế độ hạn chế nghiêm ngặt cho YouTube</translation>
 <translation id="686079137349561371">Microsoft Windows 7 trở lên</translation>
 <translation id="68818134518270542">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định những ứng dụng mà người dùng có thể bật làm ứng dụng ghi chú trên màn hình khóa của <ph name="PRODUCT_OS_NAME" />.
@@ -7036,6 +7048,7 @@
 
           Nếu chưa đặt chính sách này, thì phím tắt của tính năng hỗ trợ tiếp cận sẽ bật theo mặc định trên màn hình đăng nhập.</translation>
 <translation id="7777535871204167559">Coi thiết bị lưu trữ bên ngoài là thiết bị chỉ đọc</translation>
+<translation id="7781452670568828399">Thay đổi cấu hình <ph name="PRODUCT_OS_NAME" /> đề xuất.</translation>
 <translation id="7784062550705119230">Nếu bạn chọn <ph name="PRINTERS_ALLOWLIST" /> cho <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, việc đặt <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> sẽ chỉ định những máy in mà người dùng có thể sử dụng. Người dùng chỉ có thể sử dụng những máy in có mã nhận dạng khớp với giá trị trong chính sách này. Các mã nhận dạng này phải tương ứng với trường <ph name="ID_FIELD" /> hoặc <ph name="GUID_FIELD" /> ở tệp được chỉ định trong <ph name="DEVICE_PRINTERS_POLICY_NAME" /></translation>
 <translation id="7788511847830146438">Cho mỗi hồ sơ</translation>
 <translation id="7788632499792081231">Việc thiết lập chính sách này cho phép bạn thiết lập một danh sách mẫu URL xác định những trang web được sử dụng quyền bảng nhớ tạm cho trang web. Việc này không bao gồm mọi thao tác bảng nhớ tạm trên những nguồn gốc khớp với mẫu đó. Ví dụ: người dùng vẫn có thể dán bằng phím tắt do việc này không do quyền bảng nhớ tạm cho trang web kiểm soát.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 270787d..2880f321 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -1010,11 +1010,6 @@
 <translation id="1980777339173013601">除非已通过其他方式关闭 ARC,否则当此政策设为 True 或未设置时,用户可以使用 ARC。将此政策设为 False 意味着禁止独立用户使用 ARC。
 
       仅当 ARC 未运行时(例如 Chrome 操作系统启动时),对此政策做出的更改才会生效。</translation>
-<translation id="1982507511322683896">旨在为手动创建的新票据指定建议的 <ph name="KRB5_CONFIG" /> 配置。
-
-      如果“KerberosUseCustomPrefilledConfig”政策已启用:系统会使用此政策的值作为建议的配置,并会将其显示在 Kerberos 身份验证对话框内的“高级”部分中。如果此政策设为空字符串或未设置,系统会删除建议的 <ph name="PRODUCT_OS_NAME" /> 配置。如果此政策未设置,也会发生同样的情况。
-
-      如果“KerberosUseCustomPrefilledConfig”政策已停用:系统不会使用此政策的值。</translation>
 <translation id="1985598967415986700">“用户代理字符串缩短”功能将可通过现场试验和源试用进行控制。</translation>
 <translation id="1987789058026551147">启用设备自助服务终端会话报告功能</translation>
 <translation id="1988345404999458987">提供可用打印服务器的配置。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 0b421f5..7b21996 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -864,6 +864,7 @@
 
       如果將這項政策設為停用或不設定,則遠端協助主機會以使用者的權限層級執行,且遠端使用者無法在桌面上與權限層級較高的視窗互動。</translation>
 <translation id="1837165432382702436">頁面的高度 (以微米為單位)</translation>
+<translation id="1838910874018595451">Kerberos 票證的預填設定</translation>
 <translation id="1843117931376765605">使用者政策的重新整理頻率</translation>
 <translation id="1844620919405873871">設定快速解鎖相關政策。</translation>
 <translation id="1844972978764975668">允許向 Google 伺服器傳送查詢,以擷取準確的時間戳記</translation>
@@ -883,6 +884,7 @@
       如果不設定這項政策,在已設定 <ph name="DEFAULT_WEB_HID_GUARD_SETTING_POLICY_NAME" /> 政策的情況下,系統將套用該政策,否則系統會套用使用者的個人設定。
 
       這項政策中的網址不得與透過 <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" /> 政策設定的網址產生衝突。如有衝突情況,這項政策的優先順序高於 <ph name="WEB_HID_BLOCKED_FOR_URLS_POLICY_NAME" /> 政策。</translation>
+<translation id="1858775210076906272">Kerberos 預填設定</translation>
 <translation id="1861206724856734193">設定防止資料外洩的規則清單。</translation>
 <translation id="1862267110714201519">停用 ghost 視窗功能。</translation>
 <translation id="1865417998205858223">金鑰權限</translation>
@@ -1257,6 +1259,7 @@
 <translation id="2204753382813641270">控制檔案櫃自動隱藏功能</translation>
 <translation id="2208976000652006649">使用 POST 的搜尋網址參數</translation>
 <translation id="2213059592185933570">啟用漫遊設定檔建立功能</translation>
+<translation id="2213342458177721585">啟用裝置通用的 Hindi Inscript 鍵盤配置。</translation>
 <translation id="2215238871726750562">如果將這項政策設為 True,系統不會在工作階段開始時啟動瀏覽器視窗。
 
       如果將這項政策設為 False 或不設定,系統將可啟動視窗。
@@ -1723,6 +1726,7 @@
 <translation id="2664682171745499686">禁止在網域上顯示相似網域的警告訊息</translation>
 <translation id="2665422249821137126">在登入畫面上啟用大型游標</translation>
 <translation id="2667894101494585925">啟用最佳化指南擷取功能</translation>
+<translation id="2669157090883237118">不要變更 <ph name="PRODUCT_OS_NAME" /> 建議設定。</translation>
 <translation id="2672012807430078509">控管是否要為 SMB 掛接功能啟用 NTLM 驗證通訊協定</translation>
 <translation id="2673363037046384711">使用者可以啟用或停用高效率模式。</translation>
 <translation id="2678503605767349615">必須提供裝置通用用戶端憑證</translation>
@@ -2533,6 +2537,7 @@
       如需可使用的變數清單,請參閱 https://support.google.com/chrome/a?p=Supported_directory_variables。
 
       如果不設定這項政策,系統會使用預設的設定檔路徑,且使用者將可使用「--user-data-dir」指令列旗標覆寫這個路徑。</translation>
+<translation id="3380801667330555918">變更 Kerberos 票證的預填設定</translation>
 <translation id="338149029069528354">不要清除本機使用者資料</translation>
 <translation id="3381968327636295719">根據預設使用主機瀏覽器</translation>
 <translation id="3387211681524224831">如果將這項政策設為啟用,系統不會儲存瀏覽記錄,並會停用分頁同步功能,且使用者無法變更這項設定。
@@ -3892,6 +3897,11 @@
           如果不設定這項政策,系統預設會停用單聲道音訊,但使用者隨時可以啟用這項功能。</translation>
 <translation id="4768446404233019970">在傳輸層安全標準 (TLS) 中啟用 3DES 加密套件</translation>
 <translation id="4770334626033858263">用於產生及驗證家長存取碼的設定。</translation>
+<translation id="4773997835955617342">為手動建立的新票證變更 <ph name="KRB5_CONFIG" /> 建議設定。
+
+      如果啟用這項政策,「KerberosCustomPrefilledConfig」政策的值就會用於建議設定,並顯示在 Kerberos 驗證對話方塊的「進階」部分中。
+
+      如果停用這項政策或未設定,系統就會改用 <ph name="PRODUCT_OS_NAME" /> 建議設定。請注意,這項設定也會顯示在 Kerberos 驗證對話方塊的「進階」部分中。</translation>
 <translation id="4774030790286815890">如果啟用這項設定,使用者可以選擇開啟 Phone Hub 功能,在搭載 Chrome OS 的裝置上與手機互動。
 
       如果停用這項設定,使用者將無法開啟 Phone Hub 功能。
@@ -5987,6 +5997,8 @@
 
       指定要在 <ph name="PRODUCT_NAME" /> 啟動時套用的設定。系統僅會在進入登入畫面時套用指定的設定。透過這個政策所指定的設定不會反映在使用者工作階段中。</translation>
 <translation id="6857240169209507953">禁止在裝置上執行 <ph name="BOREALIS_NAME" /></translation>
+<translation id="6857372417233723544">設定這項政策後,系統就會在 <ph name="PRODUCT_OS_NAME" /> 上啟用北印度文 InScript 鍵盤配置。
+如果設為 False 或未設定,就無法使用該鍵盤配置。裝置必須重新啟動,政策設定才會生效。</translation>
 <translation id="685769593149966548">強制執行 YouTube 高度嚴格篩選模式</translation>
 <translation id="686079137349561371">Microsoft Windows 7 以上版本</translation>
 <translation id="68818134518270542">你可以透過這項政策指定應用程式,允許使用者在 <ph name="PRODUCT_OS_NAME" />螢幕鎖定畫面上以筆記應用程式的形式開啟。
@@ -6905,6 +6917,7 @@
 
            如果不設定這項政策,系統會在登入畫面上預設啟用無障礙功能快速鍵。</translation>
 <translation id="7777535871204167559">以唯讀模式處理外部儲存裝置</translation>
+<translation id="7781452670568828399">變更 <ph name="PRODUCT_OS_NAME" /> 建議設定。</translation>
 <translation id="7784062550705119230">如果在 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> 中選擇了 <ph name="PRINTERS_ALLOWLIST" />,系統會根據 <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> 的設定指定使用者可操作的印表機。只有 ID 與這項政策值相符的印表機,才會提供給使用者。印表機 ID 必須與 <ph name="DEVICE_PRINTERS_POLICY_NAME" /> 政策指定檔案的 <ph name="ID_FIELD" /> 或 <ph name="GUID_FIELD" /> 欄位值相符。</translation>
 <translation id="7788511847830146438">根據設定檔</translation>
 <translation id="7788632499792081231">你可以透過這項政策設定網址模式清單,指定哪些網站可以使用剪貼簿網站權限。這不包含在符合網址模式的來源網站上執行的所有剪貼簿作業。比方說,使用者仍可使用鍵盤快速鍵貼上內容,因為這項操作並未受到剪貼簿網站權限管制。
diff --git a/components/policy/resources/templates/device_policy_proto_map.yaml b/components/policy/resources/templates/device_policy_proto_map.yaml
index 64e0b3d6..000865a 100644
--- a/components/policy/resources/templates/device_policy_proto_map.yaml
+++ b/components/policy/resources/templates/device_policy_proto_map.yaml
@@ -66,6 +66,7 @@
 DeviceLoginScreenDictationEnabled: accessibility_settings.login_screen_dictation_enabled
 DeviceLoginScreenDomainAutoComplete: login_screen_domain_auto_complete.login_screen_domain_auto_complete
 DeviceLoginScreenExtensions: device_login_screen_extensions.device_login_screen_extensions
+DeviceLoginScreenExtensionManifestV2Availability: login_screen_extension_manifest_v2_availability.login_screen_extension_manifest_v2_availability
 DeviceLoginScreenHighContrastEnabled: accessibility_settings.login_screen_high_contrast_enabled
 DeviceLoginScreenInputMethods: login_screen_input_methods.login_screen_input_methods
 DeviceLoginScreenIsolateOrigins: device_login_screen_isolate_origins.isolate_origins
diff --git a/components/policy/resources/templates/policies.yaml b/components/policy/resources/templates/policies.yaml
index ad548170..4bfbb985 100644
--- a/components/policy/resources/templates/policies.yaml
+++ b/components/policy/resources/templates/policies.yaml
@@ -1053,6 +1053,7 @@
   1052: AppStoreRatingEnabled
   1053: KerberosUseCustomPrefilledConfig
   1054: DeviceHindiInscriptLayoutEnabled
+  1055: DeviceLoginScreenExtensionManifestV2Availability
 atomic_groups:
   1: Homepage
   2: RemoteAccess
diff --git a/components/policy/resources/templates/policy_definitions/Extensions/DeviceLoginScreenExtensionManifestV2Availability.yaml b/components/policy/resources/templates/policy_definitions/Extensions/DeviceLoginScreenExtensionManifestV2Availability.yaml
new file mode 100644
index 0000000..44292f5
--- /dev/null
+++ b/components/policy/resources/templates/policy_definitions/Extensions/DeviceLoginScreenExtensionManifestV2Availability.yaml
@@ -0,0 +1,47 @@
+owners:
+- zmin@chromium.org
+- file://components/policy/OWNERS
+caption: Control Manifest v2 extension availability
+desc: |-
+  Control if Manifest v2 extensions can be used on the <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph> sign-in screen.
+
+  Manifest v2 extensions support will be deprecated and all extensions need
+  to be migrated to v3 in the future. More information and timeline of the
+  migration can be found at https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/.
+
+  If the policy is set to <ph name="DEFAULT">Default</ph> (0) or not set, v2 extensions loading are decided by device, following the timeline above.
+  If the policy is set to <ph name="DISABLE">Disable</ph> (1), v2 extensions installation are blocked, existing ones are disabled. The option is going to be treated the same as if the policy is not set after v2 support is turned off by default.
+  If the policy is set to <ph name="ENABLE">Enable</ph> (2), v2 extensions are allowed. The option is going to be treated the same as if the policy is not set before v2 support is turned off by default.
+  If the policy is set to <ph name="ENABLE_FOR_FORCED_EXTENSIONS">EnableForForcedExtensions</ph> (3), force installed v2 extensions are allowed. This includes extensions that are listed by <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME">ExtensionInstallForcelist</ph> or <ph name="EXTENSION_SETTINGS_POLICY_NAME">ExtensionSettings</ph> with <ph name="INSTALLATION_MODE">installation_mode</ph> "force_installed" or "normal_installed". All other v2 extensions are disabled. The option is going to be treated the same as if the policy is not set before v2 support is turned off by default.
+
+
+  Extensions availability are still controlled by other policies.
+supported_on:
+- chrome_os:111-
+device_only: true
+features:
+  dynamic_refresh: true
+type: int-enum
+schema:
+   type: integer
+   enum:
+   - 0
+   - 1
+   - 2
+   - 3
+items:
+- caption: Default device behavior
+  name: Default
+  value: 0
+- caption: Manifest v2 is disabled
+  name: Disable
+  value: 1
+- caption: Manifest v2 is enabled
+  name: Enable
+  value: 2
+- caption: Manifest v2 is enabled for forced extensions only
+  name: EnableForForcedExtensions
+  value: 3
+default: 0
+example_value: 2
+tags: []
diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc
index c9d491ce..4c9df3e 100644
--- a/content/browser/devtools/protocol/page_handler.cc
+++ b/content/browser/devtools/protocol/page_handler.cc
@@ -1584,6 +1584,10 @@
     case PrerenderFinalStatus::kActivationNavigationDestroyedBeforeSuccess:
       return Page::PrerenderFinalStatusEnum::
           ActivationNavigationDestroyedBeforeSuccess;
+    case PrerenderFinalStatus::kTabClosedByUserGesture:
+      return Page::PrerenderFinalStatusEnum::TabClosedByUserGesture;
+    case PrerenderFinalStatus::kTabClosedWithoutUserGesture:
+      return Page::PrerenderFinalStatusEnum::TabClosedWithoutUserGesture;
   }
 }
 
diff --git a/content/browser/preloading/prerender/prerender_browsertest.cc b/content/browser/preloading/prerender/prerender_browsertest.cc
index 7129819..fa63237 100644
--- a/content/browser/preloading/prerender/prerender_browsertest.cc
+++ b/content/browser/preloading/prerender/prerender_browsertest.cc
@@ -1606,6 +1606,9 @@
 
   // Should not crash.
   shell()->Close();
+
+  ExpectFinalStatusForSpeculationRule(
+      PrerenderFinalStatus::kTabClosedWithoutUserGesture);
 }
 
 namespace {
diff --git a/content/browser/preloading/prerender/prerender_final_status.h b/content/browser/preloading/prerender/prerender_final_status.h
index e214c95a..b034b283 100644
--- a/content/browser/preloading/prerender/prerender_final_status.h
+++ b/content/browser/preloading/prerender/prerender_final_status.h
@@ -80,7 +80,11 @@
   // TODO(https://crbug.com/1363550): Remove this reason if no sample is
   // recorded in stable, or look into the reason if there are.
   kActivationNavigationDestroyedBeforeSuccess = 53,
-  kMaxValue = kActivationNavigationDestroyedBeforeSuccess,
+  // See comments on WebContents::kTabClosedWithoutUserGesture for the
+  // difference between the two statuses below.
+  kTabClosedByUserGesture = 54,
+  kTabClosedWithoutUserGesture = 55,
+  kMaxValue = kTabClosedWithoutUserGesture,
 };
 
 #endif  // CONTENT_BROWSER_PRELOADING_PRERENDER_PRERENDER_FINAL_STATUS_H_
diff --git a/content/browser/preloading/prerender/prerender_host.cc b/content/browser/preloading/prerender/prerender_host.cc
index 2338080..3e9ce33 100644
--- a/content/browser/preloading/prerender/prerender_host.cc
+++ b/content/browser/preloading/prerender/prerender_host.cc
@@ -924,6 +924,8 @@
     //    activated (kActivatedBeforeStarted).
     case PrerenderFinalStatus::kTriggerDestroyed:
     case PrerenderFinalStatus::kActivatedBeforeStarted:
+    case PrerenderFinalStatus::kTabClosedByUserGesture:
+    case PrerenderFinalStatus::kTabClosedWithoutUserGesture:
       return;
     case PrerenderFinalStatus::kDestroyed:
     case PrerenderFinalStatus::kLowEndDevice:
diff --git a/content/browser/preloading/prerender/prerender_host_registry.cc b/content/browser/preloading/prerender/prerender_host_registry.cc
index 3f2107e6..d1b1ba09 100644
--- a/content/browser/preloading/prerender/prerender_host_registry.cc
+++ b/content/browser/preloading/prerender/prerender_host_registry.cc
@@ -80,6 +80,18 @@
 }
 
 PrerenderHostRegistry::~PrerenderHostRegistry() {
+  // This function is called by WebContentsImpl's dtor, so web_contents() should
+  // not be a null ptr at this moment.
+  DCHECK(web_contents());
+
+  PrerenderFinalStatus final_status =
+      web_contents()->GetClosedByUserGesture()
+          ? PrerenderFinalStatus::kTabClosedByUserGesture
+          : PrerenderFinalStatus::kTabClosedWithoutUserGesture;
+
+  // Here we have to delete the prerender hosts synchronously, to ensure the
+  // FrameTrees would not access the WebContents.
+  CancelAllHosts(final_status);
   Observe(nullptr);
   for (Observer& obs : observers_)
     obs.OnRegistryDestroyed();
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb
index c17bfbe..2215f044 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb
@@ -112,7 +112,7 @@
 <translation id="7754633291442704733">Chrome verilerinize, yer işaretlerinize, geçmişinize, şifrelerinize ve bu hesapta sakladığınız diğer ayarlara kuruluşunuz <ph name="DOMAIN" /> erişebilir. Oturumunuzu kapattığınızda verileriniz bu cihazdan silinir.  Ancak verileriniz, yönetilen Google Hesabınızda saklanır ve kuruluşunuzun kullanımına açıktır. Kuruluşunuz ayrıca, söz konusu hesaba özel olup Chrome'un davranışını değiştirebilecek kullanıcı politikaları belirleyebilir.</translation>
 <translation id="7780154209050837198">Chrome'dan en iyi şekilde yararlanmak için Google Hesabı'nızla Chrome'da oturum açın.</translation>
 <translation id="7855730255114109580">Google Chrome güncel durumda</translation>
-<translation id="8022947259858476807">Bağlantıları açmak, widget'lardan arama yapmak ve diğer uygulamalarda parolaları otomatik doldurmak için varsayılan olarak Chrome'u kullanın</translation>
+<translation id="8022947259858476807">Bağlantıları açmak, widget'lardan arama yapmak ve diğer uygulamalarda şifreleri otomatik doldurmak için varsayılan olarak Chrome'u kullanın</translation>
 <translation id="81358522153858150">Chrome artık yönetilen hesabınız için kullanıcı politikalarını destekliyor</translation>
 <translation id="8160472928944011082">Chrome güncellenemiyor</translation>
 <translation id="8357607116237445042">Chrome verilerinizi bu cihazdan temizlemeyi veya saklamayı seçin</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index 151dd18..46c28714c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Vertaal tans die bladsy in <ph name="LANGUAGE" />. Opsies is naby die onderkant van die skerm beskikbaar.</translation>
 <translation id="648164694371393720">Stawingfout</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> items uitgevee</translation>
+<translation id="6495429111159337775">Gebruik en stoor wagwoorde in jou Google-rekening</translation>
 <translation id="6497772452874122664">As jy <ph name="TIME" /> vertrou, kan jy 'n gestoorde wagwoord van 'n ander werf af gebruik.
 
 Probeer 'n unieke wagwoord vir elke werf gebruik.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index f887cd1..4c0731e8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -757,6 +757,7 @@
 <translation id="6476800141292307438">ترجمة صفحة إلى <ph name="LANGUAGE" />. وتتوفّر الخيارات بالقرب من أسفل الشاشة.</translation>
 <translation id="648164694371393720">خطأ في المصادقة</translation>
 <translation id="6482629121755362506">تم حذف <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> من العناصر</translation>
+<translation id="6495429111159337775">‏استخدام كلمات المرور من حسابك على Google وحفظها</translation>
 <translation id="6497772452874122664">إذا كنت تثِق بالنطاق <ph name="TIME" />، يمكنك استخدام كلمة المرور نفسها المحفوظة من موقع إلكتروني آخر.
 
 حاوِل استخدام كلمة مرور فريدة لكل موقع إلكتروني.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index 2f88d498..79e82bf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">এই পৃষ্ঠাটো <ph name="LANGUAGE" />লৈ অনুবাদ কৰি থকা হৈছে। বিকল্পসমূহ স্ক্রীণখনৰ একেবাৰে তলৰ কাষত আছে।</translation>
 <translation id="648164694371393720">বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ কৰাত আসোঁৱাহ হৈছে</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> টা সমল মচা হ’ল</translation>
+<translation id="6495429111159337775">আপোনাৰ Google একাউণ্টৰ পৰা পাছৱৰ্ড ব্যৱহাৰ কৰক আৰু ছেভ কৰক</translation>
 <translation id="6497772452874122664">যদি আপোনাৰ <ph name="TIME" />ৰ ওপৰত বিশ্বাস আছে, তেন্তে আপুনি অন্য এটা ছাইটৰ বাবে ছেভ কৰি থোৱা এটা পাছৱৰ্ড ব্যৱহাৰ কৰিব পাৰে।
 
 প্ৰতিটো ছাইটৰ বাবে এটা অদ্বিতীয় পাছৱৰ্ড ব্যৱহাৰ কৰিবলৈ চেষ্টা কৰক।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index ec087ad5..259171f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Səhifə <ph name="LANGUAGE" /> dilinə tərcümə edilir. Seçimlər ekranın aşağı hissəsində əlçatandır.</translation>
 <translation id="648164694371393720">Doğrulama Xətası</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> element silindi</translation>
+<translation id="6495429111159337775">Google Hesabınızdan Parollardan İstifadə Edin və Saxlayın</translation>
 <translation id="6497772452874122664"><ph name="TIME" /> mənbəyinə etibar edirsinizsə, başqa saytdan saxlanmış parolu istifadə edə bilərsiniz.
 
 Hər sayt üçün unikal parol istifadə edin.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index 7a5331fb..f510c84 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Prevođenje stranice na <ph name="LANGUAGE" /> jezik. Opcije su dostupne pri dnu ekrana.</translation>
 <translation id="648164694371393720">Greška pri autentifikaciji</translation>
 <translation id="6482629121755362506">Broj izbrisanih stavki je <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
+<translation id="6495429111159337775">Koristi i sačuvaj lozinke s Google računa</translation>
 <translation id="6497772452874122664">Ako web lokaciju <ph name="TIME" /> smatrate pouzdanom, možete koristiti sačuvanu lozinku s druge web lokacije.
 
 Pokušajte koristiti jedinstvenu lozinku za svaku web lokaciju.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index 5791d61..60b5022 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">La pàgina s'està traduint a <ph name="LANGUAGE" />. Tens opcions disponibles a la part inferior de la pantalla.</translation>
 <translation id="648164694371393720">Error d’autenticació</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> elements suprimits</translation>
+<translation id="6495429111159337775">Utilitza i desa contrasenyes del Compte de Google</translation>
 <translation id="6497772452874122664">Si confies en <ph name="TIME" />, pots utilitzar una contrasenya desada d'un altre lloc web.
 
 Prova d'utilitzar una contrasenya única per a cada lloc web.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index f22d12d..a56d688 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -755,6 +755,7 @@
 <translation id="6476800141292307438">Μετάφραση της σελίδας σε <ph name="LANGUAGE" />. Οι επιλογές είναι διαθέσιμες κοντά στο κάτω μέρος της οθόνης.</translation>
 <translation id="648164694371393720">Σφάλμα ελέγχου ταυτότητας</translation>
 <translation id="6482629121755362506">Διαγράφηκαν <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> στοιχεία</translation>
+<translation id="6495429111159337775">Χρήση και αποθήκευση κωδικών πρόσβασης από τον Λογαριασμό σας Google</translation>
 <translation id="6497772452874122664">Εάν εμπιστεύεστε το <ph name="TIME" />, μπορείτε να χρησιμοποιήσετε έναν αποθηκευμένο κωδικό πρόσβασης από άλλον ιστότοπο.
 
 Προσπαθήστε να χρησιμοποιείτε έναν μοναδικό κωδικό πρόσβασης για κάθε ιστότοπο.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
index 4fac1de..e83e107 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Traduction de la page en <ph name="LANGUAGE" /> en cours… Les options sont affichées dans le bas de l'écran.</translation>
 <translation id="648164694371393720">Erreur d'authentification</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> éléments supprimés</translation>
+<translation id="6495429111159337775">Utiliser et enregistrer les mots de passe de votre compte Google</translation>
 <translation id="6497772452874122664">Si vous faites confiance à <ph name="TIME" />, vous pouvez utiliser un mot de passe enregistré pour un autre site.
 
 Tâchez d'utiliser un mot de passe différent pour chaque site.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index 6f1cc3d..08d480c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">પેજનો અનુવાદ <ph name="LANGUAGE" />માં કરી રહ્યા છે. વિકલ્પો સ્ક્રીનની નીચેની બાજુએ ઉપલબ્ધ રહે છે.</translation>
 <translation id="648164694371393720">પ્રમાણીકરણ ભૂલ</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> આઇટમ કાઢી નાખી</translation>
+<translation id="6495429111159337775">તમારા Google એકાઉન્ટમાંના પાસવર્ડનો ઉપયોગ કરો અને તેને સાચવો</translation>
 <translation id="6497772452874122664">જો <ph name="TIME" /> તમારા માટે વિશ્વસનીય હોય, તો તમે અન્ય સાઇટ પરથી સાચવેલા પાસવર્ડનો ઉપયોગ કરી શકો છો.
 
 દરેક સાઇટ માટે વિશિષ્ટ પાસવર્ડનો ઉપયોગ કરી જુઓ.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 9739acb3..1c896aa 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Stranica se prevodi na <ph name="LANGUAGE" />. Opcije su dostupne pri dnu zaslona.</translation>
 <translation id="648164694371393720">Pogreška autentifikacije</translation>
 <translation id="6482629121755362506">Broj izbrisanih stavki: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
+<translation id="6495429111159337775">Koristite i spremajte zaporke sa svojeg Google računa</translation>
 <translation id="6497772452874122664">Ako web-lokaciju <ph name="TIME" /> smatrate pouzdanom, možete upotrijebiti spremljenu zaporku s neke druge web-lokacije.
 
 Pokušajte koristiti jedinstvenu zaporku za svaku web-lokaciju.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index b8bff4b..4208876 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Az oldal lefordítása <ph name="LANGUAGE" /> nyelvre. A képernyő alján láthatók a rendelkezésre álló lehetőségek.</translation>
 <translation id="648164694371393720">Hitelesítési hiba</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> elem törölve</translation>
+<translation id="6495429111159337775">Jelszavak mentése és használata a Google-fiókból</translation>
 <translation id="6497772452874122664">Ha megbízik a(z) <ph name="TIME" /> webhelyben, használhatja másik webhelyhez mentett jelszavát.
 
 Próbáljon minden webhelyen egyedi jelszót használni.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 360014f..7426d6f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Puslapis verčiamas į <ph name="LANGUAGE" />. Parinktys pasiekiamos netoli ekrano apačios.</translation>
 <translation id="648164694371393720">Autentifikavimo klaida</translation>
 <translation id="6482629121755362506">Ištrinta elementų: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
+<translation id="6495429111159337775">Naudoti ir išsaugoti slaptažodžius iš „Google“ paskyros</translation>
 <translation id="6497772452874122664">Jei pasitikite <ph name="TIME" />, galite naudoti kitoje svetainėje išsaugotą slaptažodį.
 
 Kiekvienoje svetainėje stenkitės naudoti unikalius slaptažodžius.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index e5dd54c9..b7eff59 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">പേജ് <ph name="LANGUAGE" /> എന്ന ഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യുന്നു. സ്‌ക്രീനിൻ്റെ ചുവടെ ഓപ്‌ഷനുകൾ ലഭ്യമാണ്.</translation>
 <translation id="648164694371393720">പരിശോധിച്ചുറപ്പിക്കൽ പിശക്</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> ഇനങ്ങൾ ഇല്ലാതാക്കി</translation>
+<translation id="6495429111159337775">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ പാസ്‌വേഡുകൾ സംരക്ഷിക്കുകയും അവ ഉപയോഗിക്കുകയും ചെയ്യുക</translation>
 <translation id="6497772452874122664">നിങ്ങൾക്ക് <ph name="TIME" /> -നെ വിശ്വാസമുണ്ടെങ്കിൽ, മറ്റൊരു സൈറ്റിലെ സംരക്ഷിച്ചിരിക്കുന്ന പാസ്‌വേഡ് ഉപയോഗിക്കാം.
 
 ഓരോ സൈറ്റിനും വ്യത്യസ്തമായ പാസ്‌വേഡ് ഉപയോഗിക്കാൻ ശ്രമിക്കുക.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 6d35bce2..08b2c9c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -756,6 +756,7 @@
 <translation id="6476800141292307438">पेजचे <ph name="LANGUAGE" /> मध्ये भाषांतर करत आहे. पर्याय स्क्रीनच्या खाली उपलब्ध आहेत.</translation>
 <translation id="648164694371393720">ऑथेंटिकेशन एरर</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> आयटम हटविले</translation>
+<translation id="6495429111159337775">तुमच्या Google खाते मधील पासवर्ड वापरा आणि सेव्ह करा</translation>
 <translation id="6497772452874122664">तुम्हाला <ph name="TIME" /> सुरक्षित वाटत असल्यास, तुम्ही दुसर्‍या साइटचा सेव्ह केलेला पासवर्ड वापरू शकता.
 
 प्रत्येक साइटसाठी युनिक पासवर्ड वापरण्याचा प्रयत्न करा.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index fe5139f..b4f92ac 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">पृष्ठलाई <ph name="LANGUAGE" /> भाषामा अनुवाद गर्दै। विकल्पहरू स्क्रिनका पुछारमा उपलब्ध छन्।</translation>
 <translation id="648164694371393720">प्रमाणीकरणसम्बन्धी त्रुटि</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> वस्तुहरू मेटाइयो</translation>
+<translation id="6495429111159337775">मेरो Google खातामा पासवर्डहरू सेभ गर्नुका साथै ती पासवर्डहरू प्रयोग गरिऊन्</translation>
 <translation id="6497772452874122664">तपाईंलाई <ph name="TIME" /> माथि विश्वास छ भने तपाईं कुनै अर्को साइटको सुरक्षित गरिएको पासवर्ड प्रयोग गर्न सक्नुहुन्छ।
 
 हरेक साइटमा एउटा अद्वितीय पासवर्ड प्रयोग गर्ने प्रयास गर्नुहोस्।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index d32ce17..45b20dc9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">De pagina vertalen naar het <ph name="LANGUAGE" />. Opties beschikbaar onderaan het scherm.</translation>
 <translation id="648164694371393720">Verificatiefout</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> items verwijderd</translation>
+<translation id="6495429111159337775">Wachtwoorden uit je Google-account gebruiken en opslaan</translation>
 <translation id="6497772452874122664">Als je <ph name="TIME" /> vertrouwt, kun je een opgeslagen wachtwoord van een andere site gebruiken.
 
 Probeer een uniek wachtwoord te gebruiken voor elke site.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index 6fb7443..971fe7ab 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Oversetter siden til <ph name="LANGUAGE" />. Du finner alternativer på nedre del av skjermen.</translation>
 <translation id="648164694371393720">Autentiseringsfeil</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> elementer slettet</translation>
+<translation id="6495429111159337775">Bruk og lagre passord fra Google-kontoen din</translation>
 <translation id="6497772452874122664">Hvis du stoler på <ph name="TIME" />, kan du bruke lagrede passord for andre nettsteder.
 
 Prøv å bruke unike passord for hvert nettsted.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
index d0a692e..e5e96e77 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Tradução da página para <ph name="LANGUAGE" />. Opções disponíveis na parte inferior da tela.</translation>
 <translation id="648164694371393720">Erro de autenticação</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> itens excluídos</translation>
+<translation id="6495429111159337775">Usar e salvar senhas da sua Conta do Google</translation>
 <translation id="6497772452874122664">Se você confia em <ph name="TIME" />, pode usar uma senha salva de outro site.
 
 Tente usar uma senha exclusiva para cada site.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index d26b9e7..08561cb9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Se traduce această pagină în <ph name="LANGUAGE" />. Sunt disponibile opțiuni în partea de jos a ecranului.</translation>
 <translation id="648164694371393720">Eroare de autentificare</translation>
 <translation id="6482629121755362506">Elemente șterse: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
+<translation id="6495429111159337775">Folosește și salvează parole din Contul Google</translation>
 <translation id="6497772452874122664">Dacă ai încredere în <ph name="TIME" />, poți folosi o parolă salvată de pe alt site.
 
 Folosește o parolă unică pentru fiecare site.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index 908753bd..9fa1e75 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Перевод страницы на <ph name="LANGUAGE" />. Параметры указаны в нижней части экрана.</translation>
 <translation id="648164694371393720">Ошибка аутентификации</translation>
 <translation id="6482629121755362506">Удалено закладок: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
+<translation id="6495429111159337775">Сохранять пароли в аккаунте Google и использовать их</translation>
 <translation id="6497772452874122664">Если вы доверяете сайту <ph name="TIME" />, то можете использовать для него сохраненный пароль из другого сервиса.
 
 Для каждого сайта желательно использовать уникальный пароль.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index c4c6ab3f..f802246 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Stránka sa prekladá do jazyka <ph name="LANGUAGE" />. Možnosti nájdete v dolnej časti obrazovky.</translation>
 <translation id="648164694371393720">Chyba overenia</translation>
 <translation id="6482629121755362506">Počet odstránených položiek: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
+<translation id="6495429111159337775">Používať a ukladať heslá z účtu Google</translation>
 <translation id="6497772452874122664">Ak webu <ph name="TIME" /> dôverujete, môžete použiť uložené heslo z iného webu.
 
 Pre každý web skúste použiť jedinečné heslo.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index c6e65d0..148f335f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">பக்கத்தை <ph name="LANGUAGE" /> மொழியில் மொழிபெயர்க்கிறது. திரையின் கீழ்ப்பகுதிக்கு அருகில் விருப்பத்தேர்வுகள் உள்ளன.</translation>
 <translation id="648164694371393720">அங்கீகாரப் பிழை</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> உருப்படிகள் நீக்கப்பட்டன</translation>
+<translation id="6495429111159337775">எனது Google கணக்கில் இருந்து கடவுச்சொற்களைப் பயன்படுத்திச் சேமி</translation>
 <translation id="6497772452874122664"><ph name="TIME" /> தளம் நம்பகமானது என நீங்கள் கருதினால் வேறொரு தளத்தில் சேமித்த கடவுச்சொல்லைப் பயன்படுத்தலாம்.
 
 ஒவ்வொரு தளத்திற்கும் தனித்துவமான கடவுச்சொல்லைப் பயன்படுத்த முயலவும்.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 9871c46..2295052a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -765,7 +765,7 @@
 <translation id="6537746030088321027">example.com</translation>
 <translation id="6540120577248033958">Bir siteyi ziyaret edip Chrome menüsündeki Takip Et seçeneğini tıklayın</translation>
 <translation id="6561262006871132942">Yakınlaştır</translation>
-<translation id="6583087784430677195">Özelliği kapatmak için <ph name="BEGIN_LINK" />Ayarlar<ph name="END_LINK" />'ı açıp Parolaları Otomatik Doldur'a gidin.</translation>
+<translation id="6583087784430677195">Özelliği kapatmak için <ph name="BEGIN_LINK" />Ayarlar<ph name="END_LINK" />'ı açıp Şifreleri Otomatik Doldur'a gidin.</translation>
 <translation id="6585618849026997638">Önemli gördüğünüz sayfalara yer işareti koyarak geri dönebilirsiniz.</translation>
 <translation id="6596481460663245319">Resmi Google'la arayın</translation>
 <translation id="6598875554591387303">Yayıncıya göre sırala</translation>
@@ -946,7 +946,7 @@
 Siteler, örneğin reklamları kişiselleştirmek amacıyla farklı sitelerde tarama etkinliğinizi görmek için çerezler kullanabilir.</translation>
 <translation id="7971521879845308059">Pop-up'ları Engelle</translation>
 <translation id="797413074872316787">Cihazlar arasında senkronizasyon ve kişiselleştirme yapmak için senkronizasyonu etkinleştirin.</translation>
-<translation id="7978018860671536736">3. Parolaları Otomatik Doldur seçeneğine dokunun</translation>
+<translation id="7978018860671536736">3. Şifreleri Otomatik Doldur seçeneğine dokunun</translation>
 <translation id="7981908678811807838">Fiyat takibi bu sitede kullanılamıyor.</translation>
 <translation id="7982789257301363584">Ağ</translation>
 <translation id="7987685713885608670">Ek güvenlik için, Google Şifre Yöneticisi'ne kaydedilmeden önce şifrelerinizi cihazınızda şifreleyin.</translation>
@@ -983,7 +983,7 @@
 <translation id="8206354486702514201">Bu seçenek, yöneticiniz tarafınızdan denetleniyor.</translation>
 <translation id="821809831108207540">Keşfet feed'inizi ve Chrome'u kişiselleştirmek için oturum açıp senkronizasyonu etkinleştirin.</translation>
 <translation id="8225985093977202398">Önbelleğe Alınan Resimler ve Dosyalar</translation>
-<translation id="8237382152611443140">Parolaları Otomatik Doldur ayarlarını açın</translation>
+<translation id="8237382152611443140">Şifreleri Otomatik Doldur ayarlarını açın</translation>
 <translation id="8261506727792406068">Sil</translation>
 <translation id="8271720166617117963">Kabul Et ve Oturum Aç</translation>
 <translation id="8278938988428169257">Bir kelime veya kelime öbeği girin</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index c51288c..03f8f36 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Сторінка перекладається такою мовою: <ph name="LANGUAGE" />. Параметри розташовано внизу екрана.</translation>
 <translation id="648164694371393720">Помилка автентифікації</translation>
 <translation id="6482629121755362506">Видалено елементів: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
+<translation id="6495429111159337775">Використовувати й зберігати паролі з облікового запису Google</translation>
 <translation id="6497772452874122664">Якщо ви довіряєте сайту <ph name="TIME" />, то можете скористатися збереженим паролем з іншого сайту.
 
 Намагайтеся використовувати для кожного сайту унікальний пароль.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index 3fc59180..1e7db35 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">صفحہ کا <ph name="LANGUAGE" /> میں ترجمہ کیا جا رہا ہے۔ اسکرین کے نچلے حصے کے قریب اختیارات دستیاب ہیں۔</translation>
 <translation id="648164694371393720">توثیق کی خرابی</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> آئٹم کو حذف کر دیا گیا</translation>
+<translation id="6495429111159337775">‏اپنے Google اکاؤنٹ سے پاس ورڈ استعمال کریں اور محفوظ کریں</translation>
 <translation id="6497772452874122664">اگر آپ کو <ph name="TIME" /> پر اعتماد ہے تو آپ کسی اور سائٹ سے محفوظ کردہ پاس ورڈ استعمال کر سکتے ہیں۔
 
 ہر سائٹ کے لئے ایک منفرد پاس ورڈ استعمال کرنے کی کوشش کریں۔</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 58cb899..c2d99e4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Đang dịch trang sang <ph name="LANGUAGE" />. Các tùy chọn nằm ở gần cuối màn hình.</translation>
 <translation id="648164694371393720">Lỗi xác thực</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> dấu trang đã bị xóa</translation>
+<translation id="6495429111159337775">Sử dụng và lưu mật khẩu từ Tài khoản Google của bạn</translation>
 <translation id="6497772452874122664">Nếu tin tưởng <ph name="TIME" />, bạn có thể sử dụng mật khẩu đã lưu của một trang web khác.
 
 Hãy cố gắng sử dụng một mật khẩu riêng cho mỗi trang web.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
index 981939c8..701a832 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">將網頁翻譯成<ph name="LANGUAGE" />。翻譯選項喺喺接近畫面底部附近。</translation>
 <translation id="648164694371393720">驗證錯誤</translation>
 <translation id="6482629121755362506">已刪除 <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> 個項目</translation>
+<translation id="6495429111159337775">將密碼儲存到 Google 帳戶並自動填入</translation>
 <translation id="6497772452874122664">如果您信任 <ph name="TIME" />,可使用已儲存的其他網站密碼。請嘗試在每個網站使用不重複的密碼。</translation>
 <translation id="650279896687777322">瞭解詳情…</translation>
 <translation id="6510072653668207258">稍後提醒我</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
index 1eb860c..86bcc12c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">將網頁翻譯成<ph name="LANGUAGE" />。翻譯選項位於靠近畫面底部的位置。</translation>
 <translation id="648164694371393720">驗證錯誤</translation>
 <translation id="6482629121755362506">已刪除 <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> 個項目</translation>
+<translation id="6495429111159337775">將密碼儲存到 Google 帳戶並自動填入</translation>
 <translation id="6497772452874122664">如果你信任 <ph name="TIME" />,可以使用已在其他網站儲存的密碼。
 
 建議你為每個網站設定專屬的密碼。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index a20f951..0d410fbe 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -754,6 +754,7 @@
 <translation id="6476800141292307438">Ukuhumushela ikhasi kusi-<ph name="LANGUAGE" />. Izinketho ziyatholakala eduzane naphansi kwesikrini.</translation>
 <translation id="648164694371393720">Iphutha lokufakazela ubuqiniso</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> izinto zisusiwe</translation>
+<translation id="6495429111159337775">Sebenzisa futhi Londoloza Amagama Ayimfihlo Ku-akhawunti Yakho ye-Google</translation>
 <translation id="6497772452874122664">Uma wethemba i-<ph name="TIME" />, ungase usebenzise iphasiwedi elondoloziwe kusuka kwelinye isayithi.
 
 Zama ukusebenzisa iphasiwedi eyingqayizivele kusayithi ngayinye.</translation>
diff --git a/ios/chrome/browser/ui/settings/cells/table_view_clear_browsing_data_item.mm b/ios/chrome/browser/ui/settings/cells/table_view_clear_browsing_data_item.mm
index d51df3d..9301e1be 100644
--- a/ios/chrome/browser/ui/settings/cells/table_view_clear_browsing_data_item.mm
+++ b/ios/chrome/browser/ui/settings/cells/table_view_clear_browsing_data_item.mm
@@ -295,4 +295,13 @@
   return value;
 }
 
+- (UIAccessibilityTraits)accessibilityTraits {
+  UIAccessibilityTraits accessibilityTraits = super.accessibilityTraits;
+  accessibilityTraits |= UIAccessibilityTraitButton;
+  if (self.checked) {
+    accessibilityTraits |= UIAccessibilityTraitSelected;
+  }
+  return accessibilityTraits;
+}
+
 @end
diff --git a/ios/web_view/internal/autofill/cwv_credit_card_verifier_unittest.mm b/ios/web_view/internal/autofill/cwv_credit_card_verifier_unittest.mm
index 685f7c8..415be227 100644
--- a/ios/web_view/internal/autofill/cwv_credit_card_verifier_unittest.mm
+++ b/ios/web_view/internal/autofill/cwv_credit_card_verifier_unittest.mm
@@ -117,8 +117,6 @@
     }
 
     pref_service_ = std::make_unique<TestingPrefServiceSimple>();
-    pref_service_->registry()->RegisterBooleanPref(
-        autofill::prefs::kAutofillWalletImportStorageCheckboxState, false);
     autofill::CreditCard credit_card = autofill::test::GetMaskedServerCard();
     credit_card_verifier_ = [[CWVCreditCardVerifier alloc]
          initWithPrefs:pref_service_.get()
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins
index 95de06c4..dddc34b 100644
--- a/net/http/transport_security_state_static.pins
+++ b/net/http/transport_security_state_static.pins
@@ -43,9 +43,9 @@
 #   hash function for preloaded entries again (we have already done so once).
 #
 
-# Last updated: 2022-12-29 12:54 UTC
+# Last updated: 2022-12-31 12:55 UTC
 PinsListTimestamp
-1672318468
+1672491319
 
 TestSPKI
 sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/remoting/host/installer/mac/uninstaller/remoting_uninstaller.mm b/remoting/host/installer/mac/uninstaller/remoting_uninstaller.mm
index 6cd47c6..79c0c208 100644
--- a/remoting/host/installer/mac/uninstaller/remoting_uninstaller.mm
+++ b/remoting/host/installer/mac/uninstaller/remoting_uninstaller.mm
@@ -170,7 +170,7 @@
   base::mac::ScopedAuthorizationRef authRef;
   OSStatus status =
       AuthorizationCreate(nullptr, kAuthorizationEmptyEnvironment,
-                          kAuthorizationFlagDefaults, authRef.get_pointer());
+                          kAuthorizationFlagDefaults, authRef.InitializeInto());
   if (status != errAuthorizationSuccess) {
     [NSException raise:@"AuthorizationCreate Failure"
                 format:@"Error during AuthorizationCreate status=%d",
diff --git a/remoting/host/setup/daemon_controller_delegate_mac.mm b/remoting/host/setup/daemon_controller_delegate_mac.mm
index 770e339..5ecb371 100644
--- a/remoting/host/setup/daemon_controller_delegate_mac.mm
+++ b/remoting/host/setup/daemon_controller_delegate_mac.mm
@@ -89,8 +89,8 @@
   NSString* prompt = l10n_util::GetNSStringFWithFixup(
       IDS_HOST_AUTHENTICATION_PROMPT,
       l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
-  base::mac::ScopedAuthorizationRef authorization(
-      base::mac::AuthorizationCreateToRunAsRoot(base::mac::NSToCFCast(prompt)));
+  base::mac::ScopedAuthorizationRef authorization =
+      base::mac::AuthorizationCreateToRunAsRoot(base::mac::NSToCFCast(prompt));
   if (!authorization.get()) {
     LOG(ERROR) << "Failed to obtain authorizationRef";
     return false;
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
index fef0dea8..bd8e074 100644
--- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -8555,6 +8555,8 @@
       ActivatedInBackground
       EmbedderHostDisallowed
       ActivationNavigationDestroyedBeforeSuccess
+      TabClosedByUserGesture
+      TabClosedWithoutUserGesture
 
   # Fired when a prerender attempt is completed.
   experimental event prerenderAttemptCompleted
diff --git a/third_party/blink/renderer/modules/mediarecorder/media_recorder.cc b/third_party/blink/renderer/modules/mediarecorder/media_recorder.cc
index 9db8ba8..e529293 100644
--- a/third_party/blink/renderer/modules/mediarecorder/media_recorder.cc
+++ b/third_party/blink/renderer/modules/mediarecorder/media_recorder.cc
@@ -394,7 +394,7 @@
   recorder_handler_ = nullptr;
 }
 
-void MediaRecorder::WriteData(const char* data,
+void MediaRecorder::WriteData(const void* data,
                               size_t length,
                               bool last_in_slice,
                               double timecode) {
diff --git a/third_party/blink/renderer/modules/mediarecorder/media_recorder.h b/third_party/blink/renderer/modules/mediarecorder/media_recorder.h
index 3529653..a9693d9a 100644
--- a/third_party/blink/renderer/modules/mediarecorder/media_recorder.h
+++ b/third_party/blink/renderer/modules/mediarecorder/media_recorder.h
@@ -77,7 +77,7 @@
   // ScriptWrappable
   bool HasPendingActivity() const final { return state_ != State::kInactive; }
 
-  virtual void WriteData(const char* data,
+  virtual void WriteData(const void* data,
                          size_t length,
                          bool last_in_slice,
                          double timecode);
diff --git a/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.cc b/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.cc
index 91b3fbf..083e8e25 100644
--- a/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.cc
+++ b/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.cc
@@ -354,13 +354,14 @@
   DCHECK(IsMainThread());
   // Don't check |recording_| since we can go directly from pause() to stop().
 
+  // Ensure any stored data inside the muxer is flushed out before invalidation.
+  muxer_ = nullptr;
   invalidated_ = true;
 
   recording_ = false;
   timeslice_ = base::Milliseconds(0);
   video_recorders_.clear();
   audio_recorders_.clear();
-  muxer_.reset();
 }
 
 void MediaRecorderHandler::Pause() {
@@ -604,7 +605,7 @@
 
 void MediaRecorderHandler::WriteData(base::StringPiece data) {
   DCHECK(IsMainThread());
-
+  DVLOG(3) << __func__ << " " << data.length() << "B";
   if (invalidated_)
     return;
 
diff --git a/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler_unittest.cc b/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler_unittest.cc
index a1ae3952..61d531c6 100644
--- a/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler_unittest.cc
+++ b/third_party/blink/renderer/modules/mediarecorder/media_recorder_handler_unittest.cc
@@ -104,14 +104,14 @@
 
 class MockMediaRecorder : public MediaRecorder {
  public:
-  MockMediaRecorder(V8TestingScope& scope)
+  explicit MockMediaRecorder(V8TestingScope& scope)
       : MediaRecorder(scope.GetExecutionContext(),
                       CreateMediaStream(scope),
                       MediaRecorderOptions::Create(),
                       scope.GetExceptionState()) {}
   ~MockMediaRecorder() override = default;
 
-  MOCK_METHOD4(WriteData, void(const char*, size_t, bool, double));
+  MOCK_METHOD4(WriteData, void(const void*, size_t, bool, double));
   MOCK_METHOD1(OnError, void(const String& message));
 };
 
@@ -129,10 +129,6 @@
     registry_.Init();
   }
 
-  MediaRecorderHandlerFixture(const MediaRecorderHandlerFixture&) = delete;
-  MediaRecorderHandlerFixture& operator=(const MediaRecorderHandlerFixture&) =
-      delete;
-
   ~MediaRecorderHandlerFixture() {
     registry_.reset();
     ThreadState::Current()->CollectAllGarbageForTesting();
@@ -156,8 +152,16 @@
                                 std::string encoded_alpha,
                                 base::TimeTicks timestamp,
                                 bool is_key_frame) {
-    media_recorder_handler_->OnEncodedVideo(params, encoded_data, encoded_alpha,
-                                            timestamp, is_key_frame);
+    media_recorder_handler_->OnEncodedVideo(params, std::move(encoded_data),
+                                            std::move(encoded_alpha), timestamp,
+                                            is_key_frame);
+  }
+
+  void OnEncodedAudioForTesting(const media::AudioParameters& params,
+                                std::string encoded_data,
+                                base::TimeTicks timestamp) {
+    media_recorder_handler_->OnEncodedAudio(params, std::move(encoded_data),
+                                            timestamp);
   }
 
   void OnAudioBusForTesting(const media::AudioBus& audio_bus) {
@@ -195,19 +199,11 @@
   }
 
   ScopedTestingPlatformSupport<IOTaskRunnerTestingPlatformSupport> platform_;
-
   MockMediaStreamRegistry registry_;
-
   bool has_video_;
-
   bool has_audio_;
-
-  // The Class under test. Needs to be scoped_ptr to force its destruction.
   Persistent<MediaRecorderHandler> media_recorder_handler_;
-
-  // For generating test AudioBuses
   media::SineWaveAudioSource audio_source_;
-
   MockMediaStreamVideoSource* video_source_ = nullptr;
 };
 
@@ -217,9 +213,6 @@
   MediaRecorderHandlerTest()
       : MediaRecorderHandlerFixture(GetParam().has_video,
                                     GetParam().has_audio) {}
-
-  MediaRecorderHandlerTest(const MediaRecorderHandlerTest&) = delete;
-  MediaRecorderHandlerTest& operator=(const MediaRecorderHandlerTest&) = delete;
 };
 
 // Checks that canSupportMimeType() works as expected, by sending supported
@@ -405,10 +398,6 @@
   media_recorder_handler_->Stop();
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         MediaRecorderHandlerTest,
-                         ValuesIn(kMediaRecorderTestParams));
-
 // Sends 2 frames and expect them as WebM (or MKV) contained encoded audio data
 // in writeData().
 TEST_P(MediaRecorderHandlerTest, OpusEncodeAudioFrames) {
@@ -620,6 +609,93 @@
   media_recorder_handler_ = nullptr;
 }
 
+INSTANTIATE_TEST_SUITE_P(All,
+                         MediaRecorderHandlerTest,
+                         ValuesIn(kMediaRecorderTestParams));
+
+class MediaRecorderHandlerAudioVideoTest : public testing::Test,
+                                           public MediaRecorderHandlerFixture {
+ public:
+  MediaRecorderHandlerAudioVideoTest()
+      : MediaRecorderHandlerFixture(/*has_video=*/true,
+                                    /*has_audio=*/true) {}
+
+  void FeedVideo() {
+    media::Muxer::VideoParameters video_params(
+        gfx::Size(), 1, media::VideoCodec::kVP9, gfx::ColorSpace());
+    OnEncodedVideoForTesting(video_params, "video", "alpha", timestamp_, true);
+    timestamp_ += base::Milliseconds(10);
+  }
+
+  void FeedAudio() {
+    media::AudioParameters audio_params(
+        media::AudioParameters::AUDIO_PCM_LINEAR,
+        media::ChannelLayoutConfig::Stereo(), kTestAudioSampleRate,
+        kTestAudioSampleRate * kTestAudioBufferDurationMs / 1000);
+    OnEncodedAudioForTesting(audio_params, "audio", timestamp_);
+    timestamp_ += base::Milliseconds(10);
+  }
+
+  base::TimeTicks timestamp_ = base::TimeTicks::Now();
+};
+
+TEST_F(MediaRecorderHandlerAudioVideoTest, EmitsCachedAudioDataOnStop) {
+  AddTracks();
+  V8TestingScope scope;
+  auto* recorder = MakeGarbageCollected<MockMediaRecorder>(scope);
+  media_recorder_handler_->Initialize(
+      recorder, registry_.test_stream(), "video/webm", "vp9,opus", 0, 0,
+      AudioTrackRecorder::BitrateMode::kVariable);
+  media_recorder_handler_->Start(std::numeric_limits<int>::max());
+
+  // Feed some encoded data into the recorder. Expect that data cached by the
+  // muxer is emitted on the call to Stop.
+  FeedVideo();
+  FeedAudio();
+  EXPECT_CALL(*recorder, WriteData).Times(AtLeast(1));
+  media_recorder_handler_->Stop();
+  media_recorder_handler_ = nullptr;
+}
+
+TEST_F(MediaRecorderHandlerAudioVideoTest, EmitsCachedVideoDataOnStop) {
+  AddTracks();
+  V8TestingScope scope;
+  auto* recorder = MakeGarbageCollected<MockMediaRecorder>(scope);
+  media_recorder_handler_->Initialize(
+      recorder, registry_.test_stream(), "video/webm", "vp9,opus", 0, 0,
+      AudioTrackRecorder::BitrateMode::kVariable);
+  media_recorder_handler_->Start(std::numeric_limits<int>::max());
+
+  // Feed some encoded data into the recorder. Expect that data cached by the
+  // muxer is emitted on the call to Stop.
+  FeedAudio();
+  FeedVideo();
+  EXPECT_CALL(*recorder, WriteData).Times(AtLeast(1));
+  media_recorder_handler_->Stop();
+  media_recorder_handler_ = nullptr;
+}
+
+TEST_F(MediaRecorderHandlerAudioVideoTest,
+       EmitsCachedAudioDataAfterVideoTrackEnded) {
+  AddTracks();
+  V8TestingScope scope;
+  auto* recorder = MakeGarbageCollected<MockMediaRecorder>(scope);
+  media_recorder_handler_->Initialize(
+      recorder, registry_.test_stream(), "video/webm", "vp9,opus", 0, 0,
+      AudioTrackRecorder::BitrateMode::kVariable);
+  media_recorder_handler_->Start(std::numeric_limits<int>::max());
+
+  // Feed some encoded data into the recorder. Expect that data cached by the
+  // muxer is emitted on the call to Stop.
+  FeedVideo();
+  registry_.test_stream()->VideoComponents()[0]->GetPlatformTrack()->Stop();
+  FeedAudio();
+  FeedAudio();
+  EXPECT_CALL(*recorder, WriteData).Times(AtLeast(1));
+  media_recorder_handler_->Stop();
+  media_recorder_handler_ = nullptr;
+}
+
 #if BUILDFLAG(RTC_USE_H264)
 
 struct H264ProfileTestParams {
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index bc9acd7e..f60f6396 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2553,7 +2553,6 @@
     {
       name: "SkipAd",
       depends_on: ["MediaSession"],
-      origin_trial_feature_name: "SkipAd",
       status: "experimental",
     },
     {
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
index d729607..3d94fa6f 100644
--- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
+++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -13,6 +13,8 @@
 # Tests that fail in legacy but pass in NG
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 virtual/idna-2008/external/wpt/url/a-element-xhtml.xhtml?exclude=(file|javascript|mailto) [ Failure Crash ]
+crbug.com/626703 external/wpt/css/css-text/bidi/bidi-tab-001.html [ Failure ]
 crbug.com/626703 virtual/plz-dedicated-worker/external/wpt/resource-timing/response-status-code.html [ Timeout ]
 crbug.com/626703 virtual/force-renderer-accessibility/external/wpt/accessibility/crashtests/bdo-table-cell.html [ Crash ]
 crbug.com/626703 external/wpt/url/a-element.html?include=mailto [ Crash Failure ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 10c5f394..cf305b43 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2982,14 +2982,20 @@
 crbug.com/626703 [ Win ] virtual/partitioned-cookies/http/tests/inspector-protocol/network/disabled-cache-navigation.js [ Failure ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 [ Linux ] external/wpt/resource-timing/response-status-code.html [ Skip Timeout ]
+crbug.com/626703 [ Win ] external/wpt/resource-timing/response-status-code.html [ Skip Timeout ]
+crbug.com/626703 [ Mac12 ] external/wpt/url/a-element.html?exclude=(file|javascript|mailto) [ Crash Failure ]
+crbug.com/626703 virtual/plz-dedicated-worker/external/wpt/resource-timing/response-status-code.html [ Skip Timeout ]
+crbug.com/626703 external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-001.html [ Failure ]
+crbug.com/626703 [ Win ] external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-002.html [ Failure ]
+crbug.com/626703 external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-003.html [ Failure ]
+crbug.com/626703 [ Mac11 ] external/wpt/resource-timing/response-status-code.html [ Skip Timeout ]
+crbug.com/626703 [ Mac12 ] virtual/compute-pressure/external/wpt/compute-pressure/compute_pressure_disconnect_immediately.tentative.https.window.html [ Crash ]
 crbug.com/626703 external/wpt/css/css-text/bidi/bidi-lines-002.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/line-breaking/line-breaking-023.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/text-align/text-align-match-parent-05.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/line-breaking/line-breaking-022.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/word-break/word-break-break-all-ethiopic.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/resource-timing/response-status-code.html [ Timeout ]
-crbug.com/626703 [ Win ] external/wpt/resource-timing/response-status-code.html [ Timeout ]
-crbug.com/626703 virtual/plz-dedicated-worker/external/wpt/resource-timing/response-status-code.html [ Timeout ]
 crbug.com/626703 external/wpt/css/css-text/hyphens/i18n/hyphens-i18n-auto-001.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/hyphens/i18n/hyphens-i18n-auto-002.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/hyphens/i18n/hyphens-i18n-auto-003.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
index 673966c6..ba6a24c 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -1129,6 +1129,13 @@
          {}
         ]
        ],
+       "dirty-rowgroup-crash.html": [
+        "2a66cd452a7a86283d28a287a1e2005f40bfc1f7",
+        [
+         null,
+         {}
+        ]
+       ],
        "flex-in-columns-000-crash.html": [
         "e7b789345c807362888a651952486b7e8fcc8ba5",
         [
@@ -1318,14 +1325,7 @@
          {}
         ]
        ]
-      },
-      "dirty-rowgroup-crash.html": [
-       "2a66cd452a7a86283d28a287a1e2005f40bfc1f7",
-       [
-        null,
-        {}
-       ]
-      ]
+      }
      },
      "content-visibility": {
       "content-visibility-continuations-crash.html": [
@@ -171302,7 +171302,7 @@
     "css-text": {
      "bidi": {
       "bidi-lines-001.html": [
-       "c49d5729baa94097cfa0fc3c684a9d881dfd4c2b",
+       "adfe389d2ae5ee3e6571b31096ef4cd5decc88a6",
        [
         null,
         [
@@ -171315,7 +171315,7 @@
        ]
       ],
       "bidi-lines-002.html": [
-       "5a90387a1c498ff53d626f116705f270fb83b099",
+       "edf794678541880b6c5da842c051d9fe7911b016",
        [
         null,
         [
@@ -171326,6 +171326,19 @@
         ],
         {}
        ]
+      ],
+      "bidi-tab-001.html": [
+       "5001882272116957a996aa1cb8a9810c224945c0",
+       [
+        null,
+        [
+         [
+          "/css/css-text/bidi/reference/bidi-tab-001-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
       ]
      },
      "boundary-shaping": {
@@ -174514,6 +174527,58 @@
         {}
        ]
       ],
+      "letter-spacing-ligatures-001.html": [
+       "735d9db00d5bf21dd47184bf9cd7d4da73a4fdb0",
+       [
+        null,
+        [
+         [
+          "/css/css-text/letter-spacing/reference/letter-spacing-ligatures-001-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "letter-spacing-ligatures-002.html": [
+       "b7a2ac8461964bc5433849d59e931dffb22d5da2",
+       [
+        null,
+        [
+         [
+          "/css/css-text/letter-spacing/reference/letter-spacing-ligatures-002-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "letter-spacing-ligatures-003.html": [
+       "20214f8fdd8e4321a317df646f5801b794ad6562",
+       [
+        null,
+        [
+         [
+          "/css/css-text/letter-spacing/reference/letter-spacing-ligatures-003-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "letter-spacing-ligatures-004.html": [
+       "0f17f05454a4ce2b4231abb8732f271f7053b156",
+       [
+        null,
+        [
+         [
+          "/css/css-text/letter-spacing/reference/letter-spacing-ligatures-004-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
       "letter-spacing-nesting-001.html": [
        "a7149e30c1d2b73ae1739f17bd4c2ac2e49bd014",
        [
@@ -260871,11 +260936,11 @@
   "support": {
    ".cache": {
     "gitignore2.json": [
-     "5311421387f19d50ff6ddc37e581ea8d1aa2cdc5",
+     "451ee19c84a0ebf9af974eb3566e49380a1833ee",
      []
     ],
     "mtime.json": [
-     "7f5e8bcc2fce951fa47977d9ca1a850598e315a2",
+     "7463e73554cdc3e29156573eed1fde080b92c257",
      []
     ]
    },
@@ -261097,10 +261162,6 @@
       "19732b3c16a8f3a47c2cae40cc2e2f8b74b74d8b",
       []
      ],
-     "url-charset.window.js.ini": [
-      "3b6728bf6a26cf7a55ccfd65d73a54650eb36e83",
-      []
-     ],
      "url-lifetime.html.ini": [
       "6f3b4e89f9951aceac7138fbf7d985fb09071382",
       []
@@ -261152,12 +261213,16 @@
      "21e89fe0a7caf86946c6fe5d345b6fb4b68defa9",
      []
     ],
+    "idbfactory_open10.htm.ini": [
+     "e5a5de5a30968548e86bea33df974ee0301c443e",
+     []
+    ],
     "idbindex-rename-abort.html.ini": [
      "35b36a10a7b2aa1324f3a9699c44e1108f1b3ed1",
      []
     ],
     "idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini": [
-     "8aa6e3eb2b931d2f05a8d929bc9bf71bbe2a33d5",
+     "eb829a9f70a4c46ace419485ebc81a0466a24cc8",
      []
     ],
     "resources": {
@@ -261215,7 +261280,7 @@
      []
     ],
     "structured-clone.any.js.ini": [
-     "16e13da35b261c5015a0f5f6df07ff0c71d049ec",
+     "48c8ee6d1f15b592aa7f6476110a9b92df895df2",
      []
     ],
     "transaction-abort-generator-revert.html.ini": [
@@ -262111,7 +262176,7 @@
      []
     ],
     "playback-rate.https.html.ini": [
-     "cb4ee3514f792720f3701d871684f7db670d61ab",
+     "68cf1f663cdae3c54ba2920863e837c79bd0d6bd",
      []
     ],
     "references": {
@@ -263025,7 +263090,7 @@
      []
     ],
     "fetch.https.window.js.ini": [
-     "80f779707f3d355d4fee18b6d33c493aefde7a83",
+     "14753b391537561d5f175d0401ba25ced9e9f4eb",
      []
     ],
     "get-ids.https.window.js.ini": [
@@ -266339,10 +266404,6 @@
       "3d47c07320d23e9f61a5faf20eee5119d20d0b8a",
       []
      ],
-     "history.sub.html.ini": [
-      "5d8b1077eae12aa530e4176d66acb5f7c5db4d6d",
-      []
-     ],
      "iframe-all-local-schemes.sub.html.ini": [
       "759ae54e5d7bdae75a5974acef0ff19a3d11f4df",
       []
@@ -266638,7 +266699,7 @@
       []
      ],
      "prefetch-header-allowed.html.ini": [
-      "1aa1e894994ce74a612daa45fa27aaf85c8efcdf",
+      "7aa114e6703cad73d1932858ba8273734fb7b6f5",
       []
      ],
      "prefetch-header-blocked-by-default.html.headers": [
@@ -267583,7 +267644,7 @@
      []
     ],
     "cookieStore_set_arguments.https.any.js.ini": [
-     "a1ab72a598b5d4f7d3f104d2fa2ab4d3264a86eb",
+     "a12a87964d6613709df2f0edbf8d7c8990dcda98",
      []
     ],
     "cookieStore_subscribe_arguments.https.any.js.ini": [
@@ -267876,7 +267937,7 @@
     },
     "samesite": {
      "form-post-blank-reload.https.html.ini": [
-      "25c3e4acef5bf932cb514f79d326a9118b69c153",
+      "cff3fc495bac3351066bc2c1c82128c679a3fab6",
       []
      ],
      "form-post-blank.https.html.ini": [
@@ -268033,7 +268094,7 @@
      []
     ],
     "fedcm-cross-origin-policy.https.html.ini": [
-     "faada5defaf8546aae5b96b73de0543169f45513",
+     "4a4603d0e066bc23ef99aba85535aed51ef685e5",
      []
     ],
     "fedcm-cross-origin-policy.https.html.sub.headers": [
@@ -276854,7 +276915,7 @@
       []
      ],
      "Element-getAnimations-dynamic-changes.tentative.html.ini": [
-      "42b61d6f41cfdf580f6218af564a8fd3b594a116",
+      "cd79bce0007ca0a053223c57c0ae0e86b094c20e",
       []
      ],
      "KeyframeEffect-getKeyframes.tentative-expected.txt": [
@@ -281715,6 +281776,10 @@
       "f596b559b0e26b9c03d47b7dcab966a4d091308b",
       []
      ],
+     "all-prop-revert-layer-noop.html.ini": [
+      "30ed959e44278f5c6b6ce9575f7dbe4d804fb9d1",
+      []
+     ],
      "all-prop-revert-visited-ref.html": [
       "0ef326c2722a4f65f6657d7740a990c079b08289",
       []
@@ -285095,6 +285160,10 @@
       "a3998524f917ff83c22115bb5b53e8a0c42e7140",
       []
      ],
+     "display-contents-dynamic-fieldset-legend-001.html.ini": [
+      "3a01cbdb6dda3e64d192107fb160d6c425a01f16",
+      []
+     ],
      "display-contents-dynamic-generated-content-fieldset-001-ref.html": [
       "651bc19b83e90ee7d9801d915ad481cde0aed522",
       []
@@ -287395,6 +287464,10 @@
       "9f670e43ac9c87b32b84251c4358aae10815e7cd",
       []
      ],
+     "flexbox_stf-table-row.html.ini": [
+      "00fe9ea92ae3f0ede50e87c2bbc7b59e8d77037b",
+      []
+     ],
      "flexbox_stf-table-singleline-ref.html": [
       "af3616a5c238f5047ea4ef191f128a008e427e7b",
       []
@@ -287584,7 +287657,7 @@
       []
      ],
      "image-as-flexitem-size-003v.html.ini": [
-      "92f982552dcf9916ef4324571b9128ca2039459b",
+      "8b88ef426223c96dab4f90eddff8d6dc7e7d1b5d",
       []
      ],
      "image-as-flexitem-size-004.html.ini": [
@@ -287616,7 +287689,7 @@
       []
      ],
      "image-as-flexitem-size-007v.html.ini": [
-      "a76df177f3188b6f7b243e879b0c8997905d9cf0",
+      "29ec443eb46590639eacd77cf6f942b54e16ac37",
       []
      ],
      "interactive": {
@@ -300881,7 +300954,7 @@
        []
       ],
       "Initial-letter-breaking-vlr.html.ini": [
-       "0a5f574510cb5f345a90739935b5e98b45045d91",
+       "eb1934959aac2f6cb97b9e30c1779095f18306f6",
        []
       ],
       "Initial-letter-breaking-vrl-ref.html": [
@@ -300889,7 +300962,7 @@
        []
       ],
       "Initial-letter-breaking-vrl.html.ini": [
-       "e5040afd3078b86080090466669e3b0db6411fad",
+       "5e2b2a74cc4d9e4f8705bcd7b03560faf6b02136",
        []
       ],
       "Initial-letter-breaking.html.ini": [
@@ -300953,7 +301026,7 @@
        []
       ],
       "initial-letter-block-position-margins-vrl.html.ini": [
-       "b5f8d7be7b0e9ef6a3f09f4b41301caf7ae03897",
+       "a6abb661c293cb843d3f6bda68cd043382919112",
        []
       ],
       "initial-letter-block-position-margins.html.ini": [
@@ -300985,7 +301058,7 @@
        []
       ],
       "initial-letter-block-position-raise-under-ruby-tall.html.ini": [
-       "60f3521d23121d823dd9aa9651134b35bc1ba7ef",
+       "9de6f5239f65c9b9304e7e3cde450b6955382295",
        []
       ],
       "initial-letter-block-position-raise-under-ruby.html.ini": [
@@ -301013,7 +301086,7 @@
        []
       ],
       "initial-letter-drop-initial-vlr.html.ini": [
-       "984123ce1ba95aaa082597019805d29f51c77e3b",
+       "1e3e90322b20750c45315a4553d727d330e621e8",
        []
       ],
       "initial-letter-drop-initial-vrl-ref.html": [
@@ -301053,7 +301126,7 @@
        []
       ],
       "initial-letter-float-001-vrl.html.ini": [
-       "ff51dd5cdcff0bccc5d40823c59f455f9227ecb4",
+       "a18c5464f5026e45a21f831363c83c8eca388b34",
        []
       ],
       "initial-letter-float-001.html.ini": [
@@ -301101,7 +301174,7 @@
        []
       ],
       "initial-letter-indentation-rtl.html.ini": [
-       "9cd2cdc3b127278f137aa55c1f97d78f9a2b21e8",
+       "495a53a6ef2d7a4f80602738e4b7058d62834041",
        []
       ],
       "initial-letter-indentation.html.ini": [
@@ -301125,7 +301198,7 @@
        []
       ],
       "initial-letter-raise-initial-rtl.html.ini": [
-       "518607759b544245fcf09960370b14928f1905dc",
+       "d4d53907e2d301f6ad68a0fe340c7140c809eadb",
        []
       ],
       "initial-letter-raise-initial-vlr-ref.html": [
@@ -301133,7 +301206,7 @@
        []
       ],
       "initial-letter-raise-initial-vlr.html.ini": [
-       "5a7a7c3f9535f1ae8fd2885f325d43aa8507513e",
+       "add1cabcda133899a9fdf29e618069d93e6572d8",
        []
       ],
       "initial-letter-raise-initial-vrl-ref.html": [
@@ -301145,7 +301218,7 @@
        []
       ],
       "initial-letter-raise-initial.html.ini": [
-       "e37e026a1f13a8aa9ae6d202ea3592aa01932f60",
+       "73516018f2e071792ef7eefb28d0fecd73b34972",
        []
       ],
       "initial-letter-raised-sunken-caps-raise-ref.html": [
@@ -301161,7 +301234,7 @@
        []
       ],
       "initial-letter-raised-sunken-caps-sunken.html.ini": [
-       "b0631f923a6cf89fe35ed7628a5a15b4d75443bf",
+       "0c64a2fddcfde3da4a10a9ed49a4be090dade4ea",
        []
       ],
       "initial-letter-short-para-initial-letter-clears-ref.html": [
@@ -301177,7 +301250,7 @@
        []
       ],
       "initial-letter-short-para-initial-letter-wraps.html.ini": [
-       "322c6d7af1b0763dff3d28573395ad1007c14fee",
+       "f6b2dff151eef1ae4b8f6dcbd82438d80aed3abf",
        []
       ],
       "initial-letter-sunk-initial-ref.html": [
@@ -301221,7 +301294,7 @@
        []
       ],
       "initial-letter-with-first-line.html.ini": [
-       "7f69acbb5b8b735f2cc960f4832090c3f085738a",
+       "56e94a8670efbccb3863be467419c218b0835400",
        []
       ],
       "initial-letter-with-tab-ref.html": [
@@ -301237,7 +301310,7 @@
        []
       ],
       "initial-letter-with-tab.html.ini": [
-       "50911265f400c0642670afd19b2c58a309ac2678",
+       "f5d901abf3445f2afae935465204fbd3edb613d1",
        []
       ]
      },
@@ -301382,10 +301455,6 @@
        "191125f6aaa687c62c4b11af83068590af6dd02e",
        []
       ],
-      "fixed-inline-size-fixed.https.html.ini": [
-       "f2a827435f5a9c1755f9c6b76be2376515d025cd",
-       []
-      ],
       "fixed-inline-size-percentage.https.html.ini": [
        "e5e4885c634bdd5b61f22dfabea6e4b2adb0b81b",
        []
@@ -301434,16 +301503,16 @@
       }
      },
      "fallback-intrinsic-sizes": {
-      "constructor-error.https.html.ini": [
-       "ec85dd01b511a3edf5a7c7531259a15aabb2a158",
-       []
-      ],
       "fallback-ref.html": [
        "6808e14eb683fde8c30a2c89318c6cccba12ca1a",
        []
       ]
      },
      "fallback-layout": {
+      "constructor-error.https.html.ini": [
+       "ec85dd01b511a3edf5a7c7531259a15aabb2a158",
+       []
+      ],
       "fallback-layout-fallback-ref.html": [
        "63bb91e90ca00f02d108f562ed857058df2443ca",
        []
@@ -303819,6 +303888,10 @@
       "78f81bd358fc69d813a81cd385f5dd52f34cd545",
       []
      ],
+     "getclientrects-001.html.ini": [
+      "38d7beae04ef678926c3455f4d2ad5ec1c58177c",
+      []
+     ],
      "hit-test-transformed-child.html.ini": [
       "5e4ac36dbba9dd7ff4b0e5db9a4b2b930500c17f",
       []
@@ -306282,7 +306355,7 @@
       []
      ],
      "parse-input-arguments-018.https.html.ini": [
-      "9905f9f8ad5e64a36db44308b83d79cce7f0dad7",
+      "266c24e80467e252e8df7123252f8e31bf078e69",
       []
      ],
      "parse-input-arguments-019.https.html.ini": [
@@ -306359,6 +306432,10 @@
       "67f575128376894ec965c5f0c2bcc17c8a426ebf",
       []
      ],
+     "valid-image-after-load.https.html.ini": [
+      "3ed7ad963a43aa5d37147ffa6ce5aedf0470cfdc",
+      []
+     ],
      "valid-image-before-load-ref.html": [
       "67f575128376894ec965c5f0c2bcc17c8a426ebf",
       []
@@ -310930,7 +311007,7 @@
       []
      ],
      "clone-nowrap-intrinsic-size-bidi.html.ini": [
-      "7405f0d7e153d51af574238525c4b98b816494fa",
+      "7eb5d67d5dc34abc6c0bd22758ea3388fa973542",
       []
      ],
      "clone-nowrap-intrinsic-size-ref.html": [
@@ -312616,6 +312693,10 @@
        "6a5b59fbeabb8475ad7befbc62206cdad0103a20",
        []
       ],
+      "bidi-tab-001.html.ini": [
+       "fb5c636332f3f4d38e44ec32b8e5339bfac4b512",
+       []
+      ],
       "reference": {
        "bidi-lines-001-ref.html": [
         "ab13fef116c4eba70a09e01558425bb508173d90",
@@ -312624,6 +312705,10 @@
        "bidi-lines-002-ref.html": [
         "af162f0149f70594a14e6ba556bd655a9fda0dd8",
         []
+       ],
+       "bidi-tab-001-ref.html": [
+        "a65b8cc686fa41347e12ffb5c88a4311bcee1d28",
+        []
        ]
       }
      },
@@ -313080,6 +313165,10 @@
        "b3d3fc34d5c2622d011b6c3286c34eb930a33f75",
        []
       ],
+      "css3-text-line-break-baspglwj-120.html.ini": [
+       "0c25e6a97d957478232a4972956f971d06f002bd",
+       []
+      ],
       "css3-text-line-break-opclns-201.html.ini": [
        "73bbd0227b3c437af47e23682f3d835a50dfcb81",
        []
@@ -314023,6 +314112,22 @@
         "eb474ab8d234d0836c3466e29bfe9b313e10d302",
         []
        ],
+       "letter-spacing-ligatures-001-ref.html": [
+        "e4caf6587a584048bcfcb3a479c8f8413ab72e3d",
+        []
+       ],
+       "letter-spacing-ligatures-002-ref.html": [
+        "2cbe5b0a0c4e4e9b7cfc71519df506514160034c",
+        []
+       ],
+       "letter-spacing-ligatures-003-ref.html": [
+        "2d1e7bd0385d297ee60168cb1dd9417380738959",
+        []
+       ],
+       "letter-spacing-ligatures-004-ref.html": [
+        "bb3881fc5ece4c31f02a3c52996ee26d44c8c933",
+        []
+       ],
        "letter-spacing-nesting-001-ref.html": [
         "3d003f3621b0cfe1aa46220be7d9a4df489377d4",
         []
@@ -330344,11 +330449,19 @@
       ]
      },
      "scroll-behavior-element.html.ini": [
-      "26477ab2dead0782d4e1646b7e8648c409ed6faa",
+      "5365651e498e8d7d84eb3b6086c03aaf16e40edc",
       []
      ],
      "scroll-behavior-main-frame-root.html.ini": [
-      "d5fe958db40f7f781b73cd31f82757a981f171da",
+      "536ff3e1d1ab2caa91a34cc88389a34fc4984883",
+      []
+     ],
+     "scroll-behavior-main-frame-window.html.ini": [
+      "0912a03633a3304d40c284435f02469bccf2c122",
+      []
+     ],
+     "scroll-behavior-scrollintoview-nested.html.ini": [
+      "2bfa1166f1dae5798d20be4cde49808b376cfd6d",
       []
      ],
      "scroll-behavior-smooth-navigation.html.ini": [
@@ -332067,7 +332180,7 @@
        []
       ],
       "has-complexity.html.ini": [
-       "abe15aeacde200f0388f4f5429cb6dcc5498773e",
+       "e68b8834c35b14faf8441aeae6645f26015c9331",
        []
       ],
       "logical-combinations-in-has-expected.txt": [
@@ -332820,7 +332933,7 @@
       []
      ],
      "ElementInternals-target-element-is-held-strongly.html.ini": [
-      "64240c7da3675b2e19a60595557e1f8dc3938b1b",
+      "5f35e61552b7d4e19e8d9bceb6ee33f6dc9436a9",
       []
      ],
      "ElementInternals-validation-expected.txt": [
@@ -332941,10 +333054,6 @@
     "throw-on-dynamic-markup-insertion-counter-reactions.html.ini": [
      "4bf0e4f818740ce29e4c3dee64e3dc850ecd37af",
      []
-    ],
-    "upgrading.html.ini": [
-     "65ce3fa94ee48fe476c6ea660b85b6e4d6efd0d1",
-     []
     ]
    },
    "custom-state-pseudo-class": {
@@ -333854,6 +333963,10 @@
        "39b0d28d65b23de7d6b29c89fb84a46dc8f57d6c",
        []
       ],
+      "scrollend-event-fired-after-snap.html.ini": [
+       "dd2b3639d504d03b2957d30924900373d18e6e89",
+       []
+      ],
       "scrollend-event-fired-to-element-with-overscroll-behavior.html.ini": [
        "ece7f9958a369ec93e6ec813d58e6b35f9c7a3f0",
        []
@@ -334203,6 +334316,10 @@
       "d6cc3725f030b41ad25482a978bc930b4b414960",
       []
      ],
+     "DocumentType-literal-xhtml.xhtml.ini": [
+      "c48c8418254510501b14634bb77ff9acca697dd5",
+      []
+     ],
      "Element-childElement-null-svg.svg.ini": [
       "7ba8f4d55740ade7bec9c9333819a773b105f9cd",
       []
@@ -334440,7 +334557,7 @@
       []
      ],
      "Range-mutations-dataChange.html.ini": [
-      "7158a50a34d3428f41cd3a6672018936c2c3c088",
+      "c1f1d46ce54df403fe78ec637233281dbb7e2fef",
       []
      ],
      "Range-mutations-deleteData.html.ini": [
@@ -334610,6 +334727,10 @@
      "001fff839af31819fd45452cdba7b1fe98594b89",
      []
     ],
+    "insert-adjacent.html.ini": [
+     "c086710038e17d7f197fd18b9463a15319e7113b",
+     []
+    ],
     "insert_adjacent_html.js": [
      "2980037433d02f8a53b0b83ffdbe94f778adb03c",
      []
@@ -335822,7 +335943,7 @@
       []
      ],
      "delete.html.ini": [
-      "920e0307de8e5a23e470c72e116824b697cc4ac2",
+      "5ad7606524856da5c3af298695fad3a82d257277",
       []
      ],
      "delete_1-1000-expected.txt": [
@@ -335922,7 +336043,7 @@
       []
      ],
      "formatblock.html.ini": [
-      "26b7118836014b111c94c8c7b56435832e587510",
+      "8247fe6b6b711d75c510c855a63b8d0fd0023edc",
       []
      ],
      "formatblock_1-1000-expected.txt": [
@@ -336106,7 +336227,7 @@
       []
      ],
      "insertunorderedlist.html.ini": [
-      "086c537e5a97cb985f897c62c159ca72bebab445",
+      "e53adccaea7711dd2f2faf4be0e91746e23a7e40",
       []
      ],
      "italic.html.ini": [
@@ -336321,15 +336442,15 @@
      []
     ],
     "buffer-before-onload.html.ini": [
-     "ce81da2a810447a825554af596e36f9227b365e0",
+     "8a0128f170825d019960d561cf2e50936da4d380",
      []
     ],
     "image-carousel.html.ini": [
-     "99e6e8f4a37acb85109cd8601989a8e71c371e38",
+     "3b89847db19cc319b93c16a11a963c206c26b5eb",
      []
     ],
     "image-src-change.html.ini": [
-     "1def2aab988ef9e3bb5fe57cd3fbe47d47a3ff21",
+     "8a259054e48a446cf976cdea64e773a01bb53338",
      []
     ],
     "images-repeated-resource.html.ini": [
@@ -336487,7 +336608,7 @@
        []
       ],
       "eucjp-encode-form-cseucpkdfmtjapanese.html.ini": [
-       "b35058753af790b648fc3df555c23cf70a804ad1",
+       "e839ecd24cb8c98457093f86396478ab941f9eb7",
        []
       ],
       "eucjp-encode-form-errors-han.html.headers": [
@@ -336499,7 +336620,7 @@
        []
       ],
       "eucjp-encode-form-errors-hangul.html.ini": [
-       "b343984de4a47dca082e073ab7a35b5d784b7cb1",
+       "e4bd21a638dd88a6c0de03d4d25c2d73113aec7f",
        []
       ],
       "eucjp-encode-form-errors-misc.html.headers": [
@@ -336519,7 +336640,7 @@
        []
       ],
       "eucjp-encode-href-errors-han.html.ini": [
-       "3da670e12a28c18f4667ce2dacafe0d34310f888",
+       "41f5d57242cdc331e0af5704d4aa6454aa9f8cdb",
        []
       ],
       "eucjp-encode-href-errors-hangul.html.headers": [
@@ -336596,6 +336717,10 @@
        "547bbcb4505b462e578d225bea5243180ffbb374",
        []
       ],
+      "iso2022jp-encode-form-csiso2022jp.html.ini": [
+       "3053fda7fe45ba5265534827fd6984de29b507af",
+       []
+      ],
       "iso2022jp-encode-form-errors-han.html.headers": [
        "51324ea2d35c16b742244c242aaa8e13b93bbef4",
        []
@@ -336826,8 +336951,12 @@
     },
     "legacy-mb-korean": {
      "euc-kr": {
+      "euckr-decode-iso-ir-149.html.ini": [
+       "56a36e4682528cb76fe46bf7749a29edbc02dec6",
+       []
+      ],
       "euckr-decode-ksc5601.html.ini": [
-       "fdc8f2feee986252f0463631a48feaae05b12d7f",
+       "3b9ccfdf5566c1ead3b759e9a770568e9a1f5fe2",
        []
       ],
       "euckr-decoder.js": [
@@ -336854,6 +336983,10 @@
        "3a990e85bfb25e1c32ad5b1742c3c9a9f28dbaea",
        []
       ],
+      "euckr-encode-form-errors-misc.html.ini": [
+       "9fc5f2ad00f24058180d533bc272f9d1be150f88",
+       []
+      ],
       "euckr-encode-form-iso-ir-149.html.headers": [
        "524d1bdcbeeeb654bb1f4e0f217f80def93a0244",
        []
@@ -337462,10 +337595,6 @@
      "b2249939b4269f855d5fb8de18b8d2a867e27afa",
      []
     ],
-    "lt-windows-1257-late.tentative.html.ini": [
-     "2b4bf72adca4969f1cc3ed506b766a62c63880b5",
-     []
-    ],
     "pl-windows-1250-late.tentative.html.ini": [
      "7aa703754640ce089ccb37fd6c700e55ce752847",
      []
@@ -338490,6 +338619,10 @@
      "7f44d1b6e2ffff87a3e265b9ba62518534468d80",
      []
     ],
+    "first-input-interactionid-tap.html.ini": [
+     "7a4c1c4007251c885d1618f6cc9e915771436e08",
+     []
+    ],
     "idlharness.any-expected.txt": [
      "4fe4540271c298c38658dbe0e1b24e5fede9363f",
      []
@@ -338510,6 +338643,10 @@
      "a4f87f4c76c614417d98929d55dec8ff0a4121ca",
      []
     ],
+    "interactionid-tap.html.ini": [
+     "d627cdababc6a9dcc4d0bc5747482f2c888f415e",
+     []
+    ],
     "resources": {
      "crossiframe-childframe.html": [
       "6a8bc6b64240636dbc576aaa15b9c86b799dae8e",
@@ -339049,7 +339186,7 @@
        []
       ],
       "general.any.js.ini": [
-       "958224171f721b81b2e9263177ffaee794a20306",
+       "e7289254aa3394bb62b9d37bd235072c17c8b948",
        []
       ],
       "general.any.serviceworker-expected.txt": [
@@ -339183,7 +339320,7 @@
        []
       ],
       "cors-cookies.any.js.ini": [
-       "2ccb092c8c43bf1188c06a108312cec9e907fbd3",
+       "25463cf3ec256911e62621e37ad60edeada1f2ea",
        []
       ],
       "cors-preflight-redirect.any-expected.txt": [
@@ -339966,7 +340103,7 @@
       ]
      },
      "response.window.js.ini": [
-      "d0b8f95f1cbbd3e427848dc3531f6f8e89ac70c3",
+      "836f4189b526f28a3f334a50808f2680358a1ff0",
       []
      ],
      "script.window-expected.txt": [
@@ -340613,7 +340750,7 @@
        []
       ],
       "element-input-image.https.sub.html.ini": [
-       "8a66759e6de17a0ce486ad1978393980729de31d",
+       "09e396bf461eb56d1db76965d01f98bf09a9dd1a",
        []
       ],
       "element-link-icon.https.sub.html.ini": [
@@ -340633,7 +340770,7 @@
        []
       ],
       "element-meta-refresh.https.optional.sub.html.ini": [
-       "fa73b79686a53c2e71ec74f01fef043047fdcdb6",
+       "6594b0afb0fc79fe0486642e79aff15a044f1cb8",
        []
       ],
       "element-meta-refresh.optional.sub.html.ini": [
@@ -340689,7 +340826,7 @@
        []
       ],
       "window-history.https.sub.html.ini": [
-       "157b4da56d17849081074725fb4a67d8add76208",
+       "8c7e93ee048ee389cdc4c4be342f2fd329627246",
        []
       ],
       "worker-dedicated-constructor.sub.html.ini": [
@@ -341136,7 +341273,7 @@
       []
      ],
      "iframe.tentative.https.window.js.ini": [
-      "cea17ee9043c8d51880b8e4ba93c028938a5ae8a",
+      "a84192d976fb33c4cf681cabcb6fddee8eb117ef",
       []
      ],
      "iframe.tentative.window-expected.txt": [
@@ -341246,7 +341383,11 @@
       ]
      },
      "service-worker-background-fetch.https.window.js.ini": [
-      "099c12ff80b1b1124cf3aa64e7e6f80f3f1527b8",
+      "184b61d6d36e58485324b7a96780c2e31aadc2b1",
+      []
+     ],
+     "service-worker-fetch.https.window.js.ini": [
+      "eaa7acf656311a660b824eedda6b958feb5d0e34",
       []
      ],
      "shared-worker.window.js.ini": [
@@ -341579,7 +341720,7 @@
      []
     ],
     "focus-already-focused-iframe-same-site.html.ini": [
-     "4f0bb0ce512506e160d3de8c8bdf6bbc231d11df",
+     "cd78228dd3869ed7ac233ad82d076832dd8df95e",
      []
     ],
     "focus-event-after-focusing-iframes-expected.txt": [
@@ -341619,7 +341760,7 @@
      []
     ],
     "focus-restoration-in-same-site-iframes-window.html.ini": [
-     "c5a3dad8bae38684fc6e3917bc9827c85178ed3a",
+     "f19949138fa92980627ef2e18bcfbcbf37327b0e",
      []
     ],
     "hasfocus-different-site-expected.txt": [
@@ -341647,7 +341788,7 @@
      []
     ],
     "iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini": [
-     "c06c0e7b0764126a030d499192ff674c867e5a25",
+     "b4691aee40352f05feec7c78a0fde57554471f37",
      []
     ],
     "iframe-contentwindow-focus-with-same-as-top-intermediate-frame-expected.txt": [
@@ -341663,7 +341804,7 @@
      []
     ],
     "iframe-focus-with-different-site-intermediate-frame.html.ini": [
-     "a4e9ffefd3d4c43282dea6fd72191db23d6006cb",
+     "501950368012f28203aead245411c7e608f36c68",
      []
     ],
     "iframe-focus-with-same-as-top-intermediate-frame-expected.txt": [
@@ -341674,6 +341815,10 @@
      "e440e9e575b966161c07c08962db749da7dd18f0",
      []
     ],
+    "iframe-focuses-parent-different-site.html.ini": [
+     "78cd2ffec5c7616ee73b280db8fb14f6b0e9a0df",
+     []
+    ],
     "iframe-focuses-parent-same-site.html.ini": [
      "d1216e1d8a23a7492fa8a842c6618e0bea2b22cb",
      []
@@ -343106,10 +343251,6 @@
      "5f74d8ebc6ef94e16b7e2dbe24ee4d2345293d4d",
      []
     ],
-    "FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini": [
-     "e8803eb9b46ec613081dd0c56dfe95e170b302a5",
-     []
-    ],
     "META.yml": [
      "23d7765cdfa39689ef72ae6a0beb15b8b4292ecd",
      []
@@ -343940,6 +344081,10 @@
      "f365b22e8cbe20444fc1fb1c6fd42211afc4e246",
      []
     ],
+    "clamped-time-origin.html.ini": [
+     "9082a0b2944b33844a9d5a28ccfbb3a43f1f8f1e",
+     []
+    ],
     "cross-origin-isolated-timing-attack.https.html.headers": [
      "5f8621ef83660c66f0d037ea28fafefb558140f1",
      []
@@ -344010,7 +344155,7 @@
       []
      ],
      "embedding.tentative.https.window.js.ini": [
-      "5ff21421597c64e75a54a387ec6e9f6343ed2201",
+      "7146e6d1b229148367888846ca2f71738c0298b8",
       []
      ],
      "fenced-frame-bypass.tentative.https.window-expected.txt": [
@@ -344279,7 +344424,7 @@
          []
         ],
         "before-load-hash.html.ini": [
-         "02af6ffdbdf048639d759ed7c5498135b813e9b3",
+         "66dd895b772600041eb0423eb4611f136e14e3e2",
          []
         ]
        },
@@ -344488,6 +344633,10 @@
          "6e80917c1d4e171a9a1eb60a5bcdbfb25a19f303",
          []
         ],
+        "load-pageshow-events-iframe-contentWindow.html.ini": [
+         "c93fe6ba62f64829c91c035c1eb5ed28b5f5d917",
+         []
+        ],
         "resources": {
          "code-injector.html": [
           "631b95f9edb9e44d447c9eec285131b6bbe395b2",
@@ -344892,7 +345041,7 @@
         []
        ],
        "same-document-traversal-cross-document-traversal.html.ini": [
-        "7040e50bccb7d404af8e62d84deb5300db03b428",
+        "24560346d70e378a743aa0f1803f55a93efce279",
         []
        ],
        "same-document-traversal-same-document-traversal-hashchange.html.ini": [
@@ -345337,6 +345486,10 @@
         "78547019f3a43b3a318618a9221dd23283cd78a8",
         []
        ],
+       "history_back_cross_realm_method.html.ini": [
+        "04556407ba4228d1da303d89d1daa73ed220f69b",
+        []
+       ],
        "history_entry.html": [
         "e5929ddbe84389641a083f29057a3ea7b9f5076b",
         []
@@ -345471,6 +345624,10 @@
         "a3f2553fa013f18b7d04772a12dc6c223ac109a2",
         []
        ],
+       "traverse_the_history_5.html.ini": [
+        "c792650671168630365e96d3d2c06baa7d29b981",
+        []
+       ],
        "traverse_the_history_unload_1-1.html": [
         "d3f3f6d5d0bac37d8c446ad07e61062dac4d0aae",
         []
@@ -345562,7 +345719,7 @@
         []
        ],
        "location-protocol-setter-non-broken.html.ini": [
-        "6cf1e4ac0715797ad6f631f8ba5707e21810554f",
+        "1d3cada0bbf05b9a15c6d3cbba94b53695f96e62",
         []
        ],
        "location-prototype-setting-cross-origin-domain.sub-expected.txt": [
@@ -345784,7 +345941,7 @@
         []
        ],
        "cross-origin-objects-function-name.html.ini": [
-        "ab20f7d67ec27b63a5eeba7fc9bd2357fab36d05",
+        "df54342880d0038f649b9a569f018e176e1b65db",
         []
        ],
        "cross-origin-objects-on-new-window.html.ini": [
@@ -345792,7 +345949,7 @@
         []
        ],
        "cross-origin-objects.html.ini": [
-        "87914ec2f98a7dcf94ced1405af9dd758151f9d6",
+        "6502952eab898e3cb6dbc43600dacdb12eb72b5a",
         []
        ],
        "frame-with-then.html": [
@@ -345851,7 +346008,7 @@
          []
         ],
         "parent-yes-child-no-port.sub.https.html.ini": [
-         "5504eb18d1640f0d5f622b3cfa215e1f0848689b",
+         "f5c7844313e14001e89f1cf40759104ab6a9f43d",
          []
         ],
         "parent-yes-child-no-same.sub.https.html.headers": [
@@ -345859,7 +346016,7 @@
          []
         ],
         "parent-yes-child-no-same.sub.https.html.ini": [
-         "c5662b40305800686cf263cc61750628ee4e991c",
+         "2066f0aa9ca91dd53bc2d525ebcf3a6e723370e7",
          []
         ],
         "parent-yes-child-no-subdomain.sub.https.html.headers": [
@@ -345883,7 +346040,7 @@
          []
         ],
         "parent-yes-child-yes-same.sub.https.html.ini": [
-         "21a226635de11b863215c756aee7b0791a7e43bb",
+         "e3a89c0f7ce9961f842110f8818e4e27fd505f8b",
          []
         ],
         "parent-yes-child-yes-subdomain.sub.https.html.headers": [
@@ -345891,13 +346048,13 @@
          []
         ],
         "parent-yes-child-yes-subdomain.sub.https.html.ini": [
-         "181db94194efbdebc05705175af2653f0bfd00d5",
+         "bd62a143286b869ec8411cf4778a1b1020f5a364",
          []
         ]
        },
        "2-iframes": {
         "parent-no-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini": [
-         "bd99113e184f4b958eb2c35963486e4ad1ae05d4",
+         "9be6e053e2e35fc8317599a32e5bc7ec77d05524",
          []
         ],
         "parent-no-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini": [
@@ -345905,15 +346062,15 @@
          []
         ],
         "parent-no-child1-no-subdomain1-child2-yes-subdomain2.sub.https.html.ini": [
-         "d350ba94fa60e0a348a9414131a2078d8079bc99",
+         "ff06302c1d7e9e24e4913d2105fff02c1c570c2b",
          []
         ],
         "parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini": [
-         "8b8493d7d3127bf61316869c8a13a64d1c154d48",
+         "8ecab7498e604ba113edbda5569cfe31ab3fe652",
          []
         ],
         "parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini": [
-         "2ae4867c1c4fc9e6b1049177e5f6c0476956640b",
+         "2a0462ef0b1606a5eff1448b2695394a50f998f0",
          []
         ],
         "parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.headers": [
@@ -345921,7 +346078,7 @@
          []
         ],
         "parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini": [
-         "f67db4221b57b8fb29f62161e71a83608386c076",
+         "1d37b551b8796e43084bd8f689e46e21474382f2",
          []
         ],
         "parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.headers": [
@@ -345929,7 +346086,7 @@
          []
         ],
         "parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini": [
-         "280b292c2b5456e5b3cbcbd3074011922fb62cea",
+         "f01d1fb7cd802655e2eebfb93e6ac0a734a8cbf7",
          []
         ],
         "parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.headers": [
@@ -345937,7 +346094,7 @@
          []
         ],
         "parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini": [
-         "a21f71a8ba412e447a26cf2689af00dcb6719f56",
+         "55c9507947dd54f89a1ba668d8a092793a789cc8",
          []
         ],
         "parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.headers": [
@@ -345945,7 +346102,7 @@
          []
         ],
         "parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini": [
-         "92198b48fca12ee55977af5f8c4e3135d027a40b",
+         "9bcd06566805156e9c14fabd814b7d34a3a803aa",
          []
         ],
         "parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.headers": [
@@ -345953,7 +346110,7 @@
          []
         ],
         "parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini": [
-         "83497785eecbb458d7175b44068eded801e7149d",
+         "86a8d77ff5bc2018ca6899eba2818d57150d63ff",
          []
         ],
         "parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.headers": [
@@ -345961,7 +346118,7 @@
          []
         ],
         "parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini": [
-         "a3efc43445f1e3cccf221af3c9c8d998933718d1",
+         "ec6bf6821cdfdcf35773ce349450cdd1701d350d",
          []
         ],
         "parent-yes-child1-yes-subdomain-child2-no-subdomain.sub.https.html.headers": [
@@ -345977,7 +346134,7 @@
          []
         ],
         "parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini": [
-         "7542bf66fbff1266ab6c5dcffd60abd0180418b2",
+         "3be8b66c60fbd9a158e332ffde611ae30634ba03",
          []
         ],
         "parent-yes-child1-yes-subdomain-child2-yes-subdomain2.sub.https.html.headers": [
@@ -345989,7 +346146,7 @@
          []
         ],
         "parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini": [
-         "cb8c40e9e256893e2f926e7ed55b7338a72568f9",
+         "37913c2f747770ca2352f3050ec2cc3a58bfdb44",
          []
         ]
        },
@@ -346018,7 +346175,7 @@
         []
        ],
        "document-domain.sub.https.html.ini": [
-        "7e0e5a214ec14f6f3ff5e16432c0edf27d879495",
+        "94dbfbd7a577895e0da52560473bfebd8bb1df50",
         []
        ],
        "getter-special-cases": {
@@ -346054,12 +346211,12 @@
          "79a20f30fc0f486014c8b93edef7483605101504",
          []
         ],
-        "removed-iframe.sub.https.html.headers": [
-         "79a20f30fc0f486014c8b93edef7483605101504",
+        "javascript-url-yes.https.html.ini": [
+         "189de0412095c179a135e6aa017e6c204b9e0446",
          []
         ],
-        "removed-iframe.sub.https.html.ini": [
-         "dd33a866e9ddaec5d22f512a0092facd83d3744a",
+        "removed-iframe.sub.https.html.headers": [
+         "79a20f30fc0f486014c8b93edef7483605101504",
          []
         ],
         "resources": {
@@ -346093,7 +346250,7 @@
          []
         ],
         "sandboxed-same-origin-iframe-no.https.html.ini": [
-         "6739f44f945f58f283bd3cc722bbf29c0bec78c7",
+         "ba59a28c25169698f1fae444c753d1baac527fb1",
          []
         ],
         "sandboxed-same-origin-iframe-yes.https.html.headers": [
@@ -346101,7 +346258,7 @@
          []
         ],
         "sandboxed-same-origin-iframe-yes.https.html.ini": [
-         "e6f5815e73121d3e298955c5849616fd2807cf2f",
+         "14cb1e6c42653c1e9878b1b91c0d340f355c96a9",
          []
         ]
        },
@@ -346114,28 +346271,24 @@
         []
        ],
        "iframe-navigation": {
-        "parent-no-1-no-same-2-yes-port.sub.https.html.ini": [
-         "43e1bec1c03d27c5865143a3f0a76fccf9ff6020",
-         []
-        ],
         "parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini": [
-         "9ebe2937def6069ae5061662ee2986369ea06daf",
+         "5d7ca4cb418f5af0e8d072ba7a16be4a54a95900",
          []
         ],
         "parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini": [
-         "5a2bf369185e39e6555b97cf11ca022bf431b003",
+         "ab1164fcfa88f9d62825099010af523f527fb3e2",
          []
         ],
         "parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini": [
-         "965bd25ba25e789bbc3c828214f02536ff2bab09",
+         "d529cf990f32574201a9b4ece42788a3afd7b78a",
          []
         ],
         "parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini": [
-         "cdecdf4cd79271fcae720bd886d75a40142e9bdf",
+         "29817d3ce6772f9d9a9547561e709cbe471d006f",
          []
         ],
         "parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini": [
-         "44d462eb481d8bf89c70f89e4aa283ef2bc14dcf",
+         "5d4c18e3f56359edb9ddd3c4341de78e71182c6c",
          []
         ],
         "parent-yes-1-no-same-2-no-port.sub.https.html.headers": [
@@ -346143,7 +346296,7 @@
          []
         ],
         "parent-yes-1-no-same-2-no-port.sub.https.html.ini": [
-         "1b2843b55972a79e69f0ea1cbdc427395c253e29",
+         "cb86ed171952ddad4f48d8833923242fd7526eb6",
          []
         ],
         "parent-yes-1-no-same-2-no-subdomain.sub.https.html.headers": [
@@ -346151,7 +346304,7 @@
          []
         ],
         "parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini": [
-         "7c6b0a820e6594b9dadf79820114bfa5d8a8e89a",
+         "0efd664000f9215136d24a07435519325314734e",
          []
         ]
        },
@@ -346165,11 +346318,11 @@
        ],
        "popups": {
         "opener-no-openee-yes-port.sub.https.html.ini": [
-         "81caef44d49e6c9883d2cc615f1ed58c3835ecc3",
+         "8d87ab4258525a21053625918b5af66ef2bfd487",
          []
         ],
         "opener-no-openee-yes-subdomain.sub.https.html.ini": [
-         "ae12aa82189f2c112ab584dd0fe05cdcf564bc33",
+         "53f643b2ab400284b04206829d9e9e277fee6d02",
          []
         ],
         "opener-yes-openee-no-port.sub.https.html.headers": [
@@ -346177,7 +346330,7 @@
          []
         ],
         "opener-yes-openee-no-port.sub.https.html.ini": [
-         "8af48a347d2cec4f9a92c050c5b344494f1e6967",
+         "6cfbabff6796ee5a36819a9e2bbbd64e655f33e4",
          []
         ],
         "opener-yes-openee-no-same.sub.https.html.headers": [
@@ -346185,7 +346338,7 @@
          []
         ],
         "opener-yes-openee-no-same.sub.https.html.ini": [
-         "053a0b74c9f0692fea76477f8f8ad74481baa651",
+         "e9d47544e1891065b15f7bc4375950b119c16a34",
          []
         ],
         "opener-yes-openee-no-subdomain.sub.https.html.headers": [
@@ -346193,7 +346346,7 @@
          []
         ],
         "opener-yes-openee-no-subdomain.sub.https.html.ini": [
-         "89d6e4aaa118f3adda63bf68942f77d7c31dc7e3",
+         "83fcc1fe1ce693d1b36c9ca3daef9ab38cb52aa6",
          []
         ],
         "opener-yes-openee-yes-port.sub.https.html.headers": [
@@ -346213,7 +346366,7 @@
          []
         ],
         "opener-yes-openee-yes-subdomain.sub.https.html.ini": [
-         "42f89ad89f2319febbf177f3fcf115b5f678c7af",
+         "d0fc030e67830d5ef48049cf1c3ae79bc14efa8f",
          []
         ]
        },
@@ -346226,7 +346379,7 @@
         []
        ],
        "removing-iframes.sub.https.html.ini": [
-        "cb6578700d10c64dc4bdd5cb6526d5ed28b5b4a4",
+        "d943b31962c0c3aa451b6472158658179ddbfcc3",
         []
        ],
        "resources": {
@@ -346500,6 +346653,10 @@
         []
        ]
       },
+      "noopener-noreferrer-BarProp.window.js.ini": [
+       "8e27e3b6177b42f374a333f285a09cf1323ada9a",
+       []
+      ],
       "open-close": {
        "callback.js": [
         "ae51265a213b228282aee82f30496e31f9d417ef",
@@ -346568,7 +346725,7 @@
         ]
        },
        "open-features-is-popup-condition.html.ini": [
-        "55d79a7ff9b048f5d1b998a4cd96b686464b5a9e",
+        "485b254537ead17d28898721493349e5a93e292a",
         []
        ],
        "open-features-negative-innerwidth-innerheight.html.ini": [
@@ -346631,14 +346788,6 @@
         "97ab60773abb587368339945de01df4af993a54b",
         []
        ],
-       "open-features-non-integer-width.html.ini": [
-        "1e059b010bdfe835d5f64e515f658e60674c8e98",
-        []
-       ],
-       "open-features-tokenization-innerheight-innerwidth.html.ini": [
-        "ccc3a0fcdab0bbdab115f67504c21ed44cde45d4",
-        []
-       ],
        "open-features-tokenization-noopener.html.ini": [
         "efce1ae6e9edcabfa74899c229df8f185f87e1d4",
         []
@@ -346660,11 +346809,11 @@
         []
        ],
        "open-features-tokenization-top-left.html.ini": [
-        "dc5fb3e0c6cc729507fa8c6ce9a177ce7ff3a58b",
+        "e05e8a3bcbab57f52352fb305219cb1af318369a",
         []
        ],
        "open-features-tokenization-width-height.html.ini": [
-        "cf35157225c8fbf0b6222bb51792bfff5a3d67e8",
+        "25200b9fcdb4c04d9579be0768e9efcbb236abbc",
         []
        ],
        "resources": {
@@ -346737,7 +346886,7 @@
        []
       ],
       "window-open-noopener.html.ini": [
-       "959e13b5a93c57f72d37b5ecd5d79d7031e0daf2",
+       "ababd53ba222e379447bc8ef2aa183ff95479ea2",
        []
       ],
       "window-open-windowfeatures-values.html.ini": [
@@ -348865,7 +349014,7 @@
          []
         ],
         "offscreencanvas.resize.html.ini": [
-         "04c2b5077c882649dd32ee79c39b268eaf3c5b39",
+         "84c7205ffd34f86ebc5fb6f8fac81fb77f0bf3f1",
          []
         ],
         "offscreencanvas.transferrable-expected.txt": [
@@ -349397,7 +349546,7 @@
        []
       ],
       "dedicated-worker.https.window.js.ini": [
-       "e304d0e0960858efc7d195958082dceb869c61b5",
+       "b6774be464eb3230ff34a04073d45b37e6081b19",
        []
       ],
       "fetch.https.window.js.ini": [
@@ -349456,7 +349605,7 @@
       []
      ],
      "cross-origin-isolated-permission-worker.https.window.js.ini": [
-      "6e7bbd4c2a84c882cbbda69b8c029d1be6adbaa2",
+      "1cda697821f262d6ecbc160bfecc3bb8adceeec1",
       []
      ],
      "data.https.html.headers": [
@@ -349476,7 +349625,7 @@
       []
      ],
      "dedicated-worker.https.html.ini": [
-      "af2cc24df8874e298804aacc3f13f9c80517fea2",
+      "dd9391b4781ce4c78e976f9ecfeff33007e91255",
       []
      ],
      "javascript.https.html.headers": [
@@ -349586,7 +349735,7 @@
       []
      ],
      "reporting-subresource-corp.https.html.ini": [
-      "519a300a90371db996b5b08f8184c5bc70ff43b4",
+      "87f642fbfcca4f592c2b5a3db09d67eefebb7c22",
       []
      ],
      "reporting-to-document-reporting-endpoint.https.window.js.ini": [
@@ -349861,6 +350010,10 @@
       "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8",
       []
      ],
+     "coep-with-cross-origin.https.html.ini": [
+      "02e5a9832f096d302194011075c29360f3f3b83d",
+      []
+     ],
      "coep-with-same-origin.https.html.headers": [
       "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8",
       []
@@ -349873,6 +350026,10 @@
       "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8",
       []
      ],
+     "coep-with-same-site.https.html.ini": [
+      "7938d8f2b665e7fc8bbf947af158948991ed4210",
+      []
+     ],
      "coop-coep-sandbox.https.html.headers": [
       "4fff9d9fba4c81f953826ffea010a75be626b95d",
       []
@@ -349922,7 +350079,7 @@
       []
      ],
      "header-parsing-failures.https.html.ini": [
-      "46f1485297cf94ca650a935263cf0962d7b421e2",
+      "0395d5862b3e044ca8194db3057565e3ad48d74c",
       []
      ],
      "header-parsing-non-ascii.https.html.headers": [
@@ -349930,7 +350087,7 @@
       []
      ],
      "header-parsing-non-ascii.https.html.ini": [
-      "352e7aad6f020561a33cc066d29ae815dd33f1e0",
+      "fd3dc939f703306fd43690b7fd9745adbf9ab462",
       []
      ],
      "header-parsing-repeated.https.html.headers": [
@@ -349946,10 +350103,6 @@
        "a19f4400cea33a60c99807330704a23ee363b146",
        []
       ],
-      "popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html.ini": [
-       "0dbd28d2424042e2d2ababfedc49e07f00f97e32",
-       []
-      ],
       "popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html.headers": [
        "a19f4400cea33a60c99807330704a23ee363b146",
        []
@@ -349974,22 +350127,18 @@
        "ab7b28948150ff64101ef080b0d9c7cc9a6a34d2",
        []
       ],
+      "popup-same-site-unsafe-allow-outgoing-with-same-site.https.html.ini": [
+       "8d718f6b6ce27cf4718657f1f6228bc0e16210fd",
+       []
+      ],
       "popup-same-site-with-cross-origin.https.html.headers": [
        "34bd099a302f893f92586241ea38aac812bf28d0",
        []
       ],
-      "popup-same-site-with-cross-origin.https.html.ini": [
-       "7ea4330d081288b87a862a685c3afc8895d563c5",
-       []
-      ],
       "popup-same-site-with-same-origin.https.html.headers": [
        "34bd099a302f893f92586241ea38aac812bf28d0",
        []
       ],
-      "popup-same-site-with-same-origin.https.html.ini": [
-       "71fe175cf71dcb57025122ae5251bb2abfbcfbaa",
-       []
-      ],
       "popup-same-site-with-same-site.https.html.headers": [
        "34bd099a302f893f92586241ea38aac812bf28d0",
        []
@@ -350000,7 +350149,7 @@
       []
      ],
      "iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini": [
-      "9813f106a943082c0ada51f0901e211e4976fda1",
+      "22875a69afa28bcb6c37ec989db7fe63bff60ea5",
       []
      ],
      "iframe-popup-same-origin-allow-popups-to-same-origin.https.html.headers": [
@@ -350024,7 +350173,7 @@
       []
      ],
      "iframe-popup-same-origin-to-same-origin.https.html.ini": [
-      "514b6a367dbb231f2fdf68fc00bc2d916ed45c28",
+      "cf64fdc476064b52e967508c36fb07f9cade5d08",
       []
      ],
      "iframe-popup-same-origin-to-unsafe-none.https.html.headers": [
@@ -350032,7 +350181,7 @@
       []
      ],
      "iframe-popup-same-origin-to-unsafe-none.https.html.ini": [
-      "8eec1633c1b737c49a14249cda902fca3a7199de",
+      "872be04701bdb2dcc3fb9da108f1f23edaa18c0b",
       []
      ],
      "iframe-popup-unsafe-none-to-same-origin.https.html.headers": [
@@ -350040,7 +350189,7 @@
       []
      ],
      "iframe-popup-unsafe-none-to-same-origin.https.html.ini": [
-      "3e09c283deb3d8ca3eb84b95803a97ca16aff88d",
+      "57821696a9c6f3f09e57b367e92979fc5cf1561f",
       []
      ],
      "iframe-popup-unsafe-none-to-unsafe-none.https.html.headers": [
@@ -350052,15 +350201,15 @@
       []
      ],
      "javascript-url.https.html.ini": [
-      "7ffc85b18b18bd7d74371b512731cbfdd03f757c",
+      "808835a26968f265fc92c3103d8cf4718a376d87",
       []
      ],
      "navigate-to-aboutblank.https.html.ini": [
-      "056fc91fee52cf3c18f9e9c5f31f4cc2f78611e7",
+      "3cc4743616d9ae07387b3130e8e721687ae2379d",
       []
      ],
      "navigate-top-to-aboutblank.https.html.ini": [
-      "d5c6b7629520bbf8969208c96e72707a0ef0454e",
+      "9a870f326761ec39f19400ba17730a2b1b0e0d3f",
       []
      ],
      "no-https.html.headers": [
@@ -350076,25 +350225,21 @@
       []
      ],
      "popup-redirect-cache.https.html.ini": [
-      "99d5850adff91c55e23c30fb294be8812d367733",
+      "116d941d428fbfa26f872f871a093845f4d50997",
+      []
+     ],
+     "popup-redirect-same-origin-allow-popups.https.html.ini": [
+      "bfc9a64a42e9f3926c011624f5047fc26792c230",
       []
      ],
      "popup-same-origin-allow-popups-with-cross-origin.https.html.headers": [
       "d83ed86fb9b5d159b9f380424887402edc96cb75",
       []
      ],
-     "popup-same-origin-allow-popups-with-cross-origin.https.html.ini": [
-      "78395f064089f40dea0d537a111ffc600cd17768",
-      []
-     ],
      "popup-same-origin-allow-popups-with-same-origin.https.html.headers": [
       "d83ed86fb9b5d159b9f380424887402edc96cb75",
       []
      ],
-     "popup-same-origin-allow-popups-with-same-origin.https.html.ini": [
-      "b3e0ea1fad38500a0a2b30a6481ee6e87daead9b",
-      []
-     ],
      "popup-same-origin-allow-popups-with-same-site.https.html.headers": [
       "d83ed86fb9b5d159b9f380424887402edc96cb75",
       []
@@ -350107,12 +350252,12 @@
       "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
       []
      ],
-     "popup-same-origin-with-same-origin.https.html.headers": [
-      "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
+     "popup-same-origin-with-cross-origin.https.html.ini": [
+      "5edb38c4da12a526b55e978b0fd09cf29bfab2cc",
       []
      ],
-     "popup-same-origin-with-same-origin.https.html.ini": [
-      "f1d91d7c42c54ce00e774821719b575fe381a891",
+     "popup-same-origin-with-same-origin.https.html.headers": [
+      "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
       []
      ],
      "popup-same-origin-with-same-site.https.html.headers": [
@@ -350123,6 +350268,10 @@
       "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c",
       []
      ],
+     "popup-unsafe-none-with-cross-origin.https.html.ini": [
+      "1693ee1d806331a9a4ef3e315e8d0108b817346f",
+      []
+     ],
      "popup-unsafe-none-with-same-origin.https.html.headers": [
       "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c",
       []
@@ -350135,18 +350284,10 @@
       "6f1e872520590723fb96d2c67837a02d78f18977",
       []
      ],
-     "popup-unspecified-with-same-site.https.html.ini": [
-      "ccfbd06e94ece9ba5235adb3de7db4a300584ec4",
-      []
-     ],
      "popup-with-structured-header.https.html.headers": [
       "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
       []
      ],
-     "popup-with-structured-header.https.html.ini": [
-      "6da6ff1fb621440715858cf87aa8bc554cdd2c0f",
-      []
-     ],
      "reporting": {
       "META.yml": [
        "0db28208a6d9731570398b1d83f8bf1ba32a4dec",
@@ -350158,7 +350299,7 @@
         []
        ],
        "access-from-coop-page-to-openee_coop-ro_cross-origin.https.html.ini": [
-        "c525d52f14f5dc4556b20fd1965377e84ca1469b",
+        "e85ff7282f33acb9edc3d317368f7163743505b8",
         []
        ],
        "access-from-coop-page-to-opener_coop-ro.https.html.ini": [
@@ -350166,11 +350307,11 @@
         []
        ],
        "access-from-coop-page-to-opener_coop-ro_cross-origin.https.html.ini": [
-        "020e7cc34cdfb286a6ab0c4a339e0798c877ea30",
+        "175280c7794d5b00b32df3f0956391597d1a57c8",
         []
        ],
        "access-from-coop-page-to-other_coop-ro.https.html.ini": [
-        "dd923b49d338c61b1c701f72a0fe7c9d21a51306",
+        "999c88e225df21421bac3afd627d251aa9efbe3d",
         []
        ],
        "access-from-coop-page-to-other_coop-ro_cross-origin.https.html.ini": [
@@ -350178,15 +350319,15 @@
         []
        ],
        "access-to-coop-page-from-openee_coop-ro.https.html.ini": [
-        "eeab671e4388a7129d9b5b38a7d7dcd3a9ea211c",
+        "45761bcac8beb541cddf6110a9432b612089da0b",
         []
        ],
        "access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini": [
-        "f90dfadf0031050388abab28128b4c575ee0b842",
+        "c12963c37c283f6c853bb9f9ef36b7cf83c9d0df",
         []
        ],
        "access-to-coop-page-from-opener_coop-ro.https.html.ini": [
-        "11bfb9c1d561de981e7916b744ea253a4d0974ad",
+        "cde27b4c14b78933da042eb61dbdf389002521c5",
         []
        ],
        "access-to-coop-page-from-opener_coop-ro_cross-origin.https.html.ini": [
@@ -350194,7 +350335,7 @@
         []
        ],
        "access-to-coop-page-from-other_coop-ro.https.html.ini": [
-        "22693c3d4521115956429a962468b7b769327914",
+        "12463d2a477294446d1b508952f81fdfcfd6296e",
         []
        ],
        "access-to-coop-page-from-other_coop-ro_cross-origin.https.html.ini": [
@@ -350202,11 +350343,11 @@
         []
        ],
        "property-blur.https.html.ini": [
-        "f9427b9f315d90b4a429f3294268dce231651599",
+        "152c3587065cb6376d75605f2797e9a2104f048c",
         []
        ],
        "property-close.https.html.ini": [
-        "1b5d319744cd58eee3f9c5098b12f5c392a9f844",
+        "d060d8a9a82f184a955fafb94ee2e1d4c9cd3835",
         []
        ],
        "property-closed.https.html.ini": [
@@ -350218,23 +350359,27 @@
         []
        ],
        "property-frames.https.html.ini": [
-        "fe1896e38ae8c8d146493e6c38723469406be460",
+        "01f4fcd2960d85861b72c469942031529268ec2f",
         []
        ],
        "property-indexed-getter.https.html.headers": [
         "64f4d5fedffd208b7174c7d8e0bce4e99ce1ac0f",
         []
        ],
+       "property-indexed-getter.https.html.ini": [
+        "4186abaa2b3e6224e09a8c01ede807a9f1651fa8",
+        []
+       ],
        "property-length.https.html.ini": [
         "3435757a0b1006729ce145e2a044df8233d8f4da",
         []
        ],
        "property-location-get.https.html.ini": [
-        "e48075ce4e2a4af8072fae88e9b06b515a8a9ea5",
+        "dcfc817f31fcf4a341eb76091e727fe7c65216a4",
         []
        ],
        "property-location-set.https.html.ini": [
-        "175abd50466fb400cd12a2037fe8c45562610689",
+        "e016cf9c67e1853eefcc7da328877d3d0866029c",
         []
        ],
        "property-named-getter.https.html.headers": [
@@ -350242,11 +350387,15 @@
         []
        ],
        "property-opener-get.https.html.ini": [
-        "76173f058e7af335f35213295dd3b1a188840c64",
+        "e053a92320caf24980ff5f4d623361e7485303db",
+        []
+       ],
+       "property-opener-set.https.html.ini": [
+        "5111ef2d847cd0803ce419b5c105a4cc5201287d",
         []
        ],
        "property-postmessage-1.https.html.ini": [
-        "a7e407dbf5ddb3522e3e56d09b0ed81d59d78338",
+        "943353e4f9e25b62aaec539cff959e753180bc02",
         []
        ],
        "property-postmessage-2.https.html.ini": [
@@ -350254,19 +350403,19 @@
         []
        ],
        "property-self.https.html.ini": [
-        "189215bc7f4f6a65585c207e1ea409f9b0320ac5",
+        "911a48fe0d6eaeb845e1ec91e968d70a1ba6b4f2",
         []
        ],
        "property-top.https.html.ini": [
-        "c79fa35a1af319641816a95c8a016ffbe562ef7d",
+        "615e9be3bec0c5a1171fbcd64edfbc4ab9af5873",
         []
        ],
        "property-window.https.html.ini": [
-        "799db67cf15e60af5be3156b0c11c7bb738c4426",
+        "78ab09d6a8d589bf1883847508b9769c9cd037dc",
         []
        ],
        "report-to-both_coop-ro.https.html.ini": [
-        "d4653ba3bc4737029f06e32eecac15936e97218f",
+        "46d3e2453d8b141994297fa9ca23abea51bbb623",
         []
        ],
        "reporting-observer.html.ini": [
@@ -350284,7 +350433,7 @@
         []
        ],
        "report-to-both_coop-ro.https.html.ini": [
-        "d4653ba3bc4737029f06e32eecac15936e97218f",
+        "290a3066beaf69f8410f6aad0e6425704774639a",
         []
        ],
        "reporting-redirect-with-same-origin-allow-popups.https.html.ini": [
@@ -350292,7 +350441,7 @@
         []
        ],
        "reporting-redirect-with-unsafe-none.https.html.ini": [
-        "c95c9d426b3ac2f1ec5bb249afac868a14097372",
+        "16239405fe1e3872295ebe9c53b215d7a4da6e46",
         []
        ]
       },
@@ -350409,10 +350558,6 @@
        ]
       }
      },
-     "resource-popup.https.html.ini": [
-      "f030a189f9ec459fd336f1b123ed5796391ab211",
-      []
-     ],
      "resources": {
       "call-functionCalledByOpenee.html": [
        "d0ff0b723e0f31c6ed635db95851769a598ce2a1",
@@ -350486,7 +350631,7 @@
         []
        ],
        "iframe-popup-to-so.https.html.ini": [
-        "5c47e17f6cb18d76a1388fc605b7479f75d80fe3",
+        "f8a499bad12ec011584e053acd36ac42680e7d1c",
         []
        ],
        "iframe-popup-to-soap.https.html.headers": [
@@ -350502,7 +350647,7 @@
         []
        ],
        "iframe-popup-to-un.https.html.ini": [
-        "8fa475c5290cecd1a4e0400a357dc781fd27a5f2",
+        "275706e4b4b566e979c0822359ded85f476fde89",
         []
        ],
        "iframe-popup-to-un.https_1-2-expected.txt": [
@@ -350570,7 +350715,7 @@
         []
        ],
        "popup-so.https.html.ini": [
-        "463b52a78e56cc78018b26cc440fe9457a27121d",
+        "81084dfeb2aab191721f3ecca3c350b0f4d0fba0",
         []
        ],
        "popup-soap.https-expected.txt": [
@@ -350590,7 +350735,7 @@
         []
        ],
        "popup-u.https.html.ini": [
-        "e594813511b6d8b463f199e677c6a2cc6c849b30",
+        "2381405d8bb70ac2439570b0d970beaf7d786e87",
         []
        ],
        "popup-un.https-expected.txt": [
@@ -350614,7 +350759,7 @@
         []
        ],
        "popup-with-cross-origin.https.html.ini": [
-        "f97561bf0fff98b15162863581a99dfd0dc6bbc5",
+        "4e17baa0cc7389cbdb7ad5478ca25b3c307b8269",
         []
        ],
        "popup-with-same-origin.https-expected.txt": [
@@ -351199,7 +351344,7 @@
      ],
      "render-blocking": {
       "remove-attr-script-keeps-blocking.tentative.html.ini": [
-       "39611704ecd429cf40cdf2a4608949230562c0f2",
+       "1c33dce5688b3d3c48697265c012771f77d7a79f",
        []
       ],
       "script-inserted-script.html.ini": [
@@ -356067,6 +356212,10 @@
         "96500cf0bd3416b83b2598e452dd6559a71d54ea",
         []
        ],
+       "change-src-while-not-displayed.html.ini": [
+        "90456db9e8ff8fde926edd089ccac31969df962d",
+        []
+       ],
        "cross-domain-iframe-in-multicol.sub-ref.html": [
         "2645ed459fe952afd676f67dd4fa8492e1aac761",
         []
@@ -356895,7 +357044,7 @@
          []
         ],
         "resource-selection-invoke-audio-constructor.html.ini": [
-         "dcd72bec2393a027fdc0be2341132c185d355e48",
+         "782dea7f2f4c93a1247ee7aabd48d982d9c2bdaa",
          []
         ],
         "resource-selection-invoke-in-sync-event-expected.txt": [
@@ -356935,7 +357084,7 @@
          []
         ],
         "resource-selection-invoke-pause-networkState.html.ini": [
-         "90dedabad34d5e276c4e689869b59ca17b37f979",
+         "e889ab762e3f0df906ff3f35139c60e0c4a89904",
          []
         ],
         "resource-selection-invoke-pause.html.ini": [
@@ -356947,19 +357096,19 @@
          []
         ],
         "resource-selection-invoke-remove-from-document-networkState.html.ini": [
-         "c3ac9d725634be2d24868f43d41ec818ab9011ea",
+         "c347625b9021debbfde4fd55dce626a8ec5d70c7",
          []
         ],
         "resource-selection-invoke-remove-src.html.ini": [
-         "8bf8c9cd35906d86ed1d6942bf08c0165d0dee4d",
+         "9d0eb977f12c92185afa96c944ad6d10a0145dfa",
          []
         ],
         "resource-selection-invoke-set-src-not-in-document.html.ini": [
-         "ff3d9aa5444592ad3736b4dc0c0fd662f926278a",
+         "7fe38a1b008003d6f1e3f989dfbec12f6ade05fc",
          []
         ],
         "resource-selection-invoke-set-src.html.ini": [
-         "87b5d619fbaae0a367aa7c72bf2532149c36e391",
+         "c0581652ef344bf42e125cffdd9d6761b9b91d4b",
          []
         ],
         "resource-selection-pointer-control-expected.txt": [
@@ -357449,6 +357598,10 @@
           "96afaef346374e70cdf2fec425f19f7a1239e175",
           []
          ],
+         "track-cue-rendering-after-controls-removed.html.ini": [
+          "6bcd8049b66bcba4c2860af72c69f30f6d57f838",
+          []
+         ],
          "track-cue-rendering-line-doesnt-fit-ref.html": [
           "8354041eb2a0aa57b283e12d9c0390f16327ac80",
           []
@@ -357916,7 +358069,7 @@
         []
        ],
        "sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini": [
-        "7d22c4482048821e3c3586ad2496e0d23c9ced10",
+        "b0a68eb56445706a1edf871941bed87344498667",
         []
        ],
        "sandbox-top-navigation-child.tentative.sub.window.js.ini": [
@@ -357924,11 +358077,11 @@
         []
        ],
        "sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini": [
-        "2ad9ba9c2f74eeac1c6cb9889faaf40704c6e94f",
+        "ae3370f78198955144375363786e6be34e977508",
         []
        ],
        "sandbox-top-navigation-grandchild.tentative.sub.window.js.ini": [
-        "0f880d19a60c4a6828e6646a4ffe8c3be47f1fb8",
+        "3df57b35f2160059c115f0b8604e5d5fbffadc43",
         []
        ],
        "stash.py": [
@@ -358204,7 +358357,7 @@
         []
        ],
        "image-loading-lazy-base-url-2.html.ini": [
-        "2e3fbd978f5bd3b40547ee704387081df3fc15fa",
+        "51b5b40a4444ed297f2eb1c6a07fac84ea65894a",
         []
        ],
        "image-loading-lazy-base-url-expected.txt": [
@@ -358554,7 +358707,7 @@
         []
        ],
        "resize-during-playback.html.ini": [
-        "ce1e80b1785cd8fd35e88b3c7ade06baff70c291",
+        "e1b1417312bf0f57a81e2b8117b3e474b4a1dcf0",
         []
        ],
        "video-poster-shown-preload-auto-ref.html": [
@@ -358658,7 +358811,7 @@
         []
        ],
        "urlencoded2.window.js.ini": [
-        "499050f218e7b8c43e5b14e84ad5f9790b969e03",
+        "c14d03067bea6c73844940da6d6c6f69188902a6",
         []
        ]
       },
@@ -358672,17 +358825,13 @@
         []
        ],
        "rel-base-target.html.ini": [
-        "790eba9e3b58b3a4bd400cd41bb618f8975f6765",
+        "ec6f83c7a787d53a05091b5e5a87049e225f1eda",
         []
        ],
        "rel-button-target.html.ini": [
         "12a80ad04dadb978f7708cf81d7932098afc3487",
         []
        ],
-       "rel-form-target.html.ini": [
-        "0de06be7a7b205c5f796af757e873444c2236b52",
-        []
-       ],
        "rel-input-target.html.ini": [
         "7e74e3af77c070bd97ff8fdb3e583f57873d9814",
         []
@@ -359012,7 +359161,7 @@
         []
        ],
        "selectmenu-form-state-restore.tentative.html.ini": [
-        "2ea1f96065bb88c5198bc9d39de2b8549bfc7d32",
+        "62d88ea7592a11c6bcc5535efb00b8673e28f14f",
         []
        ],
        "selectmenu-keyboard.tentative.html.ini": [
@@ -359420,7 +359569,7 @@
         []
        ],
        "activation-behavior.window.js.ini": [
-        "cff26e378ab9ea723d738cdd8c80322de1f0a487",
+        "b9bd2a87872316f8869a48da3535b43d48d43339",
         []
        ]
       },
@@ -359441,10 +359590,6 @@
        }
       },
       "links-created-by-a-and-area-elements": {
-       "htmlanchorelement_noopener.html.ini": [
-        "2059836e2d26a26820c8e6da975b385ab8aa4a2c",
-        []
-       ],
        "support": {
         "noopener-popup.html": [
          "2057dbf0beab37916a44d57c5ea234f1ac5810b5",
@@ -363232,7 +363377,7 @@
         []
        ],
        "reload.window.js.ini": [
-        "b96d831f60b8dfec3d33a7b92a76cbf94aea1b1c",
+        "a48a9a747ae5d237460e7616f6ea62d35a72b272",
         []
        ],
        "resources": {
@@ -363335,6 +363480,12 @@
        ]
       }
      },
+     "microtask-queuing": {
+      "queue-microtask-exceptions.any.js.ini": [
+       "089911c7ece90af867a18df0e6a189665d9c739c",
+       []
+      ]
+     },
      "scripting": {
       "event-loops": {
        "fully_active_document.window-expected.txt": [
@@ -363655,6 +363806,12 @@
        ]
       }
      },
+     "timers": {
+      "negative-settimeout.any.js.ini": [
+       "4160c845ca7aee77220a770b8df3d5d577c1b51e",
+       []
+      ]
+     },
      "update-rendering": {
       "child-document-raf-order-expected.txt": [
        "f9ba495c5a66c946d32656087abe29b6b7e83097",
@@ -363761,7 +363918,7 @@
      []
     ],
     "idle-detection-allowed-by-permissions-policy.https.sub.html.ini": [
-     "2e5bbacb24c3289077d6bfd1b274b58fc382521f",
+     "6f363c189c39ce8e2921eb7be18b2a9a306423f7",
      []
     ],
     "idle-detection-default-permissions-policy.https.sub.html.ini": [
@@ -364329,6 +364486,10 @@
       "013970bedf34612e8aba03571cdf71af6e917b3f",
       []
      ],
+     "non-secure-context.any.js.ini": [
+      "45252c462537863d766c4bba6fb161b781f96704",
+      []
+     ],
      "resources": {
       "fetch-and-post-result.html": [
        "4df0c4c71acd4a1a4025b3596a956ace8763ab25",
@@ -364857,6 +365018,10 @@
       "bc162ac7943eaa4d3851b4f8df60c790c986f0bf",
       []
      ],
+     "webtransport-h3.https.sub.any.js.ini": [
+      "667aadcf01418289fbe5842a37335b9cdddd9b56",
+      []
+     ],
      "wpt-server-wpt-flags.sub.html.ini": [
       "7783075b1499080b13d461986d8f5c2ab6a7830d",
       []
@@ -366245,7 +366410,7 @@
      []
     ],
     "cross-origin-iframe.sub.html.ini": [
-     "4554c60a9c9d0f7f416c826feb2bccfe673b19b5",
+     "96433ce771d633c8d066dbe446b8a5adcb049d1f",
      []
     ],
     "idlharness.window-expected.txt": [
@@ -366545,7 +366710,7 @@
      ]
     },
     "first-paint-equals-lcp-text.html.ini": [
-     "08be1a5d7994b79a6556902fae15d42f8d4d748d",
+     "78cff02ad8a1c6e7b12afe72d222f2b292a30f14",
      []
     ],
     "image-upscaling-expected.txt": [
@@ -366564,16 +366729,12 @@
      "aa1921a72fc90346d33624a48f77e0ec51733ec2",
      []
     ],
-    "non-tao-image-load-after-fcp.tentative.html.ini": [
-     "dd3f62db9c86db463b32661d300b87272a14e211",
-     []
-    ],
     "non-tao-image-load-before-fcp-render-after.tentative.html.ini": [
      "5cec90b70b6f916c87569ed721fba09a761fa484",
      []
     ],
     "non-tao-image-load-before-fcp-render-at-fcp.tentative.html.ini": [
-     "0cc5e0766b7b2347d72b0b000f9a597906aca35a",
+     "844f5b3fb624c90955d508eb8f6b6473ff867586",
      []
     ],
     "non-tao-image-subsequent-lcp-candidate.tentative.html.ini": [
@@ -366644,6 +366805,14 @@
      "ddb64357e78d345d53e3b1633b02937f5e228d15",
      []
     ],
+    "pointerdown-becomes-scroll.html.ini": [
+     "d8f2a3b117830fd80564cdff735f62423314aa2c",
+     []
+    ],
+    "pointerdown-becomes-tap.html.ini": [
+     "5186ab4e51cf7d38bee82ca916f4367efc4f966b",
+     []
+    ],
     "resources": {
      "slow-image.py": [
       "d9f09b8bca78dd1e054fdfcb108fe9066a31db3b",
@@ -366726,7 +366895,7 @@
    "loading": {
     "early-hints": {
      "404-with-early-hints.h2.window.js.ini": [
-      "d6358106ee35d4067ba7b587de6c0eaa5d7f4ecd",
+      "029bd479d63a47b147f8494f77838652862f617e",
       []
      ],
      "arbitrary-header-in-early-hints.h2.window.js.ini": [
@@ -366738,7 +366907,7 @@
       []
      ],
      "coep-early-hints-require-corp-final-none.h2.window.js.ini": [
-      "092a8a73101c5b021aeaa0caa5cac1c8c484baf3",
+      "c9c0601251f76e9ab63ad5d0154f28ee4c6acae2",
       []
      ],
      "csp-early-hints-absent-final-absent.h2.window.js.ini": [
@@ -366766,15 +366935,15 @@
       []
      ],
      "csp-early-hints-disallowed-final-absent.h2.window.js.ini": [
-      "b5be12effd9aadd3915ab48dba2f44c996b3bc81",
+      "3623b15ba197ed03804ac1755a8dc8fbca24d083",
       []
      ],
      "csp-early-hints-disallowed-final-allowed.h2.window.js.ini": [
-      "142c582b058b16f436caf692ca705174ff486a96",
+      "e935dbe26b09071d110aba686e56187fe3131622",
       []
      ],
      "csp-early-hints-disallowed-final-disallowed.h2.window.js.ini": [
-      "2aa08d2c04abd9bcf012352980a3e80d97d9b583",
+      "3e116223aecd0b524ef6af7118a31a9c70420c49",
       []
      ],
      "iframe-coep-disallow.h2.html.headers": [
@@ -366782,11 +366951,11 @@
       []
      ],
      "modulepreload-in-early-hints.h2.window.js.ini": [
-      "09b074d5d75194fbae0722585764fcf7feb3e2b5",
+      "057a33fbfde80117618d5bfcf0bebf80ab8932de",
       []
      ],
      "multiple-early-hints-responses.h2.window.js.ini": [
-      "eb2fb4e28813b57690141dee24f2ce0e6d1bdea4",
+      "caefadd9a88b67ea399b9a6e5888de6276efa5bc",
       []
      ],
      "preconnect-in-early-hints.h2.window.js.ini": [
@@ -366810,7 +366979,7 @@
       []
      ],
      "preload-with-csp-document-disallow.h2.window.js.ini": [
-      "f38d7d0afe296e198bf8e9e0c10fe0d344738a09",
+      "e3a0984e43905e5e035efd34465469a45563c629",
       []
      ],
      "preload-with-invalid-as.h2.window.js.ini": [
@@ -366818,7 +366987,7 @@
       []
      ],
      "preload-without-as.h2.window.js.ini": [
-      "6ac50adc38d97bcaca9743e9e8069256b7db0bc4",
+      "7cc9418f8362621fc6a8b04b8ce884e5c5088017",
       []
      ],
      "preload-without-csp-document-disallow.h2.window.js.ini": [
@@ -366834,7 +367003,7 @@
       []
      ],
      "redirect-same-origin-between-early-hints.h2.window.js.ini": [
-      "66bceec28452a2a6d3c4034fbbe05aed0a70024a",
+      "4189cc6224eb530ee5f0889422c6eb20df1f6214",
       []
      ],
      "redirect-same-origin.h2.window.js.ini": [
@@ -366846,11 +367015,11 @@
       []
      ],
      "referrer-policy-origin-when-cross-origin.h2.window.js.ini": [
-      "f441985d8498a04c77325c0f512954f037f1b7c3",
+      "ba22c819720d41b071e60ea66d6b1c11e669bd27",
       []
      ],
      "referrer-policy-origin.h2.window.js.ini": [
-      "ea7126e8319f8d8b60b4986c241905fc14cdfb7b",
+      "afb4eab4a896559b5757bcec8080bb1451aebb4b",
       []
      ],
      "referrer-policy-same-origin.h2.window.js.ini": [
@@ -367100,10 +367269,6 @@
      "ec88577064aa6d21b1fdd115fe62f7e67a8065bb",
      []
     ],
-    "longtask-in-sibling-iframe-crossorigin.html.ini": [
-     "b2e386a2fd5c7b43b062a460fedebc6c8cc49099",
-     []
-    ],
     "longtask-sync-xhr.html.ini": [
      "1a9948dc63e8db358ca2e22e2b415178ba6c4737",
      []
@@ -367436,10 +367601,6 @@
        "4fd4b225f3527a151b9d63e7603ab224453d7721",
        []
       ],
-      "legacy-mstyle-attributes.html.ini": [
-       "be13767bc72bc889393b43bcd0a1a7d1b2c7856d",
-       []
-      ],
       "mrow-painting-order-ref.html": [
        "72694959a86f1917cbd3db13b7f1a8b71714b711",
        []
@@ -368836,7 +368997,7 @@
       []
      ],
      "mediasource-worker-play-terminate-worker.html.ini": [
-      "091da401b8c2c2093844632f501ad1fe82ab4cb2",
+      "e4d323fb9c485e56942d51b20dac5dd030970f4e",
       []
      ],
      "mediasource-worker-play-terminate-worker.js": [
@@ -368889,7 +369050,7 @@
      []
     ],
     "mediasource-avtracks.html.ini": [
-     "cf16bf59f16ed119490b3c876b184a8af21098e2",
+     "1cf60a5439ab5b6165f03b384be1e6d63c15ad8c",
      []
     ],
     "mediasource-buffered-expected.txt": [
@@ -368961,7 +369122,7 @@
      []
     ],
     "mediasource-duration.html.ini": [
-     "123d6b77cf4f9a677b1f8522543420fb07f99ac3",
+     "475cf46ef69e253bae26f63181398910a40f9c6c",
      []
     ],
     "mediasource-endofstream-expected.txt": [
@@ -368969,7 +369130,7 @@
      []
     ],
     "mediasource-endofstream.html.ini": [
-     "7f2faccacee1354143b21a6bf98b6531c6d4e2e5",
+     "eb2f72db20e269e593f8790db2f3821f655ac224",
      []
     ],
     "mediasource-invalid-codec.html.ini": [
@@ -370598,10 +370759,6 @@
        "580dc21c19e71cbc51833c5d458ee34bc5e66717",
        []
       ],
-      "navigate-initial-about-blank.html.ini": [
-       "4aa58b51dffee4579e004546c37e7d11b687b652",
-       []
-      ],
       "navigate-intercept-interrupted.html.ini": [
        "5df966b3082d4dd15b10bad9ef94202e51794b84",
        []
@@ -370730,7 +370887,7 @@
     },
     "scroll-behavior": {
      "after-transition-intercept-handler-modifies.html.ini": [
-      "b7b9b420fb1b7866b53a0543534bbef4dac2abb7",
+      "61cb1657f2ae6ad5810ee5721301e6c25fbb872a",
       []
      ]
     },
@@ -370877,7 +371034,7 @@
      ]
     },
     "test-performance-attributes.sub.html.ini": [
-     "3052bb37c5d59fba96b78feb503ade97582075b4",
+     "47d75920efa4ff2749eb551ff212abe5adec6984",
      []
     ]
    },
@@ -371266,7 +371423,7 @@
       []
      ],
      "fcp-invisible-scale-transition.html.ini": [
-      "1b20a79f0273ad13bf00c682a5baf3093ccad83c",
+      "72799d77a2bc0a5d78894925e9650a6effbee268",
       []
      ],
      "fcp-invisible-scale.html.ini": [
@@ -371649,7 +371806,7 @@
      []
     ],
     "pending_beacon-sendondiscard.tentative.https.window.js.ini": [
-     "2b9693a38d0ddbb60e799d307d8cabcab8e431f1",
+     "602ca031c38f45f09c485269090b3120e91d958d",
      []
     ],
     "pending_beacon-sendonhidden.tentative.https.window.js.ini": [
@@ -371742,7 +371899,7 @@
       []
      ],
      "performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini": [
-      "a12a4b0fafaaadb0e55bc76b4b54f7d603b9c3cd",
+      "d4bb3aa6faf53f819084d6aef4be04dc668213ea",
       []
      ],
      "performance-navigation-timing-same-origin-replace.tentative.window.js.ini": [
@@ -371985,10 +372142,6 @@
       "a54ad04c8585af431bd123c07479959332908ee2",
       []
      ],
-     "unload-allowed-by-default.tentative.window.js.ini": [
-      "6360a03d9b2e0a9a6e94ac5a30cf26dc57b5e32c",
-      []
-     ],
      "vertical-scroll-main-frame-manual.tentative.html.headers": [
       "8d9c01e14835acbc0af74b5b9157a4a8b95243f8",
       []
@@ -372192,7 +372345,7 @@
       []
      ],
      "geolocation-report-only.https.html.ini": [
-      "eb3d0b73a243e54d9d6ae5fb524a86df5ddaf7ee",
+      "014a0550bb5decee63112b68c40d21f59c7f3356",
       []
      ],
      "geolocation-reporting.https.html.headers": [
@@ -372537,7 +372690,7 @@
      []
     ],
     "capturing_boundary_event_handler_at_ua_shadowdom.html.ini": [
-     "bbcb899d9c96ddd61e5629995ef545171edbce94",
+     "702dfe467d0cf552bd2cd00a55f7b1908d991012",
      []
     ],
     "coalesced_events_attributes_under_load.html.ini": [
@@ -372548,10 +372701,14 @@
      "pointerevent_mouseevent_key_pressed-expected.txt": [
       "2b436297a1573cbe990226c289fa5f6aeb7a58b3",
       []
+     ],
+     "pointerevent_touch-action_two-finger_interaction.html.ini": [
+      "3939147bf2690e1c0bf6d1916ce84cca445301fc",
+      []
      ]
     },
     "pointerevent_after_target_removed.html.ini": [
-     "f21fa436d68da1f4ea35f84bfb138f2ae8ae12ac",
+     "7ccda2494c702fa26a8bda29b456001cc047ae60",
      []
     ],
     "pointerevent_attributes_hoverable_pointers.html.ini": [
@@ -372563,7 +372720,19 @@
      []
     ],
     "pointerevent_attributes_nohover_pointers.html.ini": [
-     "333cc6b342fdc7e7ee60e89e8258fb738ce6375d",
+     "ff8b4e50330d1069c538b33ff1ce8d0d16f0f402",
+     []
+    ],
+    "pointerevent_change-touch-action-onpointerdown_touch.html.ini": [
+     "9854fabdc5668317892922bde09e3d3bb666f72d",
+     []
+    ],
+    "pointerevent_click_is_a_pointerevent.html.ini": [
+     "72bb3ca7387cebeb16a44fb77572ddd140deb961",
+     []
+    ],
+    "pointerevent_click_is_a_pointerevent_multiple_clicks.html.ini": [
+     "8f2f400f7a13443b6f851d980baba92896fdb09d",
      []
     ],
     "pointerevent_constructor.html.ini": [
@@ -372571,7 +372740,11 @@
      []
     ],
     "pointerevent_contextmenu_is_a_pointerevent.html.ini": [
-     "f1ff6c25e6edf1c7fd257b10601469a02cc87288",
+     "0161afdfdbd71cce9c66e194a760adcb57c0dce1",
+     []
+    ],
+    "pointerevent_fractional_coordinates.html.ini": [
+     "d12c8d618d609be2d7171dbeb649e16cd6f53ed6",
      []
     ],
     "pointerevent_hit_test_scroll_visible_descendant-expected.txt": [
@@ -372582,6 +372755,10 @@
      "04e88a8cfe45ea8c6a1d1e1e6c8d8e09b14a1eb3",
      []
     ],
+    "pointerevent_pointercancel_touch.html.ini": [
+     "5acec4c0312c5d8645aa1d5179ffd24a5cee3ac9",
+     []
+    ],
     "pointerevent_pointercapture_in_frame.html.ini": [
      "24ab79e429cd3cd6b9ecdfb0326e2c18f4085217",
      []
@@ -372590,6 +372767,18 @@
      "54cb7bc717356e044069d1bfcecacf7f9b521556",
      []
     ],
+    "pointerevent_pointerleave_after_pointercancel_touch.html.ini": [
+     "f0b0d7183ed34713d0767340158b0570b384ca44",
+     []
+    ],
+    "pointerevent_pointerout_after_pointercancel_touch.html.ini": [
+     "43475578e519e8f0b503bf098d2b9cd1668877bf",
+     []
+    ],
+    "pointerevent_releasepointercapture_onpointercancel_touch.html.ini": [
+     "e10db0b31821dc6c3e1400e540d76db797618d52",
+     []
+    ],
     "pointerevent_styles.css": [
      "1ee3b0b3965ff9fb3c5960f606cca6477ce145a8",
      []
@@ -372598,10 +372787,62 @@
      "a4b7adce3e5305781d6dd1a4194bb811b05af7ba",
      []
     ],
+    "pointerevent_touch-action-auto-css_touch.html.ini": [
+     "9b741373c7aa1151a9bc502c37b5c49cf85a426d",
+     []
+    ],
+    "pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html.ini": [
+     "b6bd7d1955ba2ed330e01af453785bf051afdeeb",
+     []
+    ],
+    "pointerevent_touch-action-inherit_highest-parent-none_touch.html.ini": [
+     "fd989a7c28fc0a88b7877a32ceb0440982a1dacb",
+     []
+    ],
     "pointerevent_touch-action-modified_touch.html.ini": [
      "627c84d5a369fc485054e2f3323da48ca2651145",
      []
     ],
+    "pointerevent_touch-action-pan-down-css_touch.html.ini": [
+     "8917d35ea866b758f43f31b66c9c191ea03b5024",
+     []
+    ],
+    "pointerevent_touch-action-pan-left-css_touch.html.ini": [
+     "11caddf3d65fab2295a5de3ffe1e68785a7852c7",
+     []
+    ],
+    "pointerevent_touch-action-pan-right-css_touch.html.ini": [
+     "dfac8e37e4dfbf42a38e4c3c44cc3834355d2edf",
+     []
+    ],
+    "pointerevent_touch-action-pan-up-css_touch.html.ini": [
+     "849d2eea2c738283ef159c9a70be89af4f7dc0de",
+     []
+    ],
+    "pointerevent_touch-action-pan-x-css_touch.html.ini": [
+     "0385af0d2a5bd7f93310e9afc2d04ae1eeaea5a7",
+     []
+    ],
+    "pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html.ini": [
+     "98a611835e1d7fd440822913e691fd3b92352a05",
+     []
+    ],
+    "pointerevent_touch-action-pan-x-pan-y_touch.html.ini": [
+     "3007318eb46fdda3be45b56b2b7f1d9273006639",
+     []
+    ],
+    "pointerevent_touch-action-pan-y-css_touch.html.ini": [
+     "4a047011ca64713e3d2326405c7828d47bf74479",
+     []
+    ],
+    "pointerevent_touch-action-span-none-test_touch.html.ini": [
+     "74b8ae5b47e00febdf4f548f2c1e73dde0b4b48e",
+     []
+    ],
+    "pointerevent_touch-action-table-none-test_touch.html.ini": [
+     "ccfcc66932b95ee0065c4d9999dd28ffba9b099b",
+     []
+    ],
     "pointerlock": {
      "__dir__.ini": [
       "6915b1949551ebcdd02fe2d44f1860be90407c7a",
@@ -372630,6 +372871,10 @@
       ]
      }
     },
+    "pointerup_after_pointerdown_target_removed.html.ini": [
+     "5f2c7c18b2777644d4a9f5f73def4e391484f548",
+     []
+    ],
     "resources": {
      "iframe-touch-action-none-subframe.html": [
       "0a894d4401e80a7e3528e38e16a06b0cdcbf7acd",
@@ -374317,7 +374562,7 @@
      ],
      "svg": {
       "external-stylesheet.html.ini": [
-       "38a4790e2e46245c93a01169d7f85b2fafd6cf6b",
+       "6118173aad7e6df0029e724d2ca341fd9459478f",
        []
       ],
       "inline-style-with-differentorigin-base-tag.tentative.html.ini": [
@@ -375372,14 +375617,14 @@
      "4fe4a41af350f4987197ffa3727c3c9a0b40100a",
      []
     ],
-    "callback-exception.html.ini": [
-     "bac37b07ca084fb8a6474efda72b47b2c8f0d392",
-     []
-    ],
     "callback-iframe.html.ini": [
      "516c69436cb5e5697f9f77fd211fd4e8e9b6ad81",
      []
     ],
+    "callback-invoked.html.ini": [
+     "21f9f925f480bba5d894b4767fc6b4c7e29853e3",
+     []
+    ],
     "callback-suspended.html.ini": [
      "7b01deb5f1599b627c7d84ce9da5d68d88181899",
      []
@@ -375408,10 +375653,6 @@
      "765815f1eee131d9ef45461f83becc63e5ac9e15",
      []
     ],
-    "deadline-max-rAF.html.ini": [
-     "1d34b78517f5abff4b5a9bec85e834c1ed219902",
-     []
-    ],
     "deadline-max-timeout-dynamic.html.ini": [
      "727f92b8c3c0ebc581c367ce59d7846238a8c034",
      []
@@ -375517,7 +375758,7 @@
      []
     ],
     "content-type-parsing.html.ini": [
-     "80eee616d08b673e617fb948e696d5c8fcd04cef",
+     "5ac1d4a531dc6c94aa47de85e32c628d0f805d37",
      []
     ],
     "frameset-timing.html": [
@@ -375557,7 +375798,7 @@
      []
     ],
     "nested-context-navigations-iframe.html.ini": [
-     "58d4c1014736b3b59f15fd1d5f7fb57a923ac48b",
+     "d39ca2794ef6243886bea3c56d4d0fb464f317dd",
      []
     ],
     "nextHopProtocol-is-tao-protected.https.html.ini": [
@@ -375569,7 +375810,7 @@
      []
     ],
     "no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini": [
-     "1d9ea2f91acb2183c63eb009a13beab9d0f0d4fb",
+     "e70c84d000d39ef8875f4d33ae97d692b2c2c615",
      []
     ],
     "object-not-found-adds-entry.html.ini": [
@@ -375577,7 +375818,7 @@
      []
     ],
     "object-not-found-after-cross-origin-redirect.html.ini": [
-     "3b0a6c2d809f1ef977bc472c879a3d5c5fb57aaf",
+     "b666ec44251f453d2d2ebb93fa9d46c77ef39a72",
      []
     ],
     "ping-rt-entries-expected.txt": [
@@ -375975,11 +376216,7 @@
      ]
     },
     "response-status-code.html.ini": [
-     "54e65d4b2d84c35757c3c266380528fa2f71e55a",
-     []
-    ],
-    "sizes-redirect.any.js.ini": [
-     "3755e0004e6d6ce5a883a54f220139e4ab6403f4",
+     "0473d057f3535d8a18f1f1782f5c70e1fcdb36c2",
      []
     ],
     "sleep.py": [
@@ -377934,7 +378171,7 @@
       []
      ],
      "cache-add.https.any.js.ini": [
-      "37c1e59fae0b8a8010c1497a59a22bb6b5910ce1",
+      "6c4c374590af86e5edd115ef089cc1bdd6f41d31",
       []
      ],
      "cache-add.https.any.serviceworker-expected.txt": [
@@ -378192,7 +378429,11 @@
       []
      ],
      "about-blank-replacement.https.html.ini": [
-      "b2a61d9c24fb4e80b97cb4747249e50855d8dddb",
+      "44673f0a5f7c3367517b39b82019fb80db5262b9",
+      []
+     ],
+     "client-navigate.https.html.ini": [
+      "fca26227db190ec5644ebe9fdb8ab985f03a0b75",
       []
      ],
      "client-url-of-blob-url-worker.https-expected.txt": [
@@ -378316,7 +378557,7 @@
       []
      ],
      "getregistrations.https.html.ini": [
-      "112c74169531f8bf80fd5969e2f2d30cdf439128",
+      "4769a3b3065cbfd007b4a45f0d348bfb7a614823",
       []
      ],
      "idlharness-sw.https-expected.txt": [
@@ -380088,7 +380329,7 @@
       []
      ],
      "unregister-immediately-during-extendable-events.https.html.ini": [
-      "4507f109d4a7c9681a8acaa819e15213d5906200",
+      "48187be6cf659c80f88dd2bbf4828e0763dd24f2",
       []
      ],
      "unregister-then-register-new-script.https-expected.txt": [
@@ -380889,7 +381130,7 @@
        []
       ],
       "prefetch-single.https.html.ini": [
-       "123be4ed883a273909103e5eca811edc11b44d12",
+       "c2a234ee361eba35a47955bafc2aef6c85e7447b",
        []
       ]
      },
@@ -380910,7 +381151,7 @@
       []
      ],
      "referrer-policy-from-rules.https.html.ini": [
-      "d921221285e592515e37a4c64411d9ee4e89f6c2",
+      "0f2011e167589bbfcd9079e222a6dd1609de82f1",
       []
      ],
      "referrer-policy-not-accepted.https.html.ini": [
@@ -380990,7 +381231,7 @@
       []
      ],
      "cross-origin-iframe.html.ini": [
-      "1023c050e9ff1e988d3bec06e40ef47c6304c57f",
+      "47d7e2cbb9b011b92293505ba14572be6896b61b",
       []
      ],
      "cross-origin-isolated.https.html.ini": [
@@ -381014,7 +381255,7 @@
       []
      ],
      "csp-script-src-self.html.ini": [
-      "a85027a5d037376f15157105b98757de136b2a7e",
+      "55cdc9ce3ea7e7dc8679161c85a16e0d5e2c0c38",
       []
      ],
      "csp-script-src-unsafe-inline.html.ini": [
@@ -381030,11 +381271,11 @@
       []
      ],
      "iframe-added-post-activation.html.ini": [
-      "6b9bf4fd20cef688bed633eea961bafe048aa419",
+      "639ddc1b8df708a9655f77e69e9ca9fe83c28ed6",
       []
      ],
      "indexeddb.html.ini": [
-      "d3393972fbdada59a2f814402fbe608d71388d0c",
+      "e16ee6be70082c5413fcb5624aed940a342e2447",
       []
      ],
      "local-storage.html.ini": [
@@ -381046,7 +381287,7 @@
       []
      ],
      "media-autoplay.html.ini": [
-      "dbcd03784b4242abb9f2fa661b1bbe0a8d8a9b24",
+      "12abdfdd57a96f1d46e72d7aab8b6fb66a315608",
       []
      ],
      "navigation-intercepted-by-service-worker.https.html.ini": [
@@ -381062,7 +381303,7 @@
       []
      ],
      "referrer-policy-from-rules.html.ini": [
-      "9df55d5d766468998afc12861450ec76a8d0a3ac",
+      "c96a9be02b0806a01546d4b2c341b10d0ac3dc43",
       []
      ],
      "referrer-policy-mismatch.html.ini": [
@@ -381500,15 +381741,15 @@
       ]
      },
      "response-code-non-successful.html.ini": [
-      "66670c752c11444e2581ce351f26a96d1420eb27",
+      "4937abd3390482e85c58cdb2d36a21c9b2d7976e",
       []
      ],
      "response-code-successful.html.ini": [
-      "5e8e3e4bed080d5b90b95a3c5f836a3c362e7205",
+      "dbd82821dba2bf0d27c0a16f3df67cff585862a6",
       []
      ],
      "restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini": [
-      "6cca5600d6601dffe6b4d4c38b45389558fa1902",
+      "872a1f57e6a8a75b91e61c164cec933ddc0799d7",
       []
      ],
      "restriction-audio-setSinkId.https.tentative.html.ini": [
@@ -381528,7 +381769,7 @@
       []
      ],
      "restriction-bluetooth.tentative.https.html.ini": [
-      "ebc3e375c39a321111cc155ac1f4dd9137b73fb7",
+      "8dacf33334b4b93b78abf35afd65e007ea45c378",
       []
      ],
      "restriction-broadcast-channel.html.ini": [
@@ -381544,7 +381785,7 @@
       []
      ],
      "restriction-encrypted-media.https.html.ini": [
-      "a72b2256c439a5be422d5893a270d1937bab5749",
+      "c443d69133977394b19006664f3a1f567b5b824d",
       []
      ],
      "restriction-focus.html.ini": [
@@ -381556,15 +381797,15 @@
       []
      ],
      "restriction-local-file-system-access.https.html.ini": [
-      "ab826f5f0b49867c20a0fb16953f2a7fca384ed6",
+      "8a6d179864aa39d4489cb91a3e778da3c4afeb10",
       []
      ],
      "restriction-media-auto-play-attribute.html.ini": [
-      "163886691748f1816ef13538f5ddc7a19a4e1873",
+      "66ea6cb7d2ce1982cbd5b55389211dd5ff9b5f9e",
       []
      ],
      "restriction-media-camera.https.html.ini": [
-      "f2b8f0c656ec7e8f559732df8628b96f7f40a018",
+      "591023622258a14009844ba4319751027e3d104d",
       []
      ],
      "restriction-media-device-info.https.html.ini": [
@@ -381580,7 +381821,7 @@
       []
      ],
      "restriction-message-boxes.html.ini": [
-      "aeb2a55b80067815a8f7a29f90ebe9516a3f2544",
+      "8bd97880f870a2162a3f55e3fd75921935149f95",
       []
      ],
      "restriction-midi-sysex.https.html.ini": [
@@ -381600,7 +381841,7 @@
       []
      ],
      "restriction-presentation-request.https.html.ini": [
-      "014edcaea08187b72dc82def14525b5fd1c194e8",
+      "1a3d08e01fc261eb3f67b39a5b187e720f064db8",
       []
      ],
      "restriction-prompt-by-before-unload.html.ini": [
@@ -381612,7 +381853,7 @@
       []
      ],
      "restriction-request-picture-in-picture.html.ini": [
-      "9bfa95ff89d6b4a022ac7a56aa4a2714c610007a",
+      "32004d9c3e0882ddf1626a064294901da9c192c3",
       []
      ],
      "restriction-screen-capture.https.html.ini": [
@@ -381652,11 +381893,11 @@
       []
      ],
      "restriction-speech-synthesis.html.ini": [
-      "ad1ad4c2b02022f3bdfe9a9b47eb552ff4a2e77f",
+      "c8b329d54aa3a58e3d46a6bcf37e2690d62df42e",
       []
      ],
      "restriction-storage-persist.https.html.ini": [
-      "98a9c5be35a92c607458b656841a0e067162d511",
+      "4504a613ea593d98e43d3738c70c1973a6585f9d",
       []
      ],
      "restriction-wake-lock.https.html.ini": [
@@ -381676,11 +381917,11 @@
       []
      ],
      "restriction-web-serial.tentative.https.html.ini": [
-      "84ffcd7dca7e6eff8869ae3a80841d23c0a02cfa",
+      "94eabafcfb25bbc3ac9d18ce4f29d2813091271b",
       []
      ],
      "restriction-web-share.https.html.ini": [
-      "f0101a566f68838984b93135e83d7b5434335db8",
+      "6a5f19de3f558db0115949b8889e905aa1e511cb",
       []
      ],
      "restriction-web-usb.https.html.ini": [
@@ -381696,11 +381937,11 @@
       []
      ],
      "restriction-window-move.html.ini": [
-      "1f07b4c2d4998f2362163af38a7b4ab95c7befaa",
+      "87802b2eb28eb268058b152c573e7e727f6b22de",
       []
      ],
      "restriction-window-open.html.ini": [
-      "73abde50066e763dcde1b4e9fcccacfb79df6b53",
+      "019af152c326faa960dda546c7abd4b4e0373aa9",
       []
      ],
      "restriction-window-resize.html.ini": [
@@ -381712,7 +381953,7 @@
       []
      ],
      "sandbox-iframe.html.ini": [
-      "a287cc35ac55e5846e28a9a93f05e3c31f9b97fb",
+      "927719e21eb18e6cbc9bcc126862b6dd37c5d464",
       []
      ],
      "service-workers.https.html.ini": [
@@ -381732,11 +381973,11 @@
       []
      ],
      "session-history-pushstate.https.html.ini": [
-      "d5dc8a78457b6e460ca8afba3270f63e9cc03376",
+      "f2a1bee431ed48cfcf7c705d57d63751f2ca6d44",
       []
      ],
      "session-history-subframe-navigation.https.html.ini": [
-      "ff00e55636afe27f0cbbc2f55f6f17bcddde7d85",
+      "a18dab5e083176b932ac9925ace656a983fc1e2d",
       []
      ],
      "session-history-subframe-reload.https.html.ini": [
@@ -381764,7 +382005,7 @@
       []
      ],
      "windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini": [
-      "f3d325bcdc5cb1e0b4140c4894032d13dbf0dfc4",
+      "f01732ac63977ded2f243509aec7d47b6fcdecca",
       []
      ],
      "windowclient-navigate-to-same-origin-url-on-iframe.https.html.ini": [
@@ -381776,7 +382017,7 @@
       []
      ],
      "workers.html.ini": [
-      "bea4222f27851dccbb90476168b980946342743c",
+      "a986d42ada540991b539b92e5597b2487a0aafc3",
       []
      ]
     }
@@ -381867,7 +382108,7 @@
      ]
     },
     "estimate-indexeddb.https.any.js.ini": [
-     "54ad9ea4ec490cff82b8d5d9b3ead4a633767337",
+     "b8807f2d287e874c4d18d530effad5386b9da613",
      []
     ],
     "helpers.js": [
@@ -385589,7 +385830,7 @@
      []
     ],
     "a-element-xhtml.xhtml.ini": [
-     "d60c2c9e998e554b5ee7525b49d427af871ff493",
+     "14abea7e25a48e747f0b621df41015d34c34d6d3",
      []
     ],
     "a-element-xhtml_include=javascript-expected.txt": [
@@ -385601,7 +385842,7 @@
      []
     ],
     "a-element.html.ini": [
-     "a2b12dccf72956247b5475b462159113b76698b8",
+     "f98ee3124404fc4d22a15be43e382c6d0da27d05",
      []
     ],
     "a-element_include=javascript-expected.txt": [
@@ -385613,7 +385854,7 @@
      []
     ],
     "failure.html.ini": [
-     "ac1e11adfbbca7c154c57a3b425a5394b9424e38",
+     "5f3314da573f67b736b3308e0d9a782c3778fde1",
      []
     ],
     "idlharness-shadowrealm.window-expected.txt": [
@@ -385621,7 +385862,7 @@
      []
     ],
     "idlharness-shadowrealm.window.js.ini": [
-     "0c7e3284847a27d3473c7cd5edd910dd3a28ed6a",
+     "27b57a31bb5da2c0dcfdaffd9629930d71b3dbf3",
      []
     ],
     "percent-encoding.window.js.ini": [
@@ -385654,7 +385895,7 @@
       []
      ],
      "urltestdata.json": [
-      "5833adae584a39c186faf77e031f0fad59f55124",
+      "fe7316fd2e8fb0d28ef34c07b4b3f204c673f613",
       []
      ]
     },
@@ -385667,7 +385908,7 @@
      []
     ],
     "url-constructor.any.js.ini": [
-     "837cf8e9a8959e85f3157723e6a7b952aabddecb",
+     "1cbbb92cc79d33580bd8fd6b0a269c1e2db7af4d",
      []
     ],
     "url-constructor.any.worker_include=javascript-expected.txt": [
@@ -385691,7 +385932,7 @@
      []
     ],
     "url-setters-a-area.window.js.ini": [
-     "d90657abb87b4bf1c1f5bf2bb075cec4a4967936",
+     "e27107d6a140e7ef0eec760df5ebe14ee6546e80",
      []
     ],
     "url-setters-a-area.window_include=javascript-expected.txt": [
@@ -385707,7 +385948,7 @@
      []
     ],
     "url-setters-stripping.any.js.ini": [
-     "5c23a98a6205bc1eeba0e0623b80063b03a8d6f1",
+     "68d160ce46ff159431e4f42981317470276bf2b6",
      []
     ],
     "url-setters-stripping.any.worker-expected.txt": [
@@ -385715,7 +385956,7 @@
      []
     ],
     "url-setters.any.js.ini": [
-     "023d17a0670589fbc71b560716cd58c890e6a023",
+     "9b7e5592636b5db3b12c78b3b4fa9ca64d27ce67",
      []
     ],
     "url-setters.any.worker_include=javascript-expected.txt": [
@@ -385743,7 +385984,7 @@
      []
     ],
     "urlsearchparams-stringifier.any.js.ini": [
-     "5874c971b74d0e95b67f80b43d297b8de921010c",
+     "927c36c9379634b16ecf3aa4c6455d5370b84aa4",
      []
     ]
    },
@@ -385882,10 +386123,22 @@
      "c036b16ec87bc7e562c4040ad1923c5a8b483cec",
      []
     ],
+    "page-and-offset-in-iframe.html.ini": [
+     "ce1ff121030b2b11905618ef6a8dd56128a83542",
+     []
+    ],
     "resize-event-order.html.ini": [
      "934674a51a6a68dd80f6faebb34b2b969ccf6925",
      []
     ],
+    "scroll-event-order.html.ini": [
+     "2f94365d80dd3571faab198e34c45b33080459ba",
+     []
+    ],
+    "viewport-resize-event-on-load-overflowing-page.html.ini": [
+     "70faeff4aac2105f8133b1b750aeceba692f2cd6",
+     []
+    ],
     "viewport-unscaled-scroll.html.ini": [
      "2d42feda37bed7a41230da6527117d3c11df7cf5",
      []
@@ -386615,7 +386868,7 @@
        []
       ],
       "accumulation-per-property-002.html.ini": [
-       "9ffe2cab358be6bb2c65d7872b5ef4a584bbd9ff",
+       "908c5c6efccd0dbd7e4d22a26f120756ce4f665d",
        []
       ],
       "addition-per-property-001-expected.txt": [
@@ -386647,7 +386900,7 @@
        []
       ],
       "interpolation-per-property-002.html.ini": [
-       "45302ed214b2ddab174e697a8e6afdee9964f88d",
+       "5e28cf45e8c196e73f34308edde7679d774e0aad",
        []
       ],
       "property-list.js": [
@@ -386733,7 +386986,7 @@
      },
      "Animation": {
       "finished.html.ini": [
-       "852bf244c7b63a89a307d9c46bf696398ce12e2a",
+       "a3e52c7dee4b1c685dfdccafd1ebbad8f1364064",
        []
       ],
       "onremove.html.ini": [
@@ -386909,7 +387162,7 @@
        []
       ],
       "setting-the-current-time-of-an-animation.html.ini": [
-       "bc13883ad41c1a06a494542679b023eb8fa395bc",
+       "abf20dbb0bffc27c76641080a58b6e0bf817b724",
        []
       ],
       "setting-the-start-time-of-an-animation-expected.txt": [
@@ -386934,6 +387187,10 @@
       ]
      },
      "timelines": {
+      "document-timelines.html.ini": [
+       "08dcd48709615c9a9b1a969e392a50990c32d801",
+       []
+      ],
       "resources": {
        "target-frame.html": [
         "18ee4fd8a23e6a9b4f95068b418d4da1bdef1679",
@@ -386949,7 +387206,7 @@
        []
       ],
       "sibling-iframe-timeline.html.ini": [
-       "675b3f1bf576cac09b7b92d0a3579e3d0c26c018",
+       "fda793bb285bae3f6cddefbd47036b789da06e18",
        []
       ],
       "timelines.html.ini": [
@@ -387374,7 +387631,7 @@
       ]
      },
      "reuse-web-bundle-resource.https.tentative.html.ini": [
-      "ffa17e97b5ec0c00e2ede58ad68011546e77569d",
+      "41577178df49c6b5ab1123e45f214e1fa7b94af6",
       []
      ]
     },
@@ -387432,6 +387689,10 @@
      "4423c326ffe912062124a75cc712052f08b5a15e",
      []
     ],
+    "query-ordering.tentative.https.html.ini": [
+     "b63d722ab7dd33bb4eac37228311c006f2ed749b",
+     []
+    ],
     "query.tentative.https.any.js.ini": [
      "ce2966b3d29a183be238c0953ecf1f9b92275f21",
      []
@@ -387731,7 +387992,7 @@
      },
      "the-analysernode-interface": {
       "test-analyser-output.html.ini": [
-       "553f41aa08b80bb27bce146c6534611271036059",
+       "55c0f7c0f7d68856e9cddf017dda1fccdf38a75d",
        []
       ]
      },
@@ -387971,7 +388232,7 @@
        ]
       },
       "suspended-context-messageport.https.html.ini": [
-       "fc818e512258c944f06669adeba465158ed469fa",
+       "2a7592e94907ad10e1f5381d896f2b92c552d98a",
        []
       ]
      },
@@ -388009,6 +388270,12 @@
        []
       ]
      },
+     "the-mediaelementaudiosourcenode-interface": {
+      "mediaElementAudioSourceToScriptProcessorTest.html.ini": [
+       "41f632613115f784c5390c049cc9116208423c4f",
+       []
+      ]
+     },
      "the-pannernode-interface": {
       "test-pannernode-automation.html.ini": [
        "20900aabd2ca3a1adb92d1b2b0a46bf8a4213bb2",
@@ -388199,7 +388466,7 @@
      []
     ],
     "image-decoder.https.any.js.ini": [
-     "224a1b9bf01fe482cc62d5ca92477ce06587d950",
+     "84fd1014c332621aa41fe171ff93e11a5fa448be",
      []
     ],
     "pattern.png": [
@@ -389158,7 +389425,7 @@
       ]
      },
      "workers.html.ini": [
-      "49c27878b8e2dd76c9318c237adb8158c68ad935",
+      "fd51247a007880b73ef8775e6641bb619b299ba4",
       []
      ]
     },
@@ -389196,6 +389463,10 @@
      "user-activation.tentative.any.worker-expected.txt": [
       "f953e25d9ef727b48984300d1e79ce87c71f2400",
       []
+     ],
+     "worker-post-after-close.any.js.ini": [
+      "38e85428689067832d346340f862f98b5478bf08",
+      []
      ]
     },
     "multi-globals": {
@@ -389212,7 +389483,7 @@
       []
      ],
      "broadcastchannel-incumbent.sub.html.ini": [
-      "6742e10278a81a61ec2e9df0addcb894fba30326",
+      "b15baab7faf137cd6228e0ad84e836adfd76dd0e",
       []
      ],
      "support": {
@@ -389239,7 +389510,7 @@
      []
     ],
     "postMessage_Date.sub.htm.ini": [
-     "2ab22ee829dc70f1e8ed1a10c98286e0f0b6f8e6",
+     "dd186255000a3418f074ec18595d102f3a8b3010",
      []
     ],
     "resources": {
@@ -389278,7 +389549,7 @@
       []
      ],
      "020.html.ini": [
-      "b35e66e6b3ce06b2885f4808ec48df56a5e255f0",
+      "265c7a6def4cc8db611bbcb8f304bdfab086a23c",
       []
      ],
      "021.html.ini": [
@@ -389307,6 +389578,10 @@
       "b35e66e6b3ce06b2885f4808ec48df56a5e255f0",
       []
      ],
+     "021.html.ini": [
+      "fd4aad14082878fb8cd021b5a6791e1d0e4ec620",
+      []
+     ],
      "025-1.js": [
       "bd1d778d9b32651b05f1b7364459ed4096646528",
       []
@@ -389341,7 +389616,7 @@
      []
     ],
     "idlharness.https.any.js.ini": [
-     "bb6995d801a5df5048248f47c6c2e5ead9e3e5ea",
+     "c65621626f54bc87e5a8163e5e71c701475c099a",
      []
     ],
     "idlharness.https.any.worker-expected.txt": [
@@ -389417,7 +389692,7 @@
      []
     ],
     "RTCDTMFSender-ontonechange.https.html.ini": [
-     "0efeed630eebcdf500fcad91c3fbddd31e368718",
+     "6f466d48cf0fef16037255fd07f4e467a25dbafa",
      []
     ],
     "RTCDataChannel-binaryType.window-expected.txt": [
@@ -389548,10 +389823,6 @@
      "ed647bbe78fed07eb31fb89274edee8be96ae8e8",
      []
     ],
-    "RTCPeerConnection-relay-canvas.https.html.ini": [
-     "b6a946f89e2746469830cbd748a1b44cba72a30e",
-     []
-    ],
     "RTCPeerConnection-remote-track-mute.https.html.ini": [
      "8d5c8bc5cbd083dac7de75a8cfb149ab7dcf455e",
      []
@@ -394362,7 +394633,7 @@
       []
      ],
      "ar_dom_overlay.https.html.ini": [
-      "bd83b2cab991199e084fc6c7b5be72fbeb4e72f0",
+      "afc8c694bee5a125f4171636f5096c9d80f418ac",
       []
      ],
      "ar_dom_overlay_hit_test.https.html.ini": [
@@ -394627,7 +394898,7 @@
      []
     ],
     "xrDevice_requestSession_optionalFeatures.https.html.ini": [
-     "e0a82b3b79b4914aadc834abc809f71f9c168db5",
+     "1fabe48b5dbb851cb99650718a0bd9aca804c348",
      []
     ],
     "xrDevice_requestSession_requiredFeatures_unknown.https.html.ini": [
@@ -394880,6 +395151,10 @@
      "1d6417780baedc67fd6771765fb547db2634ef62",
      []
     ],
+    "Worker-timeout-cancel-order.html.ini": [
+     "210a6f06c204cf813d24d4336e77779587dd1e81",
+     []
+    ],
     "WorkerNavigator_userAgentData.https.html.ini": [
      "4cce7e5f873b1dcf597761b841e120b2ef588aa5",
      []
@@ -394899,7 +395174,7 @@
        []
       ],
       "sharedworker-in-worker.html.ini": [
-       "d21b77c2a5f77e5b26b1293634f441c026a8e0fd",
+       "9b715377e1acb916f27a459fa7a726effeb78546",
        []
       ]
      },
@@ -395169,7 +395444,7 @@
      []
     ],
     "dedicated-worker-from-blob-url.window.js.ini": [
-     "282999e38b34fbb255ff0a9021e8419d9f039d02",
+     "b6f8e24e5a0d7742cdd446ae46283964140925f2",
      []
     ],
     "dedicated-worker-in-data-url-context.window-expected.txt": [
@@ -395177,7 +395452,7 @@
      []
     ],
     "dedicated-worker-in-data-url-context.window.js.ini": [
-     "0521a49adf986aad676dc8ffe895e8b2b9128685",
+     "8e3ebef3e6e51467127721e825be154a6e3bcac3",
      []
     ],
     "dedicated-worker-parse-error-failure-expected.txt": [
@@ -395249,6 +395524,10 @@
         "acf89ca6f678bf0b1d7b9d92605ee8554bf65674",
         []
        ],
+       "setting.html.ini": [
+        "2244b2520510040380164b5f6493cd398b797de9",
+        []
+       ],
        "setting.js": [
         "c705e9c40a6dd6d4e733bf60c017e91b07d56e6e",
         []
@@ -395277,6 +395556,10 @@
         "2e0a89828880ac462103ae7188d3a0abcd79c5b0",
         []
        ],
+       "setInterval.html.ini": [
+        "61d568f712814e4c0d0f4b085cc2bd14e93ab916",
+        []
+       ],
        "setInterval.js": [
         "d165d20eab47e6ad6c7618043d3e253c13c9d45a",
         []
@@ -395299,8 +395582,12 @@
         "e850b76b6e5f52389af3d213756ff7fc0e7a1c2d",
         []
        ],
+       "redirect-module.html.ini": [
+        "1c6515f8e201ef9439a48434033acafaecd68517",
+        []
+       ],
        "redirect.html.ini": [
-        "fd33d33be2f9c0d25ef8afed8d0a024b96686d2f",
+        "3a0f10f26cb7bf5f58f70a9cb9691f6886a5421a",
         []
        ],
        "redirect.js": [
@@ -395349,11 +395636,7 @@
         "704098a6d868549316256c0f92718dd1b0a4d765",
         []
        ]
-      },
-      "self.any.js.ini": [
-       "bfb49c3f6d188d3c000ad5d87712006a13fc2118",
-       []
-      ]
+      }
      },
      "WorkerUtils": {
       "WindowTimers": {
@@ -395459,10 +395742,6 @@
         "7fc6d0dd64bc82527621a90f848d080a195ed212",
         []
        ],
-       "report-error-setTimeout-same-origin.sub.any.js.ini": [
-        "c377da75fb4f059f637e853be80518296101ffe7",
-        []
-       ],
        "undefined": [
         "f99ba4be744c40c45ec3f9c58d2d1379f514c5d5",
         []
@@ -396005,7 +396284,7 @@
        []
       ],
       "003.html.ini": [
-       "df5625513ab314bd0b1b1468fd54a697f69f4879",
+       "d78390839335a1bcdc75a17f3efd17b836a18f5b",
        []
       ],
       "003.js": [
@@ -396517,7 +396796,7 @@
      []
     ],
     "abort-after-send.any.js.ini": [
-     "a0be80752e1abc36ff12ec082de76186d44a3711",
+     "81d696c38545a00308fd4514f18c5d34f331a77b",
      []
     ],
     "abort-after-send.any.worker-expected.txt": [
@@ -588042,10 +588321,12 @@
      ]
     ],
     "response-status-code.html": [
-     "0acc6224424e25fc80f30a940a178b8d54ce82b3",
+     "3c606c5496e6c7f9b0ecd5a7bfec9a611ad4f86f",
      [
       null,
-      {}
+      {
+       "timeout": "long"
+      }
      ]
     ],
     "same-origin-from-cross-origin-redirect.html": [
diff --git a/third_party/blink/web_tests/external/wpt/FileAPI/url/url-charset.window.js.ini b/third_party/blink/web_tests/external/wpt/FileAPI/url/url-charset.window.js.ini
deleted file mode 100644
index 3b6728bf..0000000
--- a/third_party/blink/web_tests/external/wpt/FileAPI/url/url-charset.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[url-charset.window.html]
-  expected:
-    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/idbfactory_open10.htm.ini b/third_party/blink/web_tests/external/wpt/IndexedDB/idbfactory_open10.htm.ini
new file mode 100644
index 0000000..e5a5de5
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/idbfactory_open10.htm.ini
@@ -0,0 +1,4 @@
+[idbfactory_open10.htm]
+  [IDBFactory.open() - error in upgradeneeded resets db]
+    expected:
+      if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini b/third_party/blink/web_tests/external/wpt/IndexedDB/idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini
index 8aa6e3e..eb829a9 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/idbobjectstore_batchGetAll_largeValue.tentative.any.js.ini
@@ -1,8 +1,7 @@
 [idbobjectstore_batchGetAll_largeValue.tentative.any.html]
   expected:
-    if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT]
-    if product == "chrome": OK
-    TIMEOUT
+    if (flag_specific == "") and (product == "content_shell"): TIMEOUT
+    if flag_specific == "disable-layout-ng": TIMEOUT
   [Get upper/lower excluded]
     expected: [PASS, TIMEOUT]
 
@@ -15,14 +14,11 @@
 
 [idbobjectstore_batchGetAll_largeValue.tentative.any.worker.html]
   expected:
-    if flag_specific == "disable-site-isolation-trials": OK
+    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT]
+    if (os == "linux") and (product == "chrome"): OK
     TIMEOUT
   [Get bound range with maxCount]
     expected: [PASS, TIMEOUT]
 
-  [Get upper/lower excluded]
-    expected:
-      if product == "chrome": TIMEOUT
-
   [Get bound range]
     expected: [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/structured-clone.any.js.ini b/third_party/blink/web_tests/external/wpt/IndexedDB/structured-clone.any.js.ini
index 16e13da..48c8ee6 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/structured-clone.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/structured-clone.any.js.ini
@@ -4,7 +4,7 @@
 
 [structured-clone.any.worker.html?101-last]
   expected:
-    if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
 
 [structured-clone.any.worker.html?41-60]
 
diff --git a/third_party/blink/web_tests/external/wpt/animation-worklet/playback-rate.https.html.ini b/third_party/blink/web_tests/external/wpt/animation-worklet/playback-rate.https.html.ini
index cb4ee35..68cf1f6 100644
--- a/third_party/blink/web_tests/external/wpt/animation-worklet/playback-rate.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/animation-worklet/playback-rate.https.html.ini
@@ -19,4 +19,4 @@
 
   [The playback rate set before the animation started playing affects the rate of progress of the current time]
     expected:
-      if product == "chrome": [PASS, FAIL]
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/background-fetch/fetch.https.window.js.ini b/third_party/blink/web_tests/external/wpt/background-fetch/fetch.https.window.js.ini
index 80f7797..14753b3 100644
--- a/third_party/blink/web_tests/external/wpt/background-fetch/fetch.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/background-fetch/fetch.https.window.js.ini
@@ -1,5 +1,6 @@
 [fetch.https.window.html]
   expected:
+    if (product == "content_shell") and (os == "win"): [OK, TIMEOUT]
     if product == "chrome": TIMEOUT
   [Argument verification is done for BackgroundFetchManager.fetch()]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/history.sub.html.ini b/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/history.sub.html.ini
deleted file mode 100644
index 5d8b1077..0000000
--- a/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/history.sub.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[history.sub.html]
-  expected:
-    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini b/third_party/blink/web_tests/external/wpt/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini
index 1aa1e89..7aa114e67 100644
--- a/third_party/blink/web_tests/external/wpt/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini
+++ b/third_party/blink/web_tests/external/wpt/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini
@@ -1,3 +1,4 @@
 [prefetch-header-allowed.html]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
+    if (os == "linux") and (flag_specific == "") and (product == "content_shell"): TIMEOUT
+    if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_set_arguments.https.any.js.ini b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_set_arguments.https.any.js.ini
index a1ab72a..a12a879 100644
--- a/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_set_arguments.https.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_set_arguments.https.any.js.ini
@@ -1,10 +1,7 @@
 [cookieStore_set_arguments.https.any.serviceworker.html]
-
-[cookieStore_set_arguments.https.any.html]
-  [cookieStore.set with expires set to a future Date]
-    expected:
-      if os == "win": [PASS, FAIL]
-
   [cookieStore.set with expires set to a future timestamp]
     expected:
       if os == "win": [PASS, FAIL]
+
+
+[cookieStore_set_arguments.https.any.html]
diff --git a/third_party/blink/web_tests/external/wpt/cookies/samesite/form-post-blank-reload.https.html.ini b/third_party/blink/web_tests/external/wpt/cookies/samesite/form-post-blank-reload.https.html.ini
index 25c3e4a..cff3fc4 100644
--- a/third_party/blink/web_tests/external/wpt/cookies/samesite/form-post-blank-reload.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/cookies/samesite/form-post-blank-reload.https.html.ini
@@ -1,5 +1,5 @@
 [form-post-blank-reload.https.html]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, ERROR]
   [Reloaded cross-site top-level form POSTs are strictly same-site]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/credential-management/fedcm-cross-origin-policy.https.html.ini b/third_party/blink/web_tests/external/wpt/credential-management/fedcm-cross-origin-policy.https.html.ini
index faada5d..4a4603d 100644
--- a/third_party/blink/web_tests/external/wpt/credential-management/fedcm-cross-origin-policy.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/credential-management/fedcm-cross-origin-policy.https.html.ini
@@ -1,7 +1,7 @@
 [fedcm-cross-origin-policy.https.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, TIMEOUT]
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": TIMEOUT
   [Test that COEP policy do not apply to FedCM requests]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html.ini b/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html.ini
index 42b61d6f..cd79bce 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html.ini
@@ -7,7 +7,3 @@
 
   [Animation state is preserved when interleaving animations in list]
     expected: FAIL
-
-  [Animations preserve their startTime when changed]
-    expected:
-      if product == "chrome": [FAIL, PASS]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-cascade/all-prop-revert-layer-noop.html.ini b/third_party/blink/web_tests/external/wpt/css/css-cascade/all-prop-revert-layer-noop.html.ini
new file mode 100644
index 0000000..30ed959
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-cascade/all-prop-revert-layer-noop.html.ini
@@ -0,0 +1,3 @@
+[all-prop-revert-layer-noop.html]
+  expected:
+    if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/container-queries/dirty-rowgroup-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/container-queries/crashtests/dirty-rowgroup-crash.html
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/css/css-contain/container-queries/dirty-rowgroup-crash.html
rename to third_party/blink/web_tests/external/wpt/css/css-contain/container-queries/crashtests/dirty-rowgroup-crash.html
diff --git a/third_party/blink/web_tests/external/wpt/css/css-display/display-contents-dynamic-fieldset-legend-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-display/display-contents-dynamic-fieldset-legend-001.html.ini
new file mode 100644
index 0000000..3a01cbdb
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-display/display-contents-dynamic-fieldset-legend-001.html.ini
@@ -0,0 +1,3 @@
+[display-contents-dynamic-fieldset-legend-001.html]
+  expected:
+    if flag_specific == "disable-layout-ng": [PASS, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/flexbox_stf-table-row.html.ini b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flexbox_stf-table-row.html.ini
new file mode 100644
index 0000000..00fe9ea
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flexbox_stf-table-row.html.ini
@@ -0,0 +1,3 @@
+[flexbox_stf-table-row.html]
+  expected:
+    if flag_specific == "disable-layout-ng": [PASS, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-003v.html.ini b/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-003v.html.ini
index 92f9825..8b88ef42 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-003v.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-003v.html.ini
@@ -18,23 +18,3 @@
   [.flexbox > img 8]
     expected:
       if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 9]
-    expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
-
-  [.flexbox > img 12]
-    expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
-
-  [.flexbox > img 10]
-    expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
-
-  [.flexbox > img 11]
-    expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
-
-  [.flexbox > img 14]
-    expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-007v.html.ini b/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-007v.html.ini
index a76df17..29ec443e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-007v.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/image-as-flexitem-size-007v.html.ini
@@ -6,35 +6,3 @@
   [.flexbox > img 4]
     expected:
       if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 9]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 7]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 1]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 12]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 6]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 10]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 11]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [.flexbox > img 14]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vlr.html.ini
index 0a5f5745..eb19349 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vlr.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vlr.html.ini
@@ -1,3 +1,4 @@
 [Initial-letter-breaking-vlr.html]
   expected:
-    if flag_specific == "disable-layout-ng": FAIL
+    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+    if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vrl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vrl.html.ini
index e5040af..5e2b2a7 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vrl.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/Initial-letter-breaking-vrl.html.ini
@@ -1,3 +1,4 @@
 [Initial-letter-breaking-vrl.html]
   expected:
-    if flag_specific == "disable-layout-ng": FAIL
+    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+    if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-margins-vrl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-margins-vrl.html.ini
index b5f8d7b..a6abb66 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-margins-vrl.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-margins-vrl.html.ini
@@ -1,4 +1,4 @@
 [initial-letter-block-position-margins-vrl.html]
   expected:
-    if (flag_specific == "") and (product == "chrome"): [PASS, FAIL]
-    if flag_specific == "disable-layout-ng": FAIL
+    if (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+    if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-tall.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-tall.html.ini
index 60f3521d2..9de6f52 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-tall.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-tall.html.ini
@@ -1,4 +1,3 @@
 [initial-letter-block-position-raise-under-ruby-tall.html]
   expected:
-    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
-    if (os == "linux") and (product == "chrome"): FAIL
+    if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial-vlr.html.ini
index 984123ce..1e3e903 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial-vlr.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-drop-initial-vlr.html.ini
@@ -1,3 +1,4 @@
 [initial-letter-drop-initial-vlr.html]
   expected:
-    if flag_specific == "disable-layout-ng": FAIL
+    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+    if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-001-vrl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-001-vrl.html.ini
index ff51dd5..a18c546 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-001-vrl.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-float-001-vrl.html.ini
@@ -1,4 +1,3 @@
 [initial-letter-float-001-vrl.html]
   expected:
-    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
-    if (os == "linux") and (product == "chrome"): FAIL
+    if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-indentation-rtl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-indentation-rtl.html.ini
index 9cd2cdc..495a53a6 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-indentation-rtl.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-indentation-rtl.html.ini
@@ -1,4 +1,3 @@
 [initial-letter-indentation-rtl.html]
   expected:
-    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
-    if (os == "linux") and (product == "chrome"): FAIL
+    if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-rtl.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-rtl.html.ini
index 51860775..d4d53907 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-rtl.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-rtl.html.ini
@@ -1,4 +1,3 @@
 [initial-letter-raise-initial-rtl.html]
   expected:
-    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
-    if (os == "linux") and (product == "chrome"): FAIL
+    if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vlr.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vlr.html.ini
index 5a7a7c3..add1cab 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vlr.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial-vlr.html.ini
@@ -1,3 +1,4 @@
 [initial-letter-raise-initial-vlr.html]
   expected:
-    if flag_specific == "disable-layout-ng": FAIL
+    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+    if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial.html.ini
index e37e026..73516018 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raise-initial.html.ini
@@ -1,3 +1,4 @@
 [initial-letter-raise-initial.html]
   expected:
-    if flag_specific == "disable-layout-ng": FAIL
+    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+    if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-sunken.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-sunken.html.ini
index b0631f92..0c64a2fd 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-sunken.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-sunken.html.ini
@@ -1,3 +1,4 @@
 [initial-letter-raised-sunken-caps-sunken.html]
   expected:
-    if flag_specific == "disable-layout-ng": FAIL
+    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+    if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-wraps.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-wraps.html.ini
index 322c6d7..f6b2dff15 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-wraps.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-wraps.html.ini
@@ -1,4 +1,3 @@
 [initial-letter-short-para-initial-letter-wraps.html]
   expected:
-    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
-    if (os == "linux") and (product == "chrome"): FAIL
+    if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-with-first-line.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-with-first-line.html.ini
index 7f69acb..56e94a867 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-with-first-line.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-with-first-line.html.ini
@@ -1,3 +1,4 @@
 [initial-letter-with-first-line.html]
   expected:
-    if flag_specific == "disable-layout-ng": FAIL
+    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+    if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-with-tab.html.ini b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-with-tab.html.ini
index 5091126..f5d901a 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-with-tab.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-inline/initial-letter/initial-letter-with-tab.html.ini
@@ -1,4 +1,3 @@
 [initial-letter-with-tab.html]
   expected:
-    if (os == "linux") and (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
-    if (os == "linux") and (product == "chrome"): FAIL
+    if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-layout-api/constraints/fixed-inline-size-fixed.https.html.ini b/third_party/blink/web_tests/external/wpt/css/css-layout-api/constraints/fixed-inline-size-fixed.https.html.ini
deleted file mode 100644
index f2a8274..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-layout-api/constraints/fixed-inline-size-fixed.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[fixed-inline-size-fixed.https.html]
-  expected:
-    if os == "win": [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-layout-api/fallback-intrinsic-sizes/constructor-error.https.html.ini b/third_party/blink/web_tests/external/wpt/css/css-layout-api/fallback-layout/constructor-error.https.html.ini
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/css/css-layout-api/fallback-intrinsic-sizes/constructor-error.https.html.ini
rename to third_party/blink/web_tests/external/wpt/css/css-layout-api/fallback-layout/constructor-error.https.html.ini
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-001.html.ini
new file mode 100644
index 0000000..38d7beae
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/getclientrects-001.html.ini
@@ -0,0 +1,24 @@
+[getclientrects-001.html]
+  [horizontal-tb ltr]
+    expected:
+      if product == "chrome": [PASS, FAIL]
+
+  [vertical-lr ltr]
+    expected:
+      if product == "chrome": [PASS, FAIL]
+
+  [vertical-rl ltr]
+    expected:
+      if product == "chrome": [PASS, FAIL]
+
+  [horizontal-tb rtl]
+    expected:
+      if product == "chrome": [PASS, FAIL]
+
+  [vertical-lr rtl]
+    expected:
+      if product == "chrome": [PASS, FAIL]
+
+  [vertical-rl rtl]
+    expected:
+      if product == "chrome": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-paint-api/parse-input-arguments-018.https.html.ini b/third_party/blink/web_tests/external/wpt/css/css-paint-api/parse-input-arguments-018.https.html.ini
index 9905f9f8..266c24e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-paint-api/parse-input-arguments-018.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-paint-api/parse-input-arguments-018.https.html.ini
@@ -1,2 +1,4 @@
 [parse-input-arguments-018.https.html]
-  expected: CRASH
+  expected:
+    if os == "win": PASS
+    CRASH
diff --git a/third_party/blink/web_tests/external/wpt/css/css-paint-api/valid-image-after-load.https.html.ini b/third_party/blink/web_tests/external/wpt/css/css-paint-api/valid-image-after-load.https.html.ini
new file mode 100644
index 0000000..3ed7ad9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-paint-api/valid-image-after-load.https.html.ini
@@ -0,0 +1,3 @@
+[valid-image-after-load.https.html]
+  expected:
+    if os == "win": [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/clone-nowrap-intrinsic-size-bidi.html.ini b/third_party/blink/web_tests/external/wpt/css/css-sizing/clone-nowrap-intrinsic-size-bidi.html.ini
index 7405f0d7..7eb5d67 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-sizing/clone-nowrap-intrinsic-size-bidi.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/clone-nowrap-intrinsic-size-bidi.html.ini
@@ -1,3 +1,3 @@
 [clone-nowrap-intrinsic-size-bidi.html]
   expected:
-    if flag_specific == "disable-layout-ng": FAIL
+    if flag_specific == "disable-layout-ng": [FAIL, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-lines-001.html b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-lines-001.html
index c49d572..adfe389 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-lines-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-lines-001.html
@@ -2,7 +2,7 @@
 <meta charset="utf-8">
 <title>CSS Text Test: unicode-bidi: plaintext and paragraphs with strong directionality</title>
 <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
-<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-details">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#bidi-linebox">
 <link rel="match" href="reference/bidi-lines-001-ref.html">
 <meta name=assert content="with unicode-bidi: plaintext, lines from bidi paragraphs with strong directionality use that direction">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-lines-002.html b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-lines-002.html
index 5a90387a..edf7946 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-lines-002.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-lines-002.html
@@ -2,7 +2,7 @@
 <meta charset="utf-8">
 <title>CSS Text Test: unicode-bidi: plaintext and neutral paragraphs</title>
 <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
-<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-details">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#bidi-linebox">
 <link rel="match" href="reference/bidi-lines-002-ref.html">
 <meta name=assert content="with unicode-bidi: plaintext, bidi paragraphs only containing weak / neutral characters take their directionality from the previous paragraph if any, or the containing block otherwise.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-tab-001.html b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-tab-001.html
new file mode 100644
index 0000000..50018822
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-tab-001.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: Interaction between tabs and bidi</title>
+<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
+<link rel="help" href="http://unicode.org/reports/tr9/#L1">
+<link rel="match" href="reference/bidi-tab-001-ref.html">
+<meta name=assert content="with unicode-bidi: plaintext, lines from bidi paragraphs with strong directionality use that direction">
+<style>
+div {
+  font-family: monospace;
+  font-size: 20px;
+  line-height: 1;
+  white-space: pre;
+  width: 10ch;
+  background: blue;
+  color: blue;
+}
+span {
+  background: yellow;
+}
+</style>
+<p>The test passes if the two boxes are identical.
+
+<div dir=ltr><span dir=ltr>&#9;0</span></div>
+<div dir=rtl><span dir=rtl>&#9;0</span></div>
+<div dir=ltr><span dir=rtl>&#9;0</span></div>
+<div dir=rtl><span dir=ltr>&#9;0</span></div>
+
+<br>
+
+<div dir=ltr><span dir=ltr>&#9;0</span></div>
+<div dir=rtl><span dir=rtl>&#9;0</span></div>
+<div dir=ltr><span dir=ltrl>&#9;0</span></div>
+<div dir=rtl><span dir=rtl>&#9;0</span></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-tab-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-tab-001.html.ini
new file mode 100644
index 0000000..fb5c6363
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/bidi-tab-001.html.ini
@@ -0,0 +1,3 @@
+[bidi-tab-001.html]
+  expected:
+    if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/bidi/reference/bidi-tab-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/reference/bidi-tab-001-ref.html
new file mode 100644
index 0000000..a65b8cc
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/bidi/reference/bidi-tab-001-ref.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: Interaction between tabs and bidi</title>
+<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<style>
+div {
+  font-family: monospace;
+  font-size: 20px;
+  line-height: 1;
+  white-space: pre;
+  width: 10ch;
+  background: blue;
+  color: blue;
+}
+span {
+  background: yellow;
+}
+</style>
+<p>The test passes if the two boxes are identical.
+
+<div dir=ltr><span dir=ltr>&#9;0</span></div>
+<div dir=rtl><span dir=rtl>&#9;0</span></div>
+<div dir=ltr><span dir=ltrl>&#9;0</span></div>
+<div dir=rtl><span dir=rtl>&#9;0</span></div>
+
+<br>
+
+<div dir=ltr><span dir=ltr>&#9;0</span></div>
+<div dir=rtl><span dir=rtl>&#9;0</span></div>
+<div dir=ltr><span dir=ltrl>&#9;0</span></div>
+<div dir=rtl><span dir=rtl>&#9;0</span></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/i18n/css3-text-line-break-baspglwj-120.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/i18n/css3-text-line-break-baspglwj-120.html.ini
new file mode 100644
index 0000000..0c25e6a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/i18n/css3-text-line-break-baspglwj-120.html.ini
@@ -0,0 +1,3 @@
+[css3-text-line-break-baspglwj-120.html]
+  expected:
+    if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-001.html b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-001.html
new file mode 100644
index 0000000..735d9db
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-001.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<meta charset="utf-8">
+<title>text-justify:inter-character and ligatures</title>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#letter-spacing-property'>
+<link rel='match' href='reference/letter-spacing-ligatures-001-ref.html'>
+<meta name=flags content="should">
+<meta name="assert" content="When the effective spacing between two characters is not zero (due to either justification […]), user agents should not apply optional ligatures">
+<style>
+@font-face {
+    font-family: 'mplus';
+    src: url('/fonts/mplus-1p-regular.woff');
+}
+div {
+    font-size: 2em;
+    font-family: mplus;
+    width: 12ch;
+    text-align: justify;
+    text-align-last: justify;
+    text-justify: inter-character;
+    font-kerning: none;
+}
+span {
+    display: inline-block;
+    text-justify: auto;
+}
+.ref { color: blue; font-variant-ligatures: none; }
+.noref { color: orange; }
+</style>
+<p>Test passes if the black text looks like the blue one, not the orange one.
+<div>office</div>
+<div class=ref>office</div>
+<div class=noref>o<span>ffi</span>ce</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-002.html b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-002.html
new file mode 100644
index 0000000..b7a2ac84
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-002.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<meta charset="utf-8">
+<title>letter spacing and ligatures</title>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#letter-spacing-property'>
+<link rel='match' href='reference/letter-spacing-ligatures-002-ref.html'>
+<meta name=flags content="should">
+<meta name="assert" content="When the effective spacing between two characters is not zero (due to […] letter spacing), user agents should not apply optional ligatures">
+<style>
+@font-face {
+    font-family: 'mplus';
+    src: url('/fonts/mplus-1p-regular.woff');
+}
+div {
+    font-size: 2em;
+    font-family: mplus;
+    width: 12ch;
+    letter-spacing: 20px;
+    font-kerning: none;
+}
+i {
+    padding-left: 20px;
+}
+.ref {
+    color: blue;
+    letter-spacing: 0;
+    font-variant-ligatures: none;
+}
+</style>
+<p>Test passes if the black text looks like the blue one.
+<div>office</div>
+<div class=ref>o<i></i>f<i></i>f<i></i>i<i></i>c<i></i>e</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-003.html b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-003.html
new file mode 100644
index 0000000..20214f8
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-003.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<meta charset="utf-8">
+<title>text-justify:inter-character and ligatures</title>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#letter-spacing-property'>
+<link rel='match' href='reference/letter-spacing-ligatures-003-ref.html'>
+<meta name=flags content="should">
+<meta name="assert" content="When the effective spacing between two characters is not zero (due to either justification […]), user agents should not apply optional ligatures, but they do need to apply mandatory ones.">
+<style>
+div {
+    font-size: 2em;
+    width: 12ch;
+}
+.test {
+    text-align: justify;
+    text-align-last: justify;
+    text-justify: inter-character;
+}
+span { float: right; }
+.ref { color: blue; }
+</style>
+<p>Test passes if the black text looks like the blue one.
+<div lang=km class=test>&#x179F;&#x17B6;&#x17A0;&#x17B6;</div>
+<div lang=km class=ref>&#x179F;&#x17B6;<span>&#x17A0;&#x17B6;</span></div>
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-004.html b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-004.html
new file mode 100644
index 0000000..0f17f054
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/letter-spacing-ligatures-004.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<meta charset="utf-8">
+<title>letter spacing and ligatures</title>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#letter-spacing-property'>
+<link rel='match' href='reference/letter-spacing-ligatures-004-ref.html'>
+<meta name=flags content="should">
+<meta name="assert" content="When the effective spacing between two characters is not zero (due to […] letter spacing), user agents should not apply optional ligatures, but they must apply  ones">
+<style>
+div {
+    font-size: 2em;
+    width: 12ch;
+    font-kerning: none;
+}
+.test {
+    letter-spacing: 20px;
+}
+span {
+    padding-left: 20px;
+}
+.ref {
+    color: blue;
+}
+</style>
+<p>Test passes if the black text looks like the blue one.
+<div lang=km class=test>&#x179F;&#x17B6;&#x17A0;&#x17B6;</div>
+<div lang=km class=ref>&#x179F;&#x17B6;<span></span>&#x17A0;&#x17B6;</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-001-ref.html
new file mode 100644
index 0000000..e4caf65
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-001-ref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<meta charset="utf-8">
+<title>text-justify:inter-character and ligatures</title>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<style>
+@font-face {
+    font-family: 'mplus';
+    src: url('/fonts/mplus-1p-regular.woff');
+}
+div {
+    font-size: 2em;
+    font-family: mplus;
+    width: 12ch;
+    text-align: justify;
+    text-align-last: justify;
+    text-justify: inter-character;
+    font-variant-ligatures: none;
+    font-kerning: none;
+}
+span {
+    display: inline-block;
+    text-justify: auto;
+}
+.ref { color: blue;}
+.noref { color: orange; font-variant-ligatures: initial;}
+</style>
+<p>Test passes if the black text looks like the blue one, not the orange one.
+<div>office</div>
+<div class=ref>office</div>
+<div class=noref>o<span>ffi</span>ce</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-002-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-002-ref.html
new file mode 100644
index 0000000..2cbe5b0a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-002-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<meta charset="utf-8">
+<title>letter spacing and ligatures</title>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<style>
+@font-face {
+    font-family: 'mplus';
+    src: url('/fonts/mplus-1p-regular.woff');
+}
+div {
+    font-size: 2em;
+    font-family: mplus;
+    width: 12ch;
+    font-variant-ligatures: none;
+    letter-spacing: 0;
+    font-kerning: none;
+}
+i {
+    padding-left: 20px;
+}
+.ref {
+    color: blue;
+}
+</style>
+<p>Test passes if the black text looks like the blue one.
+<div>o<i></i>f<i></i>f<i></i>i<i></i>c<i></i>e</div>
+<div class=ref>o<i></i>f<i></i>f<i></i>i<i></i>c<i></i>e</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-003-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-003-ref.html
new file mode 100644
index 0000000..2d1e7bd0
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-003-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<meta charset="utf-8">
+<title>text-justify:inter-character and ligatures</title>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<style>
+div {
+    font-size: 2em;
+    width: 12ch;
+}
+span { float: right; }
+.ref { color: blue; }
+</style>
+<p>Test passes if the black text looks like the blue one.
+<div lang=km>&#x179F;&#x17B6;<span>&#x17A0;&#x17B6;</span></div>
+<div lang=km class=ref>&#x179F;&#x17B6;<span>&#x17A0;&#x17B6;</span></div>
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-004-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-004-ref.html
new file mode 100644
index 0000000..bb3881f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/letter-spacing/reference/letter-spacing-ligatures-004-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<meta charset="utf-8">
+<title>letter spacing and ligatures</title>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<style>
+div {
+    font-size: 2em;
+    width: 12ch;
+    font-kerning: none;
+}
+span {
+    padding-left: 20px;
+}
+.ref {
+    color: blue;
+}
+</style>
+<p>Test passes if the black text looks like the blue one.
+<div lang=km>&#x179F;&#x17B6;<span></span>&#x17A0;&#x17B6;</div>
+<div lang=km class=ref>&#x179F;&#x17B6;<span></span>&#x17A0;&#x17B6;</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-element.html.ini b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-element.html.ini
index 26477ab..5365651 100644
--- a/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-element.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-element.html.ini
@@ -1,5 +1,5 @@
 [scroll-behavior-element.html]
   expected:
-    if flag_specific == "disable-layout-ng": [OK, CRASH]
+    if (os == "linux") and (flag_specific == "disable-layout-ng"): [OK, CRASH]
   [Element with smooth scroll-behavior ; scrollIntoView() with instant behavior]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-root.html.ini b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-root.html.ini
index d5fe958..536ff3e 100644
--- a/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-root.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-root.html.ini
@@ -1,3 +1,75 @@
 [scroll-behavior-main-frame-root.html]
   [Main frame with smooth scroll-behavior ; scrollIntoView() with instant behavior]
     expected: FAIL
+
+  [Main frame with auto scroll-behavior ; scrollTo() with smooth behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): FAIL
+
+  [Main frame with smooth scroll-behavior ; scrollTo() with smooth behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): FAIL
+
+  [Main frame with smooth scroll-behavior ; scrollBy() with auto behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with auto scroll-behavior ; scrollIntoView() with smooth behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scroll() with auto behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scrollTo() with default behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scrollTo() with auto behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scrollBy() with default behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): FAIL
+
+  [Main frame with auto scroll-behavior ; scroll() with smooth behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Set scrollTop to frame with smooth scroll-behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scroll() with default behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scroll() with smooth behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scrollBy() with smooth behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scrollIntoView() with default behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Set scrollLeft to frame with smooth scroll-behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with smooth scroll-behavior ; scrollIntoView() with auto behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
+
+  [Main frame with auto scroll-behavior ; scrollBy() with smooth behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): FAIL
+
+  [Main frame with smooth scroll-behavior ; scrollIntoView() with smooth behavior]
+    expected:
+      if (os == "linux") and (product == "content_shell") and (flag_specific == ""): [FAIL, PASS]
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-window.html.ini b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-window.html.ini
new file mode 100644
index 0000000..0912a03
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-main-frame-window.html.ini
@@ -0,0 +1,8 @@
+[scroll-behavior-main-frame-window.html]
+  [Main frame with smooth scroll-behavior ; scrollBy() with default behavior]
+    expected:
+      if os == "win": [PASS, FAIL]
+
+  [Main frame with smooth scroll-behavior ; scrollBy() with smooth behavior]
+    expected:
+      if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-scrollintoview-nested.html.ini b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-scrollintoview-nested.html.ini
new file mode 100644
index 0000000..2bfa116
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/scroll-behavior-scrollintoview-nested.html.ini
@@ -0,0 +1,3 @@
+[scroll-behavior-scrollintoview-nested.html]
+  expected:
+    if flag_specific == "disable-layout-ng": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/has-complexity.html.ini b/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/has-complexity.html.ini
index abe15aea..e68b883 100644
--- a/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/has-complexity.html.ini
+++ b/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/has-complexity.html.ini
@@ -1,4 +1,2 @@
 [has-complexity.html]
-  expected:
-    if product == "chrome": OK
-    TIMEOUT
+  expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html.ini b/third_party/blink/web_tests/external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html.ini
index 64240c7..5f35e615 100644
--- a/third_party/blink/web_tests/external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html.ini
+++ b/third_party/blink/web_tests/external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html.ini
@@ -1,3 +1,4 @@
 [ElementInternals-target-element-is-held-strongly.html]
   expected:
-    if os == "win": TIMEOUT
+    if (flag_specific == "") and (os == "win"): [OK, TIMEOUT]
+    if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/scrolling/scrollend-event-fired-after-snap.html.ini b/third_party/blink/web_tests/external/wpt/dom/events/scrolling/scrollend-event-fired-after-snap.html.ini
new file mode 100644
index 0000000..dd2b363
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/dom/events/scrolling/scrollend-event-fired-after-snap.html.ini
@@ -0,0 +1,2 @@
+[scrollend-event-fired-after-snap.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/DocumentType-literal-xhtml.xhtml.ini b/third_party/blink/web_tests/external/wpt/dom/nodes/DocumentType-literal-xhtml.xhtml.ini
new file mode 100644
index 0000000..c48c841
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/dom/nodes/DocumentType-literal-xhtml.xhtml.ini
@@ -0,0 +1,3 @@
+[DocumentType-literal-xhtml.xhtml]
+  expected:
+    if flag_specific == "disable-layout-ng": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini b/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini
index 7158a50..c1f1d46 100644
--- a/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini
+++ b/third_party/blink/web_tests/external/wpt/dom/ranges/Range-mutations-dataChange.html.ini
@@ -1,3 +1,3 @@
 [Range-mutations-dataChange.html]
   expected:
-    if flag_specific == "disable-site-isolation-trials": CRASH
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/domparsing/insert-adjacent.html.ini b/third_party/blink/web_tests/external/wpt/domparsing/insert-adjacent.html.ini
new file mode 100644
index 0000000..c086710
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/domparsing/insert-adjacent.html.ini
@@ -0,0 +1,3 @@
+[insert-adjacent.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/delete.html.ini b/third_party/blink/web_tests/external/wpt/editing/run/delete.html.ini
index 920e030..5ad7606 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/delete.html.ini
+++ b/third_party/blink/web_tests/external/wpt/editing/run/delete.html.ini
@@ -1,6 +1,6 @@
 [delete.html?7001-last]
   expected:
-    if flag_specific == "disable-layout-ng": CRASH
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
   [[["delete",""\]\] "<div style=white-space:pre-line>foo\\n\\n[\]bar</div>" compare innerHTML]
     expected: FAIL
 
@@ -10,6 +10,14 @@
   [[["delete",""\]\] "<div style=white-space:nowrap>foo\\nb[\]</div>" compare innerHTML]
     expected: FAIL
 
+  [[["delete",""\]\] "<div style=white-space:pre-line>foo \\n[\]bar</div>" compare innerHTML]
+    expected:
+      if flag_specific == "disable-layout-ng": FAIL
+
+  [[["delete",""\]\] "<div style=white-space:pre-line>foo\\n [\]bar</div>" compare innerHTML]
+    expected:
+      if flag_specific == "disable-layout-ng": FAIL
+
 
 [delete.html?3001-4000]
   [[["stylewithcss","true"\],["defaultparagraphseparator","p"\],["delete",""\]\] "<p style=color:blue>foo<p style=color:rgba(0,0,255,1)>[\]bar" queryCommandState("stylewithcss") before]
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/formatblock.html.ini b/third_party/blink/web_tests/external/wpt/editing/run/formatblock.html.ini
index 26b7118..8247fe6b 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/formatblock.html.ini
+++ b/third_party/blink/web_tests/external/wpt/editing/run/formatblock.html.ini
@@ -686,7 +686,7 @@
 
 [formatblock.html?3001-4000]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
+    if os == "win": [OK, CRASH]
   [[["defaultparagraphseparator","div"\],["formatblock","<h5>"\]\] "<p>[foobar\]</p>" queryCommandValue("formatblock") after]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist.html.ini b/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist.html.ini
index 086c537e..e53adcca 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist.html.ini
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist.html.ini
@@ -1,6 +1,4 @@
 [insertunorderedlist.html]
-  expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
   [[["insertunorderedlist",""\]\] "foo[\]bar" queryCommandValue("insertunorderedlist") before]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/element-timing/buffer-before-onload.html.ini b/third_party/blink/web_tests/external/wpt/element-timing/buffer-before-onload.html.ini
index ce81da2..8a0128f1 100644
--- a/third_party/blink/web_tests/external/wpt/element-timing/buffer-before-onload.html.ini
+++ b/third_party/blink/web_tests/external/wpt/element-timing/buffer-before-onload.html.ini
@@ -1,3 +1,3 @@
 [buffer-before-onload.html]
   expected:
-    if flag_specific == "disable-layout-ng": [OK, CRASH]
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/element-timing/image-carousel.html.ini b/third_party/blink/web_tests/external/wpt/element-timing/image-carousel.html.ini
index 99e6e8f..3b89847 100644
--- a/third_party/blink/web_tests/external/wpt/element-timing/image-carousel.html.ini
+++ b/third_party/blink/web_tests/external/wpt/element-timing/image-carousel.html.ini
@@ -1,4 +1,4 @@
 [image-carousel.html]
   [Entries for elements within an image carousel are dispatched when the elements are redrawn.]
     expected:
-      if (os == "linux") and (product == "chrome"): [PASS, FAIL]
+      if (product == "content_shell") and (os == "win"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/element-timing/image-src-change.html.ini b/third_party/blink/web_tests/external/wpt/element-timing/image-src-change.html.ini
index 1def2aa..8a259054 100644
--- a/third_party/blink/web_tests/external/wpt/element-timing/image-src-change.html.ini
+++ b/third_party/blink/web_tests/external/wpt/element-timing/image-src-change.html.ini
@@ -1,3 +1,3 @@
 [image-src-change.html]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/encoding-detection/lt-windows-1257-late.tentative.html.ini b/third_party/blink/web_tests/external/wpt/encoding-detection/lt-windows-1257-late.tentative.html.ini
deleted file mode 100644
index 2b4bf72..0000000
--- a/third_party/blink/web_tests/external/wpt/encoding-detection/lt-windows-1257-late.tentative.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[lt-windows-1257-late.tentative.html]
-  expected: [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html.ini b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html.ini
index b350587..e839ecd 100644
--- a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html.ini
+++ b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html.ini
@@ -3,12 +3,12 @@
 [eucjp-encode-form-cseucpkdfmtjapanese.html?5001-6000]
 
 [eucjp-encode-form-cseucpkdfmtjapanese.html?4001-5000]
+  expected:
+    if os == "win": [OK, CRASH]
 
 [eucjp-encode-form-cseucpkdfmtjapanese.html?1-1000]
 
 [eucjp-encode-form-cseucpkdfmtjapanese.html?3001-4000]
-  expected:
-    if os == "win": [OK, CRASH]
 
 [eucjp-encode-form-cseucpkdfmtjapanese.html?7001-last]
 
diff --git a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html.ini b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html.ini
index b343984..e4bd21a 100644
--- a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html.ini
+++ b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html.ini
@@ -5,6 +5,8 @@
 [eucjp-encode-form-errors-hangul.html?1001-2000]
 
 [eucjp-encode-form-errors-hangul.html?8001-9000]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
 
 [eucjp-encode-form-errors-hangul.html?5001-6000]
 
@@ -13,8 +15,6 @@
 [eucjp-encode-form-errors-hangul.html?9001-10000]
 
 [eucjp-encode-form-errors-hangul.html?1-1000]
-  expected:
-    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
 
 [eucjp-encode-form-errors-hangul.html?6001-7000]
 
diff --git a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html.ini b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html.ini
index 3da670e1..41f5d57 100644
--- a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html.ini
+++ b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html.ini
@@ -7,8 +7,6 @@
 [eucjp-encode-href-errors-han.html?7001-8000]
 
 [eucjp-encode-href-errors-han.html?13001-14000]
-  expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
 
 [eucjp-encode-href-errors-han.html?5001-6000]
 
@@ -17,6 +15,8 @@
 [eucjp-encode-href-errors-han.html?1-1000]
 
 [eucjp-encode-href-errors-han.html?20001-21000]
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
 
 [eucjp-encode-href-errors-han.html?10001-11000]
 
diff --git a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html.ini b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html.ini
new file mode 100644
index 0000000..3053fda
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html.ini
@@ -0,0 +1,17 @@
+[iso2022jp-encode-form-csiso2022jp.html?3001-4000]
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
+
+[iso2022jp-encode-form-csiso2022jp.html?2001-3000]
+
+[iso2022jp-encode-form-csiso2022jp.html?1-1000]
+
+[iso2022jp-encode-form-csiso2022jp.html?5001-6000]
+
+[iso2022jp-encode-form-csiso2022jp.html?4001-5000]
+
+[iso2022jp-encode-form-csiso2022jp.html?7001-last]
+
+[iso2022jp-encode-form-csiso2022jp.html?6001-7000]
+
+[iso2022jp-encode-form-csiso2022jp.html?1001-2000]
diff --git a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html.ini b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html.ini
new file mode 100644
index 0000000..56a36e4
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html.ini
@@ -0,0 +1,37 @@
+[euckr-decode-iso-ir-149.html?16001-17000]
+
+[euckr-decode-iso-ir-149.html?14001-15000]
+
+[euckr-decode-iso-ir-149.html?13001-14000]
+
+[euckr-decode-iso-ir-149.html?6001-7000]
+
+[euckr-decode-iso-ir-149.html?12001-13000]
+
+[euckr-decode-iso-ir-149.html?1-1000]
+
+[euckr-decode-iso-ir-149.html?15001-16000]
+
+[euckr-decode-iso-ir-149.html?1001-2000]
+
+[euckr-decode-iso-ir-149.html?8001-9000]
+
+[euckr-decode-iso-ir-149.html?5001-6000]
+
+[euckr-decode-iso-ir-149.html?2001-3000]
+  expected:
+    if flag_specific == "disable-layout-ng": [OK, CRASH]
+
+[euckr-decode-iso-ir-149.html?17001-last]
+
+[euckr-decode-iso-ir-149.html?9001-10000]
+
+[euckr-decode-iso-ir-149.html?10001-11000]
+
+[euckr-decode-iso-ir-149.html?4001-5000]
+
+[euckr-decode-iso-ir-149.html?11001-12000]
+
+[euckr-decode-iso-ir-149.html?7001-8000]
+
+[euckr-decode-iso-ir-149.html?3001-4000]
diff --git a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html.ini b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html.ini
index fdc8f2f..3b9ccfd 100644
--- a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html.ini
+++ b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html.ini
@@ -9,6 +9,8 @@
 [euckr-decode-ksc5601.html?16001-17000]
 
 [euckr-decode-ksc5601.html?9001-10000]
+  expected:
+    if os == "win": [OK, CRASH]
 
 [euckr-decode-ksc5601.html?13001-14000]
 
@@ -19,8 +21,6 @@
 [euckr-decode-ksc5601.html?17001-last]
 
 [euckr-decode-ksc5601.html?7001-8000]
-  expected:
-    if os == "win": [OK, CRASH]
 
 [euckr-decode-ksc5601.html?11001-12000]
 
diff --git a/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.ini b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.ini
new file mode 100644
index 0000000..9fc5f2a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.ini
@@ -0,0 +1,9 @@
+[euckr-encode-form-errors-misc.html?2001-3000]
+
+[euckr-encode-form-errors-misc.html?3001-last]
+
+[euckr-encode-form-errors-misc.html?1-1000]
+
+[euckr-encode-form-errors-misc.html?1001-2000]
+  expected:
+    if flag_specific == "disable-layout-ng": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/event-timing/first-input-interactionid-tap.html.ini b/third_party/blink/web_tests/external/wpt/event-timing/first-input-interactionid-tap.html.ini
new file mode 100644
index 0000000..7a4c1c40
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/event-timing/first-input-interactionid-tap.html.ini
@@ -0,0 +1,2 @@
+[first-input-interactionid-tap.html]
+  expected: CRASH
diff --git a/third_party/blink/web_tests/external/wpt/event-timing/interactionid-tap.html.ini b/third_party/blink/web_tests/external/wpt/event-timing/interactionid-tap.html.ini
new file mode 100644
index 0000000..d627cda
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/event-timing/interactionid-tap.html.ini
@@ -0,0 +1,2 @@
+[interactionid-tap.html]
+  expected: CRASH
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/abort/general.any.js.ini b/third_party/blink/web_tests/external/wpt/fetch/api/abort/general.any.js.ini
index 95822417..e728925 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/abort/general.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/abort/general.any.js.ini
@@ -40,3 +40,7 @@
 
   [Readable stream synchronously cancels with AbortError if aborted before reading]
     expected: FAIL
+
+  [Stream errors once aborted, after reading. Underlying connection closed.]
+    expected:
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/cors/cors-cookies.any.js.ini b/third_party/blink/web_tests/external/wpt/fetch/api/cors/cors-cookies.any.js.ini
index 2ccb092..25463cf 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/cors/cors-cookies.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/cors/cors-cookies.any.js.ini
@@ -1,19 +1,7 @@
 [cors-cookies.any.html]
-  [Include mode: 1 cookie]
-    expected:
-      if product == "chrome": FAIL
-
-  [Include mode: remote cookies are not sent with local request]
-    expected:
-      if product == "chrome": FAIL
-
-  [Include mode: local cookies are not sent with remote request]
-    expected:
-      if product == "chrome": FAIL
-
 
 [cors-cookies.any.worker.html]
-  [Include mode: remote cookies are not sent with local request]
+  [Include mode: 1 cookie]
     expected:
       if product == "chrome": [PASS, FAIL]
 
@@ -21,6 +9,6 @@
     expected:
       if product == "chrome": [PASS, FAIL]
 
-  [Include mode: 1 cookie]
+  [Include mode: remote cookies are not sent with local request]
     expected:
       if product == "chrome": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/content-type/response.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/content-type/response.window.js.ini
index d0b8f95..836f418 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/content-type/response.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/content-type/response.window.js.ini
@@ -244,7 +244,7 @@
     expected: [PASS, NOTRUN]
 
   [fetch(): separate response Content-Type: text/plain ]
-    expected: [PASS, NOTRUN]
+    expected: [PASS, TIMEOUT]
 
   [fetch(): combined response Content-Type: text/html;" " text/plain]
     expected: [PASS, NOTRUN]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-input-image.https.sub.html.ini b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-input-image.https.sub.html.ini
index 8a66759e..09e396b 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-input-image.https.sub.html.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-input-image.https.sub.html.ini
@@ -1,5 +1,5 @@
 [element-input-image.https.sub.html]
   expected:
-    if os == "win": TIMEOUT
+    if os == "win": [OK, TIMEOUT]
   [sec-fetch-site - HTTPS downgrade-upgrade, no attributes]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html.ini b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html.ini
index fa73b796..6594b0a 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html.ini
@@ -1,4 +1,3 @@
 [element-meta-refresh.https.optional.sub.html]
   expected:
-    if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, TIMEOUT]
-    if os == "win": TIMEOUT
+    if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/window-history.https.sub.html.ini b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/window-history.https.sub.html.ini
index 157b4da..8c7e93e 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/window-history.https.sub.html.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/metadata/generated/window-history.https.sub.html.ini
@@ -1,3 +1,3 @@
 [window-history.https.sub.html]
   expected:
-    if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, TIMEOUT]
+    if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/iframe.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/iframe.tentative.https.window.js.ini
index cea17ee9..a84192d9 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/iframe.tentative.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/iframe.tentative.https.window.js.ini
@@ -1,6 +1,6 @@
 [iframe.tentative.https.window.html]
   expected:
-    if product == "chrome": [OK, TIMEOUT]
+    if (product == "content_shell") and (flag_specific == "disable-layout-ng"): [OK, TIMEOUT]
   [private to local: success.]
     expected: FAIL
 
@@ -14,41 +14,13 @@
     expected: FAIL
 
   [treat-as-public-address to private: success.]
-    expected:
-      if product == "chrome": [FAIL, TIMEOUT]
-      FAIL
+    expected: FAIL
 
   [local to local, grandparent navigates: no preflight required.]
-    expected:
-      if product == "chrome": [FAIL, TIMEOUT]
-      FAIL
+    expected: FAIL
 
   [public to local, grandparent navigates: failure.]
-    expected:
-      if product == "chrome": [FAIL, TIMEOUT]
-      FAIL
+    expected: FAIL
 
   [public to local, grandparent navigates: success.]
-    expected:
-      if product == "chrome": [FAIL, TIMEOUT]
-      FAIL
-
-  [private to private: no preflight required.]
-    expected:
-      if product == "chrome": [PASS, TIMEOUT]
-
-  [private to public: no preflight required.]
-    expected:
-      if product == "chrome": [PASS, TIMEOUT]
-
-  [treat-as-public-address to public: no preflight required.]
-    expected:
-      if product == "chrome": [PASS, TIMEOUT]
-
-  [public to public: no preflight required.]
-    expected:
-      if product == "chrome": [PASS, TIMEOUT]
-
-  [treat-as-public-address to private: missing PNA header.]
-    expected:
-      if product == "chrome": [PASS, TIMEOUT]
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-background-fetch.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-background-fetch.https.window.js.ini
index 099c12ff..184b61d6 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-background-fetch.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-background-fetch.https.window.js.ini
@@ -1,12 +1,12 @@
 [service-worker-background-fetch.https.window.html]
   [local to local: success.]
     expected:
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
       if product == "chrome": FAIL
 
   [private to local: success.]
     expected:
-      if (product == "content_shell") and (flag_specific == "disable-layout-ng"): [PASS, FAIL]
-      if product == "chrome": FAIL
+      if (flag_specific == "") and (product == "chrome"): FAIL
 
   [private to private: success.]
     expected:
@@ -14,8 +14,9 @@
 
   [public to local: success.]
     expected:
-      if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [PASS, FAIL]
-      if product == "chrome": FAIL
+      if (flag_specific == "") and (os == "linux") and (product == "chrome"): FAIL
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [public to private: success.]
     expected:
@@ -23,7 +24,7 @@
 
   [public to public: success.]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
+      if product == "chrome": FAIL
 
   [treat-as-public to local: success.]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-fetch.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-fetch.https.window.js.ini
new file mode 100644
index 0000000..eaa7acf65
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/service-worker-fetch.https.window.js.ini
@@ -0,0 +1,3 @@
+[service-worker-fetch.https.window.html]
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html.ini b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html.ini
index 4f0bb0c..cd78228 100644
--- a/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html.ini
+++ b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html.ini
@@ -1,2 +1,4 @@
 [focus-already-focused-iframe-same-site.html]
-  expected: TIMEOUT
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [TIMEOUT, CRASH]
+    TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/focus/focus-restoration-in-same-site-iframes-window.html.ini b/third_party/blink/web_tests/external/wpt/focus/focus-restoration-in-same-site-iframes-window.html.ini
index c5a3dad8..f199491 100644
--- a/third_party/blink/web_tests/external/wpt/focus/focus-restoration-in-same-site-iframes-window.html.ini
+++ b/third_party/blink/web_tests/external/wpt/focus/focus-restoration-in-same-site-iframes-window.html.ini
@@ -1,5 +1,3 @@
 [focus-restoration-in-same-site-iframes-window.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
   [Check result]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/focus/iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini b/third_party/blink/web_tests/external/wpt/focus/iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini
index c06c0e7b..b4691ae 100644
--- a/third_party/blink/web_tests/external/wpt/focus/iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini
+++ b/third_party/blink/web_tests/external/wpt/focus/iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini
@@ -1,5 +1,5 @@
 [iframe-contentwindow-focus-with-different-site-intermediate-frame.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
   [Check result]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/focus/iframe-focus-with-different-site-intermediate-frame.html.ini b/third_party/blink/web_tests/external/wpt/focus/iframe-focus-with-different-site-intermediate-frame.html.ini
index a4e9ffe..5019503 100644
--- a/third_party/blink/web_tests/external/wpt/focus/iframe-focus-with-different-site-intermediate-frame.html.ini
+++ b/third_party/blink/web_tests/external/wpt/focus/iframe-focus-with-different-site-intermediate-frame.html.ini
@@ -1,3 +1,5 @@
 [iframe-focus-with-different-site-intermediate-frame.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
   [Check result]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/focus/iframe-focuses-parent-different-site.html.ini b/third_party/blink/web_tests/external/wpt/focus/iframe-focuses-parent-different-site.html.ini
new file mode 100644
index 0000000..78cd2ff
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/iframe-focuses-parent-different-site.html.ini
@@ -0,0 +1,3 @@
+[iframe-focuses-parent-different-site.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/fs/FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini b/third_party/blink/web_tests/external/wpt/fs/FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini
deleted file mode 100644
index e8803eb..0000000
--- a/third_party/blink/web_tests/external/wpt/fs/FileSystemFileHandle-create-sync-access-handle.https.tentative.window.js.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[FileSystemFileHandle-create-sync-access-handle.https.tentative.window.html]
-  [Attempt to create a sync access handle.]
-    expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/hr-time/clamped-time-origin.html.ini b/third_party/blink/web_tests/external/wpt/hr-time/clamped-time-origin.html.ini
new file mode 100644
index 0000000..9082a0b2
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/hr-time/clamped-time-origin.html.ini
@@ -0,0 +1,3 @@
+[clamped-time-origin.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/embedding.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/embedding.tentative.https.window.js.ini
index 5ff214215..7146e6d 100644
--- a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/embedding.tentative.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/embedding.tentative.https.window.js.ini
@@ -19,22 +19,18 @@
 [embedding.tentative.https.window.html?11-11]
 
 [embedding.tentative.https.window.html?5-5]
-  expected:
-    if product == "chrome": [OK, ERROR]
 
 [embedding.tentative.https.window.html?1-1]
 
 [embedding.tentative.https.window.html?6-6]
-  expected:
-    if product == "chrome": [OK, ERROR]
 
 [embedding.tentative.https.window.html?7-7]
-  expected:
-    if product == "chrome": [OK, ERROR]
+  [COOP:same-origin + COEP:require-corp embeds same-origin credentialless iframe]
+    expected:
+      if os == "win": [PASS, FAIL]
+
 
 [embedding.tentative.https.window.html?10-10]
-  expected:
-    if product == "chrome": [OK, ERROR]
 
 [embedding.tentative.https.window.html?2-2]
 
@@ -43,9 +39,9 @@
 [embedding.tentative.https.window.html?4-4]
 
 [embedding.tentative.https.window.html?8-8]
-
-[embedding.tentative.https.window.html?3-3]
   expected:
     if product == "chrome": [OK, ERROR]
 
+[embedding.tentative.https.window.html?3-3]
+
 [embedding.tentative.https.window.html?9-9]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html.ini
index 02af6ff..66dd895 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html.ini
@@ -1,4 +1,4 @@
 [before-load-hash.html]
   [when changing hash, before load]
     expected:
-      if product == "chrome": [PASS, FAIL]
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini
new file mode 100644
index 0000000..c93fe6b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini
@@ -0,0 +1,3 @@
+[load-pageshow-events-iframe-contentWindow.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html.ini
index 7040e50..2456034 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html.ini
@@ -1,6 +1,8 @@
 [same-document-traversal-cross-document-traversal.html]
   expected:
-    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
+    if (flag_specific == "") and (os == "win"): [OK, TIMEOUT]
+    if flag_specific == "disable-site-isolation-trials": TIMEOUT
+    if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
   [traversals in the same (back) direction: queued up]
     expected: [PASS, TIMEOUT]
 
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_back_cross_realm_method.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_back_cross_realm_method.html.ini
new file mode 100644
index 0000000..0455640
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_back_cross_realm_method.html.ini
@@ -0,0 +1,3 @@
+[history_back_cross_realm_method.html]
+  expected:
+    if flag_specific == "disable-layout-ng": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
new file mode 100644
index 0000000..c792650
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_5.html]
+  [Multiple history traversals, last would be aborted]
+    expected:
+      if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
index 6cf1e4a..1d3cada0 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
@@ -1,8 +1,6 @@
 [location-protocol-setter-non-broken.html]
   [Set HTTP URL frame location.protocol to data]
-    expected:
-      if os == "win": PASS
-      FAIL
+    expected: FAIL
 
   [Set data URL frame location.protocol to data]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-name.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-name.html.ini
index ab20f7d..df543428 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-name.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-name.html.ini
@@ -1,6 +1,4 @@
 [cross-origin-objects-function-name.html]
-  expected:
-    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
   [Cross-origin Window methods have correct 'name']
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html.ini
index 87914ec..6502952 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html.ini
@@ -1,6 +1,7 @@
 [cross-origin-objects.html]
   expected:
-    if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT]
+    if (flag_specific == "") and (product == "content_shell") and (os == "linux"): [OK, CRASH]
+    if (flag_specific == "") and (product == "chrome"): [OK, TIMEOUT]
   [Only certain properties are accessible cross-origin (cross-origin)]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-port.sub.https.html.ini
index 5504eb1..f5c78443 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-port.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-port.sub.https.html.ini
@@ -1,8 +1,10 @@
 [parent-yes-child-no-port.sub.https.html]
   [setting document.domain must not give sync access]
     expected:
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
       if product == "chrome": FAIL
 
   [parent: originAgentCluster must equal true]
     expected:
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-same.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-same.sub.https.html.ini
index c5662b4..2066f0aa 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-same.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-no-same.sub.https.html.ini
@@ -1,10 +1,8 @@
 [parent-yes-child-no-same.sub.https.html]
   [parent: originAgentCluster must equal true]
     expected:
-      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
       if product == "chrome": FAIL
 
   [child: originAgentCluster must equal true]
     expected:
-      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-same.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-same.sub.https.html.ini
index 21a2266..e3a89c0f 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-same.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-same.sub.https.html.ini
@@ -1,10 +1,8 @@
 [parent-yes-child-yes-same.sub.https.html]
   [parent: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if product == "chrome": FAIL
 
   [child: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-subdomain.sub.https.html.ini
index 181db94..bd62a14 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/1-iframe/parent-yes-child-yes-subdomain.sub.https.html.ini
@@ -1,6 +1,6 @@
 [parent-yes-child-yes-subdomain.sub.https.html]
   expected:
-    if flag_specific == "disable-site-isolation-trials": CRASH
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
   [parent: originAgentCluster must equal true]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini
index bd99113..9be6e053 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini
@@ -10,11 +10,3 @@
       if (flag_specific == "") and (product == "chrome"): PASS
       if flag_specific == "disable-site-isolation-trials": PASS
       FAIL
-
-  [child2: originAgentCluster must equal false]
-    expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
-
-  [child1: originAgentCluster must equal false]
-    expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-no-subdomain1-child2-yes-subdomain2.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-no-subdomain1-child2-yes-subdomain2.sub.https.html.ini
index d350ba9..ff06302c 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-no-subdomain1-child2-yes-subdomain2.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-no-subdomain1-child2-yes-subdomain2.sub.https.html.ini
@@ -1,10 +1,9 @@
 [parent-no-child1-no-subdomain1-child2-yes-subdomain2.sub.https.html]
   [Parent to child1: setting document.domain must give sync access]
     expected:
-      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
-      if product == "chrome": PASS
+      if (flag_specific == "") and (product == "chrome"): PASS
       FAIL
 
   [parent: originAgentCluster must equal false]
     expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+      if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini
index 8b8493d..8ecab74 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-port.sub.https.html.ini
@@ -2,3 +2,20 @@
   [child1: originAgentCluster must equal true]
     expected:
       if (flag_specific == "") and (product == "content_shell"): FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [child2 to child1: setting document.domain must not give sync access]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [child1 to child2: setting document.domain must not give sync access]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [parent: originAgentCluster must equal false]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [Parent to child2: setting document.domain must give sync access]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini
index 2ae4867..2a0462e 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html.ini
@@ -1,16 +1,16 @@
 [parent-no-child1-yes-subdomain-child2-no-subdomain.sub.https.html]
   [Parent to child1: setting document.domain must not give sync access]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [Parent to child2: setting document.domain must not give sync access]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [child1: originAgentCluster must equal true]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [child2: originAgentCluster must equal true]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini
index f67db42..1d37b55 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html.ini
@@ -1,20 +1,23 @@
 [parent-yes-child1-no-subdomain-child2-no-subdomain.sub.https.html]
   [Parent to child1: setting document.domain must not give sync access]
     expected:
+      if (flag_specific == "") and (product == "chrome"): FAIL
       if flag_specific == "disable-site-isolation-trials": FAIL
 
   [Parent to child2: setting document.domain must not give sync access]
     expected:
+      if (flag_specific == "") and (product == "chrome"): FAIL
       if flag_specific == "disable-site-isolation-trials": FAIL
 
   [parent: originAgentCluster must equal true]
     expected:
+      if (flag_specific == "") and (product == "chrome"): FAIL
       if flag_specific == "disable-site-isolation-trials": FAIL
 
-  [child1: originAgentCluster must equal false]
+  [child2: originAgentCluster must equal false]
     expected:
       if flag_specific == "disable-layout-ng": [PASS, FAIL]
 
-  [child2: originAgentCluster must equal false]
+  [child1: originAgentCluster must equal false]
     expected:
       if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini
index 280b292..f01d1fb 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-no-subdomain2.sub.https.html.ini
@@ -10,15 +10,3 @@
       if (flag_specific == "") and (product == "chrome"): PASS
       if flag_specific == "disable-site-isolation-trials": PASS
       FAIL
-
-  [Parent to child1: setting document.domain must not give sync access]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
-
-  [Parent to child2: setting document.domain must not give sync access]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
-
-  [parent: originAgentCluster must equal true]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini
index a21f71a..55c95079 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain.sub.https.html.ini
@@ -10,11 +10,3 @@
   [parent: originAgentCluster must equal true]
     expected:
       if product == "chrome": FAIL
-
-  [child2: originAgentCluster must equal false]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
-
-  [child1: originAgentCluster must equal false]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini
index 92198b4..9bcd0656 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html.ini
@@ -1,26 +1,24 @@
 [parent-yes-child1-no-subdomain-child2-yes-subdomain2.sub.https.html]
   [Parent to child1: setting document.domain must not give sync access]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
-
-  [parent: originAgentCluster must equal true]
-    expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
-
-  [child2 to child1: setting document.domain must not give sync access]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
-
-  [child1 to child2: setting document.domain must not give sync access]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
-
-  [child2: originAgentCluster must equal true]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [Parent to child2: setting document.domain must not give sync access]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [child1 to child2: setting document.domain must not give sync access]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [child2 to child1: setting document.domain must not give sync access]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [parent: originAgentCluster must equal true]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [child2: originAgentCluster must equal true]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini
index 8349778..86a8d77f 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html.ini
@@ -1,12 +1,10 @@
 [parent-yes-child1-no-subdomain-child2-yes-subdomainport.sub.https.html]
   [Parent to child1: setting document.domain must not give sync access]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
+      if product == "chrome": FAIL
 
   [parent: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-
-  [child1: originAgentCluster must equal false]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini
index a3efc434..ec6bf68 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-no-port.sub.https.html.ini
@@ -5,4 +5,16 @@
 
   [parent: originAgentCluster must equal true]
     expected:
-      if product == "chrome": FAIL
+      if (flag_specific == "") and (product == "chrome"): FAIL
+
+  [child1: originAgentCluster must equal true]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [child1 to child2: setting document.domain must not give sync access]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [child2 to child1: setting document.domain must not give sync access]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini
index 7542bf6..3be8b66 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html.ini
@@ -1,8 +1,7 @@
 [parent-yes-child1-yes-subdomain-child2-yes-subdomain.sub.https.html]
   [parent: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if product == "chrome": FAIL
 
   [child1: originAgentCluster must equal true]
     expected:
@@ -11,11 +10,3 @@
   [child2: originAgentCluster must equal true]
     expected:
       if flag_specific == "disable-site-isolation-trials": FAIL
-
-  [Parent to child1: setting document.domain must not give sync access]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
-
-  [Parent to child2: setting document.domain must not give sync access]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini
index cb8c40e..37913c2 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/2-iframes/parent-yes-child1-yes-subdomain-child2-yes-subdomainport.sub.https.html.ini
@@ -2,13 +2,8 @@
   [parent: originAgentCluster must equal true]
     expected:
       if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+      if flag_specific == "disable-site-isolation-trials": FAIL
 
   [child1: originAgentCluster must equal true]
     expected:
-      if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
-      if os == "win": FAIL
-
-  [Parent to child1: setting document.domain must not give sync access]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+      if (flag_specific == "") and (os == "win"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/document-domain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/document-domain.sub.https.html.ini
index 7e0e5a2..94dbfbd 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/document-domain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/document-domain.sub.https.html.ini
@@ -1,5 +1,9 @@
 [document-domain.sub.https.html]
   [Setting document.domain must not change same-originness]
     expected:
-      if (product == "content_shell") and (flag_specific == "") and (os == "linux"): FAIL
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
       if product == "chrome": FAIL
+
+  [Having an origin-keyed subdomain child try to set document.domain must not change the document.domain value it sees]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/javascript-url-yes.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/javascript-url-yes.https.html.ini
new file mode 100644
index 0000000..189de04
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/javascript-url-yes.https.html.ini
@@ -0,0 +1,3 @@
+[javascript-url-yes.https.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/removed-iframe.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/removed-iframe.sub.https.html.ini
deleted file mode 100644
index dd33a86..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/removed-iframe.sub.https.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[removed-iframe.sub.https.html]
-  [Removing the iframe does not change originAgentCluster]
-    expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-no.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-no.https.html.ini
index 6739f44..ba59a28 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-no.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-no.https.html.ini
@@ -2,3 +2,4 @@
   [originAgentCluster must equal false]
     expected:
       if (flag_specific == "") and (product == "content_shell"): FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-yes.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-yes.https.html.ini
index e6f5815..14cb1e6c 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-yes.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/sandboxed-same-origin-iframe-yes.https.html.ini
@@ -1,5 +1,4 @@
 [sandboxed-same-origin-iframe-yes.https.html]
   [originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-port.sub.https.html.ini
deleted file mode 100644
index 43e1bec..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-port.sub.https.html.ini
+++ /dev/null
@@ -1,15 +0,0 @@
-[parent-no-1-no-same-2-yes-port.sub.https.html]
-  [before parent: originAgentCluster must equal false]
-    expected:
-      if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [PASS, FAIL]
-      if os == "win": FAIL
-
-  [before child: originAgentCluster must equal false]
-    expected:
-      if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [PASS, FAIL]
-      if os == "win": FAIL
-
-  [after parent: originAgentCluster must equal false]
-    expected:
-      if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [PASS, FAIL]
-      if os == "win": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini
index 9ebe293..5d7ca4c 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-same-2-yes-subdomain.sub.https.html.ini
@@ -1,18 +1,22 @@
 [parent-no-1-no-same-2-yes-subdomain.sub.https.html]
   [before parent: originAgentCluster must equal false]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
-      if (flag_specific == "") and (os == "win"): [PASS, FAIL]
-      if flag_specific == "disable-layout-ng": FAIL
+      if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
+      if (os == "linux") and (flag_specific == "disable-layout-ng"): [PASS, FAIL]
+      if os == "win": FAIL
 
   [before child: originAgentCluster must equal false]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
-      if (flag_specific == "") and (os == "win"): [PASS, FAIL]
-      if flag_specific == "disable-layout-ng": FAIL
+      if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
+      if (os == "linux") and (flag_specific == "disable-layout-ng"): [PASS, FAIL]
+      if os == "win": FAIL
 
   [after parent: originAgentCluster must equal false]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
-      if (flag_specific == "") and (os == "win"): [PASS, FAIL]
-      if flag_specific == "disable-layout-ng": FAIL
+      if (os == "linux") and (flag_specific == "disable-layout-ng"): [PASS, FAIL]
+      if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
+      if os == "win": FAIL
+
+  [after child: originAgentCluster must equal true]
+    expected:
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini
index 5a2bf36..ab1164f 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html.ini
@@ -1,20 +1,30 @@
 [parent-no-1-no-subdomain-2-yes-subdomain.sub.https.html]
   [Before: parent to child: setting document.domain must give sync access]
     expected:
-      if (flag_specific == "") and (product == "chrome"): PASS
-      if flag_specific == "disable-site-isolation-trials": PASS
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
+      if product == "chrome": PASS
       FAIL
 
   [After: parent to child: setting document.domain must give sync access]
     expected:
-      if (flag_specific == "") and (product == "chrome"): PASS
-      if flag_specific == "disable-site-isolation-trials": PASS
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
+      if product == "chrome": PASS
       FAIL
 
   [before parent: originAgentCluster must equal false]
     expected:
-      if os == "win": FAIL
+      if (flag_specific == "") and (os == "win"): FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [after parent: originAgentCluster must equal false]
     expected:
-      if os == "win": FAIL
+      if (flag_specific == "") and (os == "win"): FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [after child: originAgentCluster must equal false]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+
+  [before child: originAgentCluster must equal false]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini
index 965bd25b..d529cf9 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-no-subdomain-2-yes-subdomain2.sub.https.html.ini
@@ -5,10 +5,14 @@
       if flag_specific == "disable-site-isolation-trials": PASS
       FAIL
 
-  [After: parent to child: setting document.domain must not give sync access]
+  [before child: originAgentCluster must equal false]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if os == "win": [PASS, FAIL]
 
-  [after child: originAgentCluster must equal true]
+  [before parent: originAgentCluster must equal false]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if os == "win": [PASS, FAIL]
+
+  [after parent: originAgentCluster must equal false]
+    expected:
+      if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini
index cdecdf4..29817d3c 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-subdomain-yes-2-subdomain2-no.sub.https.html.ini
@@ -4,19 +4,3 @@
       if (flag_specific == "") and (product == "chrome"): PASS
       if flag_specific == "disable-site-isolation-trials": PASS
       FAIL
-
-  [after parent: originAgentCluster must equal false]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [before parent: originAgentCluster must equal false]
-    expected:
-      if flag_specific == "disable-layout-ng": FAIL
-
-  [Before: parent to child: setting document.domain must not give sync access]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
-
-  [before child: originAgentCluster must equal true]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini
index 44d462e..5d4c18e3 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html.ini
@@ -1,16 +1,16 @@
 [parent-no-1-yes-subdomain-2-no-subdomain.sub.https.html]
   [before parent: originAgentCluster must equal false]
     expected:
-      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
 
   [before child: originAgentCluster must equal true]
     expected:
-      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
 
   [after parent: originAgentCluster must equal false]
     expected:
-      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
 
   [after child: originAgentCluster must equal true]
     expected:
-      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-port.sub.https.html.ini
index 1b2843b..cb86ed17 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-port.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-port.sub.https.html.ini
@@ -2,22 +2,26 @@
   [before parent: originAgentCluster must equal true]
     expected:
       if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
+      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [before child: originAgentCluster must equal true]
     expected:
       if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
+      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [After: parent to child: setting document.domain must not give sync access]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
+      if product == "chrome": FAIL
 
   [after parent: originAgentCluster must equal true]
     expected:
       if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
+      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
 
   [after child: originAgentCluster must equal false]
     expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
+      if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini
index 7c6b0a8..0efd664 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/iframe-navigation/parent-yes-1-no-same-2-no-subdomain.sub.https.html.ini
@@ -1,19 +1,16 @@
 [parent-yes-1-no-same-2-no-subdomain.sub.https.html]
   [before parent: originAgentCluster must equal true]
     expected:
-      if (product == "content_shell") and (os == "win"): [PASS, FAIL]
-      if product == "chrome": FAIL
-
-  [After: parent to child: setting document.domain must not give sync access]
-    expected:
       if product == "chrome": FAIL
 
   [after parent: originAgentCluster must equal true]
     expected:
-      if (product == "content_shell") and (os == "win"): [PASS, FAIL]
       if product == "chrome": FAIL
 
   [before child: originAgentCluster must equal true]
     expected:
-      if (product == "content_shell") and (os == "win"): [PASS, FAIL]
+      if product == "chrome": FAIL
+
+  [After: parent to child: setting document.domain must not give sync access]
+    expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-port.sub.https.html.ini
index 81caef44d..8d87ab4 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-port.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-port.sub.https.html.ini
@@ -1,4 +1,5 @@
 [opener-no-openee-yes-port.sub.https.html]
   [opener: originAgentCluster must equal false]
     expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
+      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-subdomain.sub.https.html.ini
index ae12aa8..53f643b 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-no-openee-yes-subdomain.sub.https.html.ini
@@ -6,4 +6,4 @@
 
   [openee: originAgentCluster must equal true]
     expected:
-      if os == "win": [PASS, FAIL]
+      if (flag_specific == "") and (os == "win"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-port.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-port.sub.https.html.ini
index 8af48a3..6cfbabf 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-port.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-port.sub.https.html.ini
@@ -1,10 +1,10 @@
 [opener-yes-openee-no-port.sub.https.html]
   [setting document.domain must not give sync access]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
       if flag_specific == "disable-layout-ng": FAIL
 
   [opener: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
       if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-same.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-same.sub.https.html.ini
index 053a0b7..e9d47544 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-same.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-same.sub.https.html.ini
@@ -1,10 +1,8 @@
 [opener-yes-openee-no-same.sub.https.html]
   [opener: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if product == "chrome": FAIL
 
   [openee: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-subdomain.sub.https.html.ini
index 89d6e4a..83fcc1f 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-no-subdomain.sub.https.html.ini
@@ -9,5 +9,4 @@
 
   [openee: originAgentCluster must equal false]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
       if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-subdomain.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-subdomain.sub.https.html.ini
index 42f89ad..d0fc030 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-subdomain.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/popups/opener-yes-openee-yes-subdomain.sub.https.html.ini
@@ -5,4 +5,5 @@
 
   [opener: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/removing-iframes.sub.https.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/removing-iframes.sub.https.html.ini
index cb65787..d943b31 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/removing-iframes.sub.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/origin-keyed-agent-clusters/removing-iframes.sub.https.html.ini
@@ -13,20 +13,16 @@
 
   [Before: setting document.domain must not give sync access]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
       if flag_specific == "disable-site-isolation-trials": FAIL
 
   [parent: originAgentCluster must equal true]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
       if flag_specific == "disable-site-isolation-trials": FAIL
 
   [Parent to child2: setting document.domain must not give sync access]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
       if flag_specific == "disable-site-isolation-trials": FAIL
 
   [Parent to child3: setting document.domain must not give sync access]
     expected:
-      if (flag_specific == "") and (product == "chrome"): FAIL
       if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/noopener-noreferrer-BarProp.window.js.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/noopener-noreferrer-BarProp.window.js.ini
new file mode 100644
index 0000000..8e27e3b6
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/noopener-noreferrer-BarProp.window.js.ini
@@ -0,0 +1,3 @@
+[noopener-noreferrer-BarProp.window.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-is-popup-condition.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-is-popup-condition.html.ini
index 55d79a7f..485b254 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-is-popup-condition.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-is-popup-condition.html.ini
@@ -1,11 +1,11 @@
 [open-features-is-popup-condition.html?position]
 
 [open-features-is-popup-condition.html?single-2]
-  expected:
-    if product == "chrome": ERROR
 
 [open-features-is-popup-condition.html?single-1]
   expected:
-    if product == "chrome": [TIMEOUT, ERROR]
+    if product == "chrome": ERROR
 
 [open-features-is-popup-condition.html?combination]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-width.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-width.html.ini
deleted file mode 100644
index 1e059b0..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-non-integer-width.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[open-features-non-integer-width.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-innerheight-innerwidth.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-innerheight-innerwidth.html.ini
deleted file mode 100644
index ccc3a0f..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-innerheight-innerwidth.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[open-features-tokenization-innerheight-innerwidth.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left.html.ini
index dc5fb3e..e05e8a3 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left.html.ini
@@ -1,4 +1,6 @@
 [open-features-tokenization-top-left.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
   [",,top= 152, left=152" should set top and left position of opened window]
     expected:
       if product == "chrome": PASS
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-width-height.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-width-height.html.ini
index cf35157..25200b9 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-width-height.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-width-height.html.ini
@@ -1,3 +1,3 @@
 [open-features-tokenization-width-height.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini
index 959e13b..ababd53 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-open-noopener.html.ini
@@ -1,9 +1,9 @@
+[window-open-noopener.html?_parent]
+
+[window-open-noopener.html?_top]
+
 [window-open-noopener.html?_self]
 
 [window-open-noopener.html?indexed]
   expected:
-    if product == "chrome": ERROR
-
-[window-open-noopener.html?_top]
-
-[window-open-noopener.html?_parent]
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini
index 04c2b50..84c7205f 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini
@@ -1,11 +1,13 @@
 [offscreencanvas.resize.html]
   [Verify that resizing an OffscreenCanvas with a webgl context propagates the new size to its placeholder canvas asynchronously.]
     expected:
-      if (os == "linux") and (flag_specific == "") and (product == "chrome"): FAIL
-      if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [PASS, FAIL]
+      if product == "chrome": FAIL
 
   [Verify that drawImage uses the size of the frame as the intinsic size of a placeholder canvas.]
     expected:
-      if (flag_specific == "") and (os == "win"): PASS
-      if flag_specific == "disable-layout-ng": PASS
+      if flag_specific == "disable-site-isolation-trials": PASS
       FAIL
+
+  [Verify that resizing an OffscreenCanvas with a 2d context propagates the new size to its placeholder canvas asynchronously.]
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js.ini
index e304d0e0..b6774be 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js.ini
@@ -1,3 +1,5 @@
 [dedicated-worker.https.window.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
   [fetch cross-origin + credentialless worker]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/cross-origin-isolated-permission-worker.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/cross-origin-isolated-permission-worker.https.window.js.ini
index 6e7bbd4c..1cda6978 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/cross-origin-isolated-permission-worker.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/cross-origin-isolated-permission-worker.https.window.js.ini
@@ -1,3 +1,5 @@
 [cross-origin-isolated-permission-worker.https.window.html]
+  expected:
+    if os == "win": TIMEOUT
   [shared_worker (withCoopCoep: true) cross origin isolated permission test]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https.html.ini
index af2cc24d..dd9391b4 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https.html.ini
@@ -1,6 +1,6 @@
 [dedicated-worker.https.html]
   expected:
-    if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
   [COEP: require-corp worker in COEP: none frame]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html.ini
index 519a300a..87f642f 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html.ini
@@ -1,6 +1,6 @@
 [reporting-subresource-corp.https.html]
   expected:
-    if product == "chrome": [OK, TIMEOUT]
+    if (flag_specific == "") and (product == "chrome"): TIMEOUT
   [[dedicated worker\] blocked due to COEP]
     expected: FAIL
 
@@ -13,14 +13,14 @@
   [[shared worker\] blocked during redirect]
     expected: FAIL
 
-  [[service worker\] blocked during redirect]
+  [[between service worker and page\] blocked during redirect]
     expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+      if product == "chrome": NOTRUN
+
+  [[between service worker and page\] blocked due to COEP]
+    expected:
+      if product == "chrome": TIMEOUT
 
   [destination: script]
     expected:
-      if product == "chrome": [PASS, NOTRUN]
-
-  [[between service worker and page\] blocked during redirect]
-    expected:
-      if product == "chrome": [PASS, TIMEOUT]
+      if product == "chrome": NOTRUN
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-cross-origin.https.html.ini
new file mode 100644
index 0000000..02e5a98
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-cross-origin.https.html.ini
@@ -0,0 +1,3 @@
+[coep-with-cross-origin.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-same-site.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-same-site.https.html.ini
new file mode 100644
index 0000000..7938d8f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/coep-with-same-site.https.html.ini
@@ -0,0 +1,3 @@
+[coep-with-same-site.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-failures.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-failures.https.html.ini
index 46f1485..0395d58 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-failures.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-failures.https.html.ini
@@ -1,9 +1,9 @@
-[header-parsing-failures.https.html?9-12]
+[header-parsing-failures.https.html?1-4]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, ERROR]
 
 [header-parsing-failures.https.html?12-last]
 
-[header-parsing-failures.https.html?5-8]
+[header-parsing-failures.https.html?9-12]
 
-[header-parsing-failures.https.html?1-4]
+[header-parsing-failures.https.html?5-8]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-non-ascii.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-non-ascii.https.html.ini
index 352e7aa..fd3dc93 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-non-ascii.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/header-parsing-non-ascii.https.html.ini
@@ -1,3 +1,3 @@
 [header-parsing-non-ascii.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html.ini
deleted file mode 100644
index 0dbd28d2..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html]
-  expected:
-    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html.ini
new file mode 100644
index 0000000..8d718f6b6
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html.ini
@@ -0,0 +1,3 @@
+[popup-same-site-unsafe-allow-outgoing-with-same-site.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html.ini
deleted file mode 100644
index 7ea4330..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popup-same-site-with-cross-origin.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.ini
deleted file mode 100644
index 71fe175..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popup-same-site-with-same-origin.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini
index 9813f106..22875a6 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.ini
@@ -16,4 +16,4 @@
 
 [iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html?9-last]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.ini
index 514b6a3..cf64fdc 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.ini
@@ -3,8 +3,6 @@
     if product == "chrome": ERROR
 
 [iframe-popup-same-origin-to-same-origin.https.html?5-6]
-  expected:
-    if product == "chrome": ERROR
 
 [iframe-popup-same-origin-to-same-origin.https.html?9-last]
   expected:
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.ini
index 8eec163..872be04 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.ini
@@ -11,6 +11,8 @@
     if product == "chrome": ERROR
 
 [iframe-popup-same-origin-to-unsafe-none.https.html?9-last]
+  expected:
+    if product == "chrome": ERROR
 
 [iframe-popup-same-origin-to-unsafe-none.https.html?3-4]
   expected:
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.ini
index 3e09c28..57821696 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.ini
@@ -4,7 +4,7 @@
 
 [iframe-popup-unsafe-none-to-same-origin.https.html?9-last]
   expected:
-    if product == "chrome": [ERROR, OK]
+    if product == "chrome": [OK, CRASH]
 
 [iframe-popup-unsafe-none-to-same-origin.https.html?7-8]
   expected:
@@ -16,4 +16,4 @@
 
 [iframe-popup-unsafe-none-to-same-origin.https.html?5-6]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [ERROR, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/javascript-url.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/javascript-url.https.html.ini
index 7ffc85b1..808835a 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/javascript-url.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/javascript-url.https.html.ini
@@ -4,26 +4,30 @@
 
 [javascript-url.https.html?3-4]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [ERROR, CRASH]
 
 [javascript-url.https.html?11-12]
   expected:
     if product == "chrome": ERROR
 
 [javascript-url.https.html?13-14]
+  expected:
+    if product == "chrome": [OK, ERROR]
 
 [javascript-url.https.html?15-16]
   expected:
     if product == "chrome": ERROR
 
 [javascript-url.https.html?17-last]
-  expected:
-    if product == "chrome": ERROR
 
 [javascript-url.https.html?5-6]
   expected:
     if product == "chrome": ERROR
 
 [javascript-url.https.html?7-8]
+  expected:
+    if product == "chrome": ERROR
 
 [javascript-url.https.html?9-10]
+  expected:
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-to-aboutblank.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-to-aboutblank.https.html.ini
index 056fc91f..3cc47436 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-to-aboutblank.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-to-aboutblank.https.html.ini
@@ -1,3 +1,3 @@
 [navigate-to-aboutblank.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html.ini
index d5c6b762..9a870f3 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html.ini
@@ -1,6 +1,4 @@
 [navigate-top-to-aboutblank.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
   [Navigate top to about:blank from iframe with opener COOP: |header(Cross-Origin-Opener-Policy,same-origin), iframe origin: https://www1.web-platform.test:8444]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html.ini
index 99d5850..116d941 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html.ini
@@ -10,4 +10,4 @@
 
 [popup-redirect-cache.https.html?8-last]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https.html.ini
new file mode 100644
index 0000000..bfc9a64
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https.html.ini
@@ -0,0 +1,3 @@
+[popup-redirect-same-origin-allow-popups.https.html]
+  expected:
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.ini
deleted file mode 100644
index 78395f06..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popup-same-origin-allow-popups-with-cross-origin.https.html]
-  expected:
-    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html.ini
deleted file mode 100644
index b3e0ea1fa..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popup-same-origin-allow-popups-with-same-origin.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html.ini
new file mode 100644
index 0000000..5edb38c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html.ini
@@ -0,0 +1,3 @@
+[popup-same-origin-with-cross-origin.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html.ini
deleted file mode 100644
index f1d91d7..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popup-same-origin-with-same-origin.https.html]
-  expected:
-    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html.ini
new file mode 100644
index 0000000..1693ee1
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html.ini
@@ -0,0 +1,3 @@
+[popup-unsafe-none-with-cross-origin.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html.ini
deleted file mode 100644
index ccfbd06..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popup-unspecified-with-same-site.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-with-structured-header.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-with-structured-header.https.html.ini
deleted file mode 100644
index 6da6ff1..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-with-structured-header.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popup-with-structured-header.https.html]
-  expected:
-    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro_cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro_cross-origin.https.html.ini
index c525d52..e85ff72 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro_cross-origin.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro_cross-origin.https.html.ini
@@ -1,3 +1,10 @@
 [access-from-coop-page-to-openee_coop-ro_cross-origin.https.html]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, ERROR]
+  [access-from-coop-page-to-openee, cross-origin + redirect]
+    expected:
+      if product == "chrome": FAIL
+
+  [access-from-coop-page-to-openee, cross-origin]
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro_cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro_cross-origin.https.html.ini
index 020e7cc3..175280c 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro_cross-origin.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro_cross-origin.https.html.ini
@@ -1,9 +1,10 @@
 [access-from-coop-page-to-opener_coop-ro_cross-origin.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
   [access-from-coop-page-to-opener, cross-origin + redirect]
     expected:
       if product == "chrome": FAIL
 
   [access-from-coop-page-to-opener, cross-origin]
     expected:
-      if (product == "content_shell") and (os == "win"): [PASS, FAIL]
-      if product == "chrome": FAIL
+      if (os == "linux") and (product == "chrome"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html.ini
index dd923b49..999c88e2 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https.html.ini
@@ -1,3 +1,3 @@
 [access-from-coop-page-to-other_coop-ro.https.html]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [ERROR, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html.ini
index eeab671e..45761bca 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https.html.ini
@@ -1,10 +1,3 @@
 [access-to-coop-page-from-openee_coop-ro.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
-  [access-to-coop-page-from-openee, same-origin]
-    expected:
-      if product == "chrome": FAIL
-
-  [access-to-coop-page-from-openee, same-origin + redirect]
-    expected:
-      if product == "chrome": FAIL
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini
index f90dfad..c12963c3 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html.ini
@@ -1,3 +1,8 @@
 [access-to-coop-page-from-openee_coop-ro_cross-origin.https.html]
-  expected:
-    if product == "chrome": ERROR
+  [access-to-coop-page-from-openee, cross-origin]
+    expected:
+      if product == "chrome": FAIL
+
+  [access-to-coop-page-from-openee, cross-origin + redirect)]
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-opener_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-opener_coop-ro.https.html.ini
index 11bfb9c..cde27b4c 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-opener_coop-ro.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-opener_coop-ro.https.html.ini
@@ -1,10 +1,10 @@
 [access-to-coop-page-from-opener_coop-ro.https.html]
   expected:
     if product == "chrome": [OK, ERROR]
-  [access-to-coop-page-from-opener, same-origin + redirect]
+  [access-to-coop-page-from-opener, same-origin]
     expected:
       if product == "chrome": FAIL
 
-  [access-to-coop-page-from-opener, same-origin]
+  [access-to-coop-page-from-opener, same-origin + redirect]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro.https.html.ini
index 22693c3..12463d2 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro.https.html.ini
@@ -1,6 +1,3 @@
 [access-to-coop-page-from-other_coop-ro.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
-  [access-to-coop-page-from-other (COOP-RO)]
-    expected:
-      if product == "chrome": FAIL
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html.ini
index f9427b9..152c3587 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html.ini
@@ -1,10 +1,8 @@
 [property-blur.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
-  [same-origin > w => w.blur()]
+  [cross-origin > w => w.blur()]
     expected:
       if product == "chrome": FAIL
 
-  [cross-origin > w => w.blur()]
+  [same-origin > w => w.blur()]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-close.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-close.https.html.ini
index 1b5d3197..d060d8a9 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-close.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-close.https.html.ini
@@ -1,4 +1,6 @@
 [property-close.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
   [cross-origin > w => w.close()]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html.ini
index fe1896e..01f4fcd 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https.html.ini
@@ -1,4 +1,3 @@
 [property-frames.https.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, TIMEOUT]
     if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-indexed-getter.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-indexed-getter.https.html.ini
new file mode 100644
index 0000000..4186abaa
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-indexed-getter.https.html.ini
@@ -0,0 +1,3 @@
+[property-indexed-getter.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-get.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-get.https.html.ini
index e48075c..dcfc817 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-get.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-get.https.html.ini
@@ -1,10 +1,3 @@
 [property-location-get.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
-  [same-origin > w => w.location]
-    expected:
-      if product == "chrome": FAIL
-
-  [cross-origin > w => w.location]
-    expected:
-      if product == "chrome": FAIL
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html.ini
index 175abd5..e016cf9 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https.html.ini
@@ -1,10 +1,3 @@
 [property-location-set.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
-  [cross-origin > w => w.location = "#"]
-    expected:
-      if product == "chrome": FAIL
-
-  [same-origin > w => w.location = "#"]
-    expected:
-      if product == "chrome": FAIL
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html.ini
index 76173f05..e053a92 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html.ini
@@ -1,3 +1,10 @@
 [property-opener-get.https.html]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, ERROR]
+  [cross-origin > w => w.opener]
+    expected:
+      if product == "chrome": FAIL
+
+  [same-origin > w => w.opener]
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-set.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-set.https.html.ini
new file mode 100644
index 0000000..5111ef2
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-set.https.html.ini
@@ -0,0 +1,3 @@
+[property-opener-set.https.html]
+  expected:
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html.ini
index a7e407d..943353e 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html.ini
@@ -1,10 +1,8 @@
 [property-postmessage-1.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
-  [cross-origin > w => w.postMessage("", "")]
+  [same-origin > w => w.postMessage("", "")]
     expected:
       if product == "chrome": FAIL
 
-  [same-origin > w => w.postMessage("", "")]
+  [cross-origin > w => w.postMessage("", "")]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html.ini
index 189215bc..911a48f 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html.ini
@@ -1,3 +1,10 @@
 [property-self.https.html]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, ERROR]
+  [cross-origin > w => w.self]
+    expected:
+      if product == "chrome": FAIL
+
+  [same-origin > w => w.self]
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html.ini
index c79fa35..615e9be3 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html.ini
@@ -1,6 +1,6 @@
 [property-top.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if (os == "linux") and (product == "chrome"): [OK, ERROR]
   [cross-origin > w => w.top]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html.ini
index 799db67..78ab09d 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https.html.ini
@@ -1,10 +1,3 @@
 [property-window.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
-  [same-origin > w => w.window]
-    expected:
-      if product == "chrome": FAIL
-
-  [cross-origin > w => w.window]
-    expected:
-      if product == "chrome": FAIL
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html.ini
index d4653ba..46d3e245 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https.html.ini
@@ -1,10 +1,3 @@
 [report-to-both_coop-ro.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
-  [Access from openee]
-    expected:
-      if product == "chrome": FAIL
-
-  [Access from opener]
-    expected:
-      if product == "chrome": FAIL
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/report-to-both_coop-ro.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/report-to-both_coop-ro.https.html.ini
index d4653ba..290a306 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/report-to-both_coop-ro.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/report-to-both_coop-ro.https.html.ini
@@ -1,6 +1,6 @@
 [report-to-both_coop-ro.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": [ERROR, OK]
   [Access from openee]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-unsafe-none.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-unsafe-none.https.html.ini
index c95c9d42..1623940 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-unsafe-none.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/reporting/document-reporting/reporting-redirect-with-unsafe-none.https.html.ini
@@ -1,10 +1,8 @@
 [reporting-redirect-with-unsafe-none.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
-  [Same origin openee redirected to same-origin with unsafe-none]
+  [Cross origin openee redirected to same-origin with unsafe-none]
     expected:
       if product == "chrome": FAIL
 
-  [Cross origin openee redirected to same-origin with unsafe-none]
+  [Same origin openee redirected to same-origin with unsafe-none]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/resource-popup.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/resource-popup.https.html.ini
deleted file mode 100644
index f030a18..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/resource-popup.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[resource-popup.https.html]
-  expected:
-    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.ini
index 5c47e17f..f8a499ba 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.ini
@@ -4,7 +4,7 @@
 
 [iframe-popup-to-so.https.html?5-6]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
 
 [iframe-popup-to-so.https.html?3-4]
   expected:
@@ -15,5 +15,3 @@
     if product == "chrome": ERROR
 
 [iframe-popup-to-so.https.html?9-last]
-  expected:
-    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.ini
index 8fa475c..275706e 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.ini
@@ -1,4 +1,6 @@
 [iframe-popup-to-un.https.html?3-4]
+  expected:
+    if product == "chrome": ERROR
   [COOP: restrict-properties to popup COOP: unsafe-none via an iframe, with cross origin iframe, same origin popup with window_open]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.ini
index 463b52a..81084dfe 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.ini
@@ -1,3 +1,3 @@
 [popup-so.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html.ini
index e594813..2381405 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html.ini
@@ -1,4 +1,6 @@
 [popup-u.https.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
   [SAME_ORIGIN popup with coop restrict-properties]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.ini b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.ini
index f97561b..4e17baa 100644
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.ini
@@ -1,6 +1,6 @@
 [popup-with-cross-origin.https.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
   [Cross-origin popup with empty coop]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html.ini b/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html.ini
index 3961170..1c33dce5 100644
--- a/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html.ini
@@ -1,4 +1,5 @@
 [remove-attr-script-keeps-blocking.tentative.html]
   [Rendering is blocked before render-blocking resources are loaded]
     expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
+      if (flag_specific == "") and (os == "win"): FAIL
+      if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html.ini b/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html.ini
new file mode 100644
index 0000000..90456db
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html.ini
@@ -0,0 +1,3 @@
+[change-src-while-not-displayed.html]
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html.ini
index dcd72bec..782dea7 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html.ini
@@ -1,5 +1,5 @@
 [resource-selection-invoke-audio-constructor.html]
   [invoking resource selection with new Audio(src)]
     expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): PASS
       FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini
index 90dedab..e889ab7 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html.ini
@@ -1,5 +1,3 @@
 [resource-selection-invoke-pause-networkState.html]
   [NOT invoking resource selection with pause() when networkState is not NETWORK_EMPTY]
-    expected:
-      if flag_specific == "disable-site-isolation-trials": PASS
-      FAIL
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState.html.ini
index c3ac9d72..c347625 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState.html.ini
@@ -1,5 +1,5 @@
 [resource-selection-invoke-remove-from-document-networkState.html]
   [NOT invoking resource selection with implicit pause() when networkState is not NETWORK_EMPTY]
     expected:
-      if product == "chrome": PASS
+      if os == "win": PASS
       FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src.html.ini
index 8bf8c9cd..9d0eb977 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src.html.ini
@@ -1,4 +1,5 @@
 [resource-selection-invoke-remove-src.html]
   [NOT invoking media load or resource selection when removing the src attribute]
     expected:
-      if product == "chrome": [PASS, FAIL]
+      if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [PASS, FAIL]
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html.ini
index ff3d9aa..7fe38a1 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html.ini
@@ -1,3 +1,5 @@
 [resource-selection-invoke-set-src-not-in-document.html]
   [invoking load by setting src on video not in a document]
-    expected: FAIL
+    expected:
+      if flag_specific == "disable-layout-ng": [FAIL, PASS]
+      FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src.html.ini
index 87b5d61..c0581652 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src.html.ini
@@ -1,5 +1,3 @@
 [resource-selection-invoke-set-src.html]
   [invoking load by setting src]
-    expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): PASS
-      FAIL
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-removed.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-removed.html.ini
new file mode 100644
index 0000000..6bcd804
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-removed.html.ini
@@ -0,0 +1,4 @@
+[track-cue-rendering-after-controls-removed.html]
+  expected:
+    if (flag_specific == "") and (os == "win"): FAIL
+    if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
index 7d22c448..b0a68eb 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
@@ -1,5 +1,4 @@
 [sandbox-top-navigation-child-special-cases.tentative.sub.window.html]
   expected:
-    if (product == "content_shell") and (flag_specific == "") and (os == "win"): [OK, TIMEOUT]
-    if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT]
+    if (product == "content_shell") and (flag_specific == "") and (os == "linux"): TIMEOUT
     if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini
index 2ad9ba9..ae3370f 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js.ini
@@ -1,3 +1,4 @@
 [sandbox-top-navigation-escalate-privileges.tentative.sub.window.html]
   expected:
     if (flag_specific == "") and (product == "chrome"): ERROR
+    if flag_specific == "disable-site-isolation-trials": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js.ini
index 0f880d1..3df57b35 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js.ini
@@ -1,3 +1,4 @@
 [sandbox-top-navigation-grandchild.tentative.sub.window.html]
   expected:
-    if product == "chrome": ERROR
+    if (flag_specific == "") and (product == "content_shell") and (os == "linux"): [OK, TIMEOUT]
+    if (flag_specific == "") and (product == "chrome"): ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-base-url-2.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-base-url-2.html.ini
index 2e3fbd9..51b5b40 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-base-url-2.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/image-loading-lazy-base-url-2.html.ini
@@ -1,5 +1,5 @@
 [image-loading-lazy-base-url-2.html]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [ERROR, OK]
   [When a loading=lazy image is loaded, it loads relative to the document's base URL computed at parse-time.]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-video-element/resize-during-playback.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-video-element/resize-during-playback.html.ini
index ce1e80b1..e1b14173 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-video-element/resize-during-playback.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-video-element/resize-during-playback.html.ini
@@ -1,7 +1,3 @@
 [resize-during-playback.html]
   [mp4 video]
     expected: FAIL
-
-  [webm video]
-    expected:
-      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini
index 499050f..c14d030 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini
@@ -1,8 +1,125 @@
 [urlencoded2.window.html]
   expected:
-    if os == "win": [OK, TIMEOUT]
+    if (os == "linux") and (flag_specific == "") and (product == "chrome"): [OK, TIMEOUT]
+    if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, TIMEOUT]
   [application/x-www-form-urlencoded: \\r\\n in filename (normal form)]
     expected: [PASS, NOTRUN]
 
   [application/x-www-form-urlencoded: \\r in filename (formdata event)]
     expected: [PASS, TIMEOUT]
+
+  [application/x-www-form-urlencoded: backslash in name (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: single quote in value (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: backslash in value (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: backslash in filename (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: double quote in name (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: single quote in name (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: single quote in value (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: non-ASCII in name and value (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: \\r\\n in filename (formdata event)]
+    expected:
+      if product == "chrome": [PASS, TIMEOUT]
+
+  [application/x-www-form-urlencoded: double quote in name (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: single quote in name (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: double quote in filename (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: single quote in filename (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: non-ASCII in filename (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: double quote in value (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: characters not in encoding in name and value (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: character not in encoding in filename (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: double quote in value (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: single quote in filename (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: non-ASCII in name and value (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: character not in encoding in filename (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: non-ASCII in filename (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: double quote in filename (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: \\n\\r in filename (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: backslash in name (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: backslash in filename (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: backslash in value (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: \\n\\r in filename (formdata event)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
+
+  [application/x-www-form-urlencoded: characters not in encoding in name and value (normal form)]
+    expected:
+      if product == "chrome": [PASS, NOTRUN]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-base-target.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-base-target.html.ini
index 790eba9e..ec6f83c 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-base-target.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-base-target.html.ini
@@ -1,3 +1,3 @@
 [rel-base-target.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-form-target.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-form-target.html.ini
deleted file mode 100644
index 0de06be7..0000000
--- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-target/rel-form-target.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[rel-form-target.html]
-  expected:
-    if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html.ini
index 2ea1f960..62d88ea7 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html.ini
@@ -1,5 +1,5 @@
 [selectmenu-form-state-restore.tentative.html]
   expected:
-    if (flag_specific == "") and (product == "chrome"): OK
-    if flag_specific == "disable-site-isolation-trials": OK
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): OK
+    if flag_specific == "disable-layout-ng": OK
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.js.ini b/third_party/blink/web_tests/external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.js.ini
index cff26e3..b9bd2a8 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.js.ini
@@ -1,10 +1,8 @@
 [activation-behavior.window.html]
   [<area> that is not connected should not be followed]
-    expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): PASS
-      FAIL
+    expected: FAIL
 
   [<a> that is not connected should be followed]
     expected:
-      if (flag_specific == "") and (product == "content_shell") and (os == "win"): [PASS, FAIL]
-      if (flag_specific == "") and (product == "content_shell") and (os == "linux"): FAIL
+      if (flag_specific == "") and (os == "linux") and (product == "chrome"): [PASS, FAIL]
+      if (flag_specific == "") and (os == "win"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
deleted file mode 100644
index 2059836..0000000
--- a/third_party/blink/web_tests/external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[htmlanchorelement_noopener.html]
-  expected:
-    if product == "chrome": ERROR
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window.js.ini b/third_party/blink/web_tests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window.js.ini
index b96d831f..a48a9a7 100644
--- a/third_party/blink/web_tests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window.js.ini
@@ -1,6 +1,6 @@
 [reload.window.html]
   expected:
-    if flag_specific == "disable-layout-ng": [TIMEOUT, CRASH]
+    if flag_specific == "disable-layout-ng": CRASH
     TIMEOUT
   [Reloading a document.open()'d page should reload the URL of the entry realm's responsible document]
     expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js.ini b/third_party/blink/web_tests/external/wpt/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js.ini
new file mode 100644
index 0000000..089911c7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js.ini
@@ -0,0 +1,9 @@
+[queue-microtask-exceptions.any.serviceworker.html]
+
+[queue-microtask-exceptions.any.sharedworker.html]
+
+[queue-microtask-exceptions.any.html]
+
+[queue-microtask-exceptions.any.worker.html]
+  expected:
+    if product == "chrome": [ERROR, OK]
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/timers/negative-settimeout.any.js.ini b/third_party/blink/web_tests/external/wpt/html/webappapis/timers/negative-settimeout.any.js.ini
new file mode 100644
index 0000000..4160c845
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/webappapis/timers/negative-settimeout.any.js.ini
@@ -0,0 +1,5 @@
+[negative-settimeout.any.html]
+
+[negative-settimeout.any.worker.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/idle-detection/idle-detection-allowed-by-permissions-policy.https.sub.html.ini b/third_party/blink/web_tests/external/wpt/idle-detection/idle-detection-allowed-by-permissions-policy.https.sub.html.ini
index 2e5bbac..6f363c1 100644
--- a/third_party/blink/web_tests/external/wpt/idle-detection/idle-detection-allowed-by-permissions-policy.https.sub.html.ini
+++ b/third_party/blink/web_tests/external/wpt/idle-detection/idle-detection-allowed-by-permissions-policy.https.sub.html.ini
@@ -14,6 +14,3 @@
 
   [Permissions-Policy idle-detection=* explicity set by top-level frame allows workers in cross-origin iframes.]
     expected: NOTRUN
-
-  [Inherited header permissions policy allows dedicated workers.]
-    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/custom-elements/upgrading.html.ini b/third_party/blink/web_tests/external/wpt/infrastructure/assumptions/non-secure-context.any.js.ini
similarity index 60%
rename from third_party/blink/web_tests/external/wpt/custom-elements/upgrading.html.ini
rename to third_party/blink/web_tests/external/wpt/infrastructure/assumptions/non-secure-context.any.js.ini
index 65ce3fa..45252c4 100644
--- a/third_party/blink/web_tests/external/wpt/custom-elements/upgrading.html.ini
+++ b/third_party/blink/web_tests/external/wpt/infrastructure/assumptions/non-secure-context.any.js.ini
@@ -1,3 +1,5 @@
-[upgrading.html]
+[non-secure-context.any.worker.html]
   expected:
     if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
+
+[non-secure-context.any.html]
diff --git a/third_party/blink/web_tests/external/wpt/infrastructure/server/webtransport-h3.https.sub.any.js.ini b/third_party/blink/web_tests/external/wpt/infrastructure/server/webtransport-h3.https.sub.any.js.ini
new file mode 100644
index 0000000..667aadcf
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/infrastructure/server/webtransport-h3.https.sub.any.js.ini
@@ -0,0 +1,19 @@
+[webtransport-h3.https.sub.any.worker.html]
+  [WebTransport server should be running and should handle a bidirectional stream]
+    expected:
+      if os == "win": FAIL
+
+
+[webtransport-h3.https.sub.any.serviceworker.html]
+  [WebTransport server should be running and should handle a bidirectional stream]
+    expected:
+      if os == "win": FAIL
+
+
+[webtransport-h3.https.sub.any.sharedworker.html]
+  [WebTransport server should be running and should handle a bidirectional stream]
+    expected:
+      if os == "win": FAIL
+
+
+[webtransport-h3.https.sub.any.html]
diff --git a/third_party/blink/web_tests/external/wpt/intersection-observer/cross-origin-iframe.sub.html.ini b/third_party/blink/web_tests/external/wpt/intersection-observer/cross-origin-iframe.sub.html.ini
index 4554c60..96433ce 100644
--- a/third_party/blink/web_tests/external/wpt/intersection-observer/cross-origin-iframe.sub.html.ini
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/cross-origin-iframe.sub.html.ini
@@ -1,15 +1,9 @@
 [cross-origin-iframe.sub.html]
   [topDocument.scrollingElement.scrollTop = 200]
     expected:
-      if (flag_specific == "") and (product == "content_shell") and (os == "win"): [PASS, FAIL]
-      if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if (os == "linux") and (flag_specific == "") and (product == "chrome"): FAIL
+      if (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL
 
   [topDocument.scrollingElement.scrollTop = 100]
     expected:
-      if (flag_specific == "") and (os == "win"): [FAIL, PASS]
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
-
-  [iframeDocument.scrollingElement.scrollTop = 250]
-    expected:
-      if os == "win": [PASS, FAIL]
+      if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html.ini
index 08be1a5d7..78cff02 100644
--- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html.ini
+++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html.ini
@@ -1,6 +1,3 @@
 [first-paint-equals-lcp-text.html]
   [FCP and LCP are the same when there is a single text element in the page.]
-    expected:
-      if (os == "linux") and (flag_specific == "") and (product == "content_shell"): PASS
-      if os == "win": PASS
-      FAIL
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/non-tao-image-load-after-fcp.tentative.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/non-tao-image-load-after-fcp.tentative.html.ini
deleted file mode 100644
index dd3f62db9..0000000
--- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/non-tao-image-load-after-fcp.tentative.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[non-tao-image-load-after-fcp.tentative.html]
-  [Non-Tao Image Load and Render After FCP.]
-    expected:
-      if product == "chrome": [FAIL, PASS]
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/non-tao-image-load-before-fcp-render-at-fcp.tentative.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/non-tao-image-load-before-fcp-render-at-fcp.tentative.html.ini
index 0cc5e07..844f5b3f 100644
--- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/non-tao-image-load-before-fcp-render-at-fcp.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/non-tao-image-load-before-fcp-render-at-fcp.tentative.html.ini
@@ -1,3 +1,5 @@
 [non-tao-image-load-before-fcp-render-at-fcp.tentative.html]
   [Non-Tao Image Load Before LCP and Render at the Same Time of FCP.]
-    expected: FAIL
+    expected:
+      if flag_specific == "disable-site-isolation-trials": PASS
+      FAIL
diff --git a/third_party/blink/web_tests/external/wpt/layout-instability/pointerdown-becomes-scroll.html.ini b/third_party/blink/web_tests/external/wpt/layout-instability/pointerdown-becomes-scroll.html.ini
new file mode 100644
index 0000000..d8f2a3b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/layout-instability/pointerdown-becomes-scroll.html.ini
@@ -0,0 +1,2 @@
+[pointerdown-becomes-scroll.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/layout-instability/pointerdown-becomes-tap.html.ini b/third_party/blink/web_tests/external/wpt/layout-instability/pointerdown-becomes-tap.html.ini
new file mode 100644
index 0000000..5186ab4e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/layout-instability/pointerdown-becomes-tap.html.ini
@@ -0,0 +1,2 @@
+[pointerdown-becomes-tap.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/404-with-early-hints.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/404-with-early-hints.h2.window.js.ini
index d635810..029bd47 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/404-with-early-hints.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/404-with-early-hints.h2.window.js.ini
@@ -1,4 +1,4 @@
 [404-with-early-hints.h2.window.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": OK
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/coep-early-hints-require-corp-final-none.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/coep-early-hints-require-corp-final-none.h2.window.js.ini
index 092a8a731..c9c06012 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/coep-early-hints-require-corp-final-none.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/coep-early-hints-require-corp-final-none.h2.window.js.ini
@@ -1,4 +1,4 @@
 [coep-early-hints-require-corp-final-none.h2.window.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": OK
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-absent.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-absent.h2.window.js.ini
index b5be12e..3623b15 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-absent.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-absent.h2.window.js.ini
@@ -1,4 +1,4 @@
 [csp-early-hints-disallowed-final-absent.h2.window.html]
   expected:
-    if product == "chrome": OK
+    if product == "chrome": [OK, ERROR]
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-allowed.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-allowed.h2.window.js.ini
index 142c582b..e935dbe 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-allowed.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-allowed.h2.window.js.ini
@@ -1,4 +1,4 @@
 [csp-early-hints-disallowed-final-allowed.h2.window.html]
   expected:
-    if product == "chrome": [ERROR, OK]
+    if product == "chrome": OK
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-disallowed.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-disallowed.h2.window.js.ini
index 2aa08d2c..3e11622 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-disallowed.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/csp-early-hints-disallowed-final-disallowed.h2.window.js.ini
@@ -1,4 +1,4 @@
 [csp-early-hints-disallowed-final-disallowed.h2.window.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": OK
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/modulepreload-in-early-hints.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/modulepreload-in-early-hints.h2.window.js.ini
index 09b074d..057a33fb 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/modulepreload-in-early-hints.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/modulepreload-in-early-hints.h2.window.js.ini
@@ -1,4 +1,4 @@
 [modulepreload-in-early-hints.h2.window.html]
   expected:
-    if product == "chrome": OK
+    if product == "chrome": [OK, ERROR]
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/multiple-early-hints-responses.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/multiple-early-hints-responses.h2.window.js.ini
index eb2fb4e..caefadd 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/multiple-early-hints-responses.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/multiple-early-hints-responses.h2.window.js.ini
@@ -1,4 +1,2 @@
 [multiple-early-hints-responses.h2.window.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
-    ERROR
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-with-csp-document-disallow.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-with-csp-document-disallow.h2.window.js.ini
index f38d7d0..e3a0984e 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-with-csp-document-disallow.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-with-csp-document-disallow.h2.window.js.ini
@@ -1,4 +1,4 @@
 [preload-with-csp-document-disallow.h2.window.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": OK
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-without-as.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-without-as.h2.window.js.ini
index 6ac50adc..7cc9418f 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-without-as.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/preload-without-as.h2.window.js.ini
@@ -1,4 +1,4 @@
 [preload-without-as.h2.window.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": OK
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-same-origin-between-early-hints.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-same-origin-between-early-hints.h2.window.js.ini
index 66bceec..4189cc62 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-same-origin-between-early-hints.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/redirect-same-origin-between-early-hints.h2.window.js.ini
@@ -1,4 +1,4 @@
 [redirect-same-origin-between-early-hints.h2.window.html]
   expected:
-    if product == "chrome": OK
+    if product == "chrome": [ERROR, OK]
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/referrer-policy-origin-when-cross-origin.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/referrer-policy-origin-when-cross-origin.h2.window.js.ini
index f441985..ba22c81 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/referrer-policy-origin-when-cross-origin.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/referrer-policy-origin-when-cross-origin.h2.window.js.ini
@@ -1,4 +1,4 @@
 [referrer-policy-origin-when-cross-origin.h2.window.html]
   expected:
-    if product == "chrome": OK
+    if product == "chrome": [OK, ERROR]
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/loading/early-hints/referrer-policy-origin.h2.window.js.ini b/third_party/blink/web_tests/external/wpt/loading/early-hints/referrer-policy-origin.h2.window.js.ini
index ea7126e..afb4eab4 100644
--- a/third_party/blink/web_tests/external/wpt/loading/early-hints/referrer-policy-origin.h2.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/loading/early-hints/referrer-policy-origin.h2.window.js.ini
@@ -1,4 +1,4 @@
 [referrer-policy-origin.h2.window.html]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": OK
     ERROR
diff --git a/third_party/blink/web_tests/external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html.ini b/third_party/blink/web_tests/external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html.ini
deleted file mode 100644
index b2e386a..0000000
--- a/third_party/blink/web_tests/external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[longtask-in-sibling-iframe-crossorigin.html]
-  [Performance longtask entries from cross-origin iframe are observable in its sibling.]
-    expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
-      if flag_specific == "disable-layout-ng": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html.ini b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html.ini
deleted file mode 100644
index be13767..0000000
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[legacy-mstyle-attributes.html]
-  [Legacy mstyle attributes do not apply to mo]
-    expected:
-      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html.ini b/third_party/blink/web_tests/external/wpt/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html.ini
index 091da40..e4d323f 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html.ini
+++ b/third_party/blink/web_tests/external/wpt/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html.ini
@@ -1,4 +1,8 @@
 [mediasource-worker-play-terminate-worker.html]
-  [Test worker MediaSource termination after at least 9 main thread setTimeouts, starting counting before setting srcObject]
+  [Test worker MediaSource termination after at least 6 main thread setTimeouts, starting counting before setting srcObject]
     expected:
       if product == "chrome": [PASS, FAIL]
+
+  [Test worker MediaSource termination after at least 8 main thread setTimeouts, starting counting before setting srcObject]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-avtracks.html.ini b/third_party/blink/web_tests/external/wpt/media-source/mediasource-avtracks.html.ini
index cf16bf5..1cf60a5 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-avtracks.html.ini
+++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-avtracks.html.ini
@@ -4,4 +4,6 @@
 
   [Media tracks must be removed when the SourceBuffer is removed from the MediaSource]
     expected:
-      if os == "win": FAIL
+      if (product == "content_shell") and (flag_specific == "") and (os == "win"): FAIL
+      if (product == "content_shell") and (flag_specific == "disable-layout-ng"): FAIL
+      if (product == "content_shell") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-duration.html.ini b/third_party/blink/web_tests/external/wpt/media-source/mediasource-duration.html.ini
index 123d6b7..475cf46 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-duration.html.ini
+++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-duration.html.ini
@@ -1,8 +1,8 @@
 [mediasource-duration.html]
   expected:
-    if (flag_specific == "") and (product == "chrome"): [OK, ERROR]
-    if flag_specific == "disable-site-isolation-trials": ERROR
-    if flag_specific == "disable-layout-ng": [OK, ERROR]
-  [Test endOfStream completes previous seek to truncated duration]
+    if (flag_specific == "") and (os == "linux") and (product == "chrome"): OK
+    if (flag_specific == "") and (os == "win"): OK
+    ERROR
+  [Test seek starts on duration truncation below currentTime]
     expected:
       if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-endofstream.html.ini b/third_party/blink/web_tests/external/wpt/media-source/mediasource-endofstream.html.ini
index 7f2facc..eb2f72d 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-endofstream.html.ini
+++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-endofstream.html.ini
@@ -1,10 +1,3 @@
 [mediasource-endofstream.html]
-  expected:
-    if (flag_specific == "") and (product == "chrome"): [OK, TIMEOUT]
-    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
   [MediaSource.endOfStream(): duration truncated to 0 when there are no buffered coded frames]
     expected: FAIL
-
-  [MediaSource.endOfStream(): media element notified that it now has all of the media data]
-    expected:
-      if product == "chrome": [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/navigation-api/navigation-methods/return-value/navigate-initial-about-blank.html.ini b/third_party/blink/web_tests/external/wpt/navigation-api/navigation-methods/return-value/navigate-initial-about-blank.html.ini
deleted file mode 100644
index 4aa58b5..0000000
--- a/third_party/blink/web_tests/external/wpt/navigation-api/navigation-methods/return-value/navigate-initial-about-blank.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[navigate-initial-about-blank.html]
-  expected:
-    if flag_specific == "disable-site-isolation-trials": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html.ini b/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html.ini
index b7b9b42..61cb165 100644
--- a/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html.ini
+++ b/third_party/blink/web_tests/external/wpt/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html.ini
@@ -1,4 +1,4 @@
 [after-transition-intercept-handler-modifies.html]
   [scroll: state should be saved before intercept handlers run]
     expected:
-      if flag_specific == "disable-layout-ng": [PASS, FAIL]
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/navigation-timing/test-performance-attributes.sub.html.ini b/third_party/blink/web_tests/external/wpt/navigation-timing/test-performance-attributes.sub.html.ini
index 3052bb3..47d7592 100644
--- a/third_party/blink/web_tests/external/wpt/navigation-timing/test-performance-attributes.sub.html.ini
+++ b/third_party/blink/web_tests/external/wpt/navigation-timing/test-performance-attributes.sub.html.ini
@@ -1,5 +1,4 @@
 [test-performance-attributes.sub.html]
   [Check that performance.timing has reasonable values for secureConnectionStart and other attributes]
     expected:
-      if (flag_specific == "") and (product == "chrome"): [PASS, FAIL]
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/paint-timing/fcp-only/fcp-invisible-scale-transition.html.ini b/third_party/blink/web_tests/external/wpt/paint-timing/fcp-only/fcp-invisible-scale-transition.html.ini
index 1b20a79..72799d7 100644
--- a/third_party/blink/web_tests/external/wpt/paint-timing/fcp-only/fcp-invisible-scale-transition.html.ini
+++ b/third_party/blink/web_tests/external/wpt/paint-timing/fcp-only/fcp-invisible-scale-transition.html.ini
@@ -1,5 +1,3 @@
 [fcp-invisible-scale-transition.html]
   [First contentful paint fires when revealed during transition.]
-    expected:
-      if product == "chrome": PASS
-      FAIL
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/pending-beacon/pending_beacon-sendondiscard.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/pending-beacon/pending_beacon-sendondiscard.tentative.https.window.js.ini
index 2b9693a3..602ca03 100644
--- a/third_party/blink/web_tests/external/wpt/pending-beacon/pending_beacon-sendondiscard.tentative.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/pending-beacon/pending_beacon-sendondiscard.tentative.https.window.js.ini
@@ -1,3 +1,7 @@
 [pending_beacon-sendondiscard.tentative.https.window.html]
   expected:
     if product == "chrome": ERROR
+  [A discarded document sends all its beacons of which backgroundTimeouts are\n    not default.]
+    expected:
+      if (flag_specific == "") and (os == "win"): FAIL
+      if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini b/third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini
index a12a4b0..d4bb3aa 100644
--- a/third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini
@@ -1,6 +1,6 @@
 [performance-navigation-timing-same-origin-bfcache.tentative.window.html]
   [RemoteContextHelper navigation using BFCache]
     expected:
-      if (flag_specific == "") and (product == "content_shell") and (os == "win"): [PASS, FAIL]
       if (flag_specific == "") and (product == "chrome"): FAIL
-      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-site-isolation-trials": FAIL
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/permissions-policy/experimental-features/unload-allowed-by-default.tentative.window.js.ini b/third_party/blink/web_tests/external/wpt/permissions-policy/experimental-features/unload-allowed-by-default.tentative.window.js.ini
deleted file mode 100644
index 6360a03d..0000000
--- a/third_party/blink/web_tests/external/wpt/permissions-policy/experimental-features/unload-allowed-by-default.tentative.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[unload-allowed-by-default.tentative.window.html]
-  expected:
-    if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/permissions-policy/reporting/geolocation-report-only.https.html.ini b/third_party/blink/web_tests/external/wpt/permissions-policy/reporting/geolocation-report-only.https.html.ini
index eb3d0b7..014a055 100644
--- a/third_party/blink/web_tests/external/wpt/permissions-policy/reporting/geolocation-report-only.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/permissions-policy/reporting/geolocation-report-only.https.html.ini
@@ -1,7 +1,7 @@
 [geolocation-report-only.https.html]
   expected:
-    if product == "chrome": [OK, TIMEOUT]
+    if product == "chrome": TIMEOUT
   [Geolocation report only mode]
     expected:
-      if product == "chrome": [FAIL, TIMEOUT]
+      if product == "chrome": TIMEOUT
       FAIL
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/capturing_boundary_event_handler_at_ua_shadowdom.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/capturing_boundary_event_handler_at_ua_shadowdom.html.ini
index bbcb899..702dfe4 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/capturing_boundary_event_handler_at_ua_shadowdom.html.ini
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/capturing_boundary_event_handler_at_ua_shadowdom.html.ini
@@ -18,8 +18,4 @@
 
 
 [capturing_boundary_event_handler_at_ua_shadowdom.html?touch]
-  [Capturing boundary event handler at VIDEO]
-    expected: FAIL
-
-  [Capturing boundary event handler at INPUT]
-    expected: FAIL
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/compat/pointerevent_touch-action_two-finger_interaction.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/compat/pointerevent_touch-action_two-finger_interaction.html.ini
new file mode 100644
index 0000000..3939147
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/compat/pointerevent_touch-action_two-finger_interaction.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action_two-finger_interaction.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_after_target_removed.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_after_target_removed.html.ini
index f21fa43..7ccda249 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_after_target_removed.html.ini
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_after_target_removed.html.ini
@@ -27,18 +27,7 @@
 
 
 [pointerevent_after_target_removed.html?touch]
-  [pointer events from touch at parent after child is removed at pointerdown]
-    expected: FAIL
-
-  [mouse events from touch at parent after child is removed at pointerdown]
-    expected: FAIL
-
-  [pointer events from touch at parent after child is removed at pointerup]
-    expected: FAIL
-
-  [mouse events from touch at parent after child is removed at pointerup]
-    expected: FAIL
-
+  expected: ERROR
 
 [pointerevent_after_target_removed.html?mouse]
   [pointer events from mouse at parent after child is removed at pointerdown]
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_attributes_nohover_pointers.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_attributes_nohover_pointers.html.ini
index 333cc6b..ff8b4e50 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_attributes_nohover_pointers.html.ini
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_attributes_nohover_pointers.html.ini
@@ -1,12 +1,2 @@
 [pointerevent_attributes_nohover_pointers.html]
-  [Inner frame  touch pointerenter.composed value is valid]
-    expected: FAIL
-
-  [Inner frame  touch pointerleave.composed value is valid]
-    expected: FAIL
-
-  [touch pointerleave.composed value is valid]
-    expected: FAIL
-
-  [touch pointerenter.composed value is valid]
-    expected: FAIL
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_change-touch-action-onpointerdown_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_change-touch-action-onpointerdown_touch.html.ini
new file mode 100644
index 0000000..9854fab
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_change-touch-action-onpointerdown_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_change-touch-action-onpointerdown_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_click_is_a_pointerevent.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_click_is_a_pointerevent.html.ini
new file mode 100644
index 0000000..72bb3ca7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_click_is_a_pointerevent.html.ini
@@ -0,0 +1,6 @@
+[pointerevent_click_is_a_pointerevent.html?touch]
+  expected: ERROR
+
+[pointerevent_click_is_a_pointerevent.html?pen]
+
+[pointerevent_click_is_a_pointerevent.html?mouse]
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_click_is_a_pointerevent_multiple_clicks.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_click_is_a_pointerevent_multiple_clicks.html.ini
new file mode 100644
index 0000000..8f2f400
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_click_is_a_pointerevent_multiple_clicks.html.ini
@@ -0,0 +1,6 @@
+[pointerevent_click_is_a_pointerevent_multiple_clicks.html?touch]
+  expected: ERROR
+
+[pointerevent_click_is_a_pointerevent_multiple_clicks.html?mouse]
+
+[pointerevent_click_is_a_pointerevent_multiple_clicks.html?pen]
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html.ini
index f1ff6c2..0161afd 100644
--- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html.ini
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html.ini
@@ -1,7 +1,4 @@
 [pointerevent_contextmenu_is_a_pointerevent.html?touch]
-  expected:
-    if product == "chrome": TIMEOUT
+  expected: CRASH
 
-  [contextmenu is a PointerEvent]
-    expected:
-      if product == "chrome": NOTRUN
+[pointerevent_contextmenu_is_a_pointerevent.html?mouse]
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_fractional_coordinates.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_fractional_coordinates.html.ini
new file mode 100644
index 0000000..d12c8d6
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_fractional_coordinates.html.ini
@@ -0,0 +1,6 @@
+[pointerevent_fractional_coordinates.html?mouse]
+
+[pointerevent_fractional_coordinates.html?pen]
+
+[pointerevent_fractional_coordinates.html?touch]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointercancel_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointercancel_touch.html.ini
new file mode 100644
index 0000000..5acec4c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointercancel_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_pointercancel_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html.ini
new file mode 100644
index 0000000..f0b0d71
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_pointerleave_after_pointercancel_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointerout_after_pointercancel_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointerout_after_pointercancel_touch.html.ini
new file mode 100644
index 0000000..43475578
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointerout_after_pointercancel_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_pointerout_after_pointercancel_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch.html.ini
new file mode 100644
index 0000000..e10db0b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_releasepointercapture_onpointercancel_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-auto-css_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-auto-css_touch.html.ini
new file mode 100644
index 0000000..9b74137
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-auto-css_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-auto-css_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html.ini
new file mode 100644
index 0000000..b6bd7d19
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html.ini
new file mode 100644
index 0000000..fd989a7c2
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-inherit_highest-parent-none_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-down-css_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-down-css_touch.html.ini
new file mode 100644
index 0000000..8917d35
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-down-css_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-pan-down-css_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-left-css_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-left-css_touch.html.ini
new file mode 100644
index 0000000..11caddf
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-left-css_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-pan-left-css_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-right-css_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-right-css_touch.html.ini
new file mode 100644
index 0000000..dfac8e37e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-right-css_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-pan-right-css_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-up-css_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-up-css_touch.html.ini
new file mode 100644
index 0000000..849d2ee
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-up-css_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-pan-up-css_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-css_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-css_touch.html.ini
new file mode 100644
index 0000000..0385af0
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-css_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-pan-x-css_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html.ini
new file mode 100644
index 0000000..98a61183
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html.ini
new file mode 100644
index 0000000..3007318
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-pan-x-pan-y_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-y-css_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-y-css_touch.html.ini
new file mode 100644
index 0000000..4a04701
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-pan-y-css_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-pan-y-css_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-span-none-test_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-span-none-test_touch.html.ini
new file mode 100644
index 0000000..74b8ae5
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-span-none-test_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-span-none-test_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-table-none-test_touch.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-table-none-test_touch.html.ini
new file mode 100644
index 0000000..ccfcc66
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_touch-action-table-none-test_touch.html.ini
@@ -0,0 +1,2 @@
+[pointerevent_touch-action-table-none-test_touch.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerup_after_pointerdown_target_removed.html.ini b/third_party/blink/web_tests/external/wpt/pointerevents/pointerup_after_pointerdown_target_removed.html.ini
new file mode 100644
index 0000000..5f2c7c18
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerup_after_pointerdown_target_removed.html.ini
@@ -0,0 +1,6 @@
+[pointerup_after_pointerdown_target_removed.html?pen]
+
+[pointerup_after_pointerdown_target_removed.html?mouse]
+
+[pointerup_after_pointerdown_target_removed.html?touch]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/external-stylesheet.html.ini b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/external-stylesheet.html.ini
index 38a4790e..6118173 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/external-stylesheet.html.ini
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/external-stylesheet.html.ini
@@ -1,4 +1,6 @@
 [external-stylesheet.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
   [Test styling SVG from external style fill]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/requestidlecallback/callback-exception.html.ini b/third_party/blink/web_tests/external/wpt/requestidlecallback/callback-exception.html.ini
deleted file mode 100644
index bac37b0..0000000
--- a/third_party/blink/web_tests/external/wpt/requestidlecallback/callback-exception.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[callback-exception.html]
-  expected:
-    if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF.html.ini b/third_party/blink/web_tests/external/wpt/requestidlecallback/callback-invoked.html.ini
similarity index 65%
rename from third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF.html.ini
rename to third_party/blink/web_tests/external/wpt/requestidlecallback/callback-invoked.html.ini
index 1d34b78..21f9f92 100644
--- a/third_party/blink/web_tests/external/wpt/requestidlecallback/deadline-max-rAF.html.ini
+++ b/third_party/blink/web_tests/external/wpt/requestidlecallback/callback-invoked.html.ini
@@ -1,3 +1,3 @@
-[deadline-max-rAF.html]
+[callback-invoked.html]
   expected:
     if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/content-type-parsing.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/content-type-parsing.html.ini
index 80eee616..5ac1d4a 100644
--- a/third_party/blink/web_tests/external/wpt/resource-timing/content-type-parsing.html.ini
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/content-type-parsing.html.ini
@@ -163,10 +163,7 @@
     expected:
       if os == "win": FAIL
 
-  [content-type 2 : text/html,text/plain]
-    expected:
-      if os == "win": FAIL
-
   [content-type 3 : text/plain;charset=gbk,text/html]
     expected:
-      if os == "win": FAIL
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [FAIL, PASS]
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/nested-context-navigations-iframe.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/nested-context-navigations-iframe.html.ini
index 58d4c10..d39ca27 100644
--- a/third_party/blink/web_tests/external/wpt/resource-timing/nested-context-navigations-iframe.html.ini
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/nested-context-navigations-iframe.html.ini
@@ -1,4 +1,4 @@
 [nested-context-navigations-iframe.html]
   [Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
+      if os == "win": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini
index 1d9ea2f..e70c84d0 100644
--- a/third_party/blink/web_tests/external/wpt/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html.ini
@@ -1,3 +1,5 @@
 [no-entries-for-cross-origin-css-fetched-memory-cache.sub.html]
   [Make sure that resources fetched by cross origin CSS are not in the timeline.]
-    expected: FAIL
+    expected:
+      if (flag_specific == "") and (product == "chrome"): [PASS, FAIL]
+      FAIL
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/object-not-found-after-cross-origin-redirect.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/object-not-found-after-cross-origin-redirect.html.ini
index 3b0a6c2d..b666ec44 100644
--- a/third_party/blink/web_tests/external/wpt/resource-timing/object-not-found-after-cross-origin-redirect.html.ini
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/object-not-found-after-cross-origin-redirect.html.ini
@@ -1,3 +1,7 @@
 [object-not-found-after-cross-origin-redirect.html]
   expected:
-    if (product == "content_shell") and (flag_specific == "") and (os == "linux"): [OK, TIMEOUT]
+    if (flag_specific == "") and (product == "chrome"): [OK, TIMEOUT]
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
+  [Verify that cross-origin object resources don't implicitly expose their redirect timings]
+    expected:
+      if product == "chrome": [PASS, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html b/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html
index 0acc622..3c606c5 100644
--- a/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html
@@ -1,6 +1,7 @@
 <!DOCTYPE html>
 <head>
 <meta charset="utf-8" />
+<meta name="timeout" content="long">
 <title>This test validates the response status of resources.</title>
 <link rel="help" href="https://www.w3.org/TR/resource-timing-2/#sec-performanceresourcetiming"/>
 <script src="/resources/testharness.js"></script>
@@ -40,7 +41,9 @@
   load_null_object
 ]) {
   for(const status of status_codes) {
-    const path = `/resource-timing/resources/empty.js?pipe=status(${status})`;
+    let path = (loader == load.font) ? '/fonts/pass.woff' :
+                                       '/resource-timing/resources/empty.js';
+    path += `?pipe=status(${status})`;
     attribute_test(
       loader, new URL(path, ORIGIN),
       entry => {
@@ -89,10 +92,11 @@
 ]) {
   for(const tao of [false, true]) {
     for(const status of status_codes) {
-      let path = `/resource-timing/resources/empty.js?pipe=status(${status})`;
-      path += `|header(access-control-allow-origin, *})`;
+      let path = (loader == load.font) ? '/fonts/pass.woff' :
+                                         '/resource-timing/resources/empty.js';
+      path += `?pipe=status(${status})`;
       if (tao) {
-        path += `|header(timing-allow-origin, *})`;
+        path += `|header(timing-allow-origin, *)`;
       }
       attribute_test(
         loader, new URL(path, REMOTE_ORIGIN),
@@ -150,4 +154,4 @@
 };
 </script>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html.ini
index 54e65d4..0473d057 100644
--- a/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html.ini
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/response-status-code.html.ini
@@ -1,43 +1,45 @@
 [response-status-code.html]
-  expected: TIMEOUT
+  expected:
+    if product == "chrome": [OK, TIMEOUT]
+    TIMEOUT
   [This test validates the response status of resources. 299]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 289]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 296]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 292]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 291]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 297]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 293]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 276]
-    expected: [NOTRUN, PASS]
+    expected: [NOTRUN, PASS, TIMEOUT]
 
   [This test validates the response status of resources. 283]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 273]
     expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 282]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 288]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 290]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 271]
     expected: [PASS, NOTRUN]
@@ -46,43 +48,43 @@
     expected: [NOTRUN, PASS, TIMEOUT]
 
   [This test validates the response status of resources. 281]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 287]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 268]
     expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 298]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 267]
     expected: [NOTRUN, PASS]
 
   [This test validates the response status of resources. 294]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 272]
     expected: [PASS, TIMEOUT, NOTRUN]
 
   [This test validates the response status of resources. 286]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 285]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 278]
     expected: [NOTRUN, PASS]
 
   [This test validates the response status of resources. 274]
-    expected: [NOTRUN, TIMEOUT]
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 280]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 295]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 277]
     expected: [NOTRUN, PASS]
@@ -91,13 +93,13 @@
     expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 279]
-    expected: [NOTRUN, TIMEOUT]
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 269]
     expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 284]
-    expected: NOTRUN
+    expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 125]
     expected: [PASS, NOTRUN]
@@ -244,7 +246,7 @@
     expected: [NOTRUN, PASS]
 
   [This test validates the response status of resources. 251]
-    expected: [NOTRUN, PASS]
+    expected: [PASS, TIMEOUT, NOTRUN]
 
   [This test validates the response status of resources. 252]
     expected: [NOTRUN, PASS]
@@ -490,7 +492,7 @@
     expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 87]
-    expected: [PASS, NOTRUN]
+    expected: [PASS, TIMEOUT]
 
   [This test validates the response status of resources. 137]
     expected: [PASS, NOTRUN]
@@ -514,7 +516,7 @@
     expected: [PASS, NOTRUN]
 
   [This test validates the response status of resources. 89]
-    expected: [PASS, NOTRUN]
+    expected: [PASS, TIMEOUT]
 
   [This test validates the response status of resources. 259]
     expected: [NOTRUN, PASS]
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/sizes-redirect.any.js.ini b/third_party/blink/web_tests/external/wpt/resource-timing/sizes-redirect.any.js.ini
deleted file mode 100644
index 3755e00..0000000
--- a/third_party/blink/web_tests/external/wpt/resource-timing/sizes-redirect.any.js.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[sizes-redirect.any.serviceworker.html]
-
-[sizes-redirect.any.worker.html]
-  expected:
-    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
-
-[sizes-redirect.any.sharedworker.html]
-
-[sizes-redirect.any.html]
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/cache-storage/cache-add.https.any.js.ini b/third_party/blink/web_tests/external/wpt/service-workers/cache-storage/cache-add.https.any.js.ini
index 37c1e59..6c4c37459 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/cache-storage/cache-add.https.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/service-workers/cache-storage/cache-add.https.any.js.ini
@@ -16,6 +16,10 @@
   [Cache.addAll called with the same Request object specified twice]
     expected: FAIL
 
+  [Cache.addAll should succeed when entries differ by vary header]
+    expected:
+      if product == "chrome": [PASS, FAIL]
+
 
 [cache-add.https.any.html]
   [Cache.addAll called with the same Request object specified twice]
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/about-blank-replacement.https.html.ini b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/about-blank-replacement.https.html.ini
index b2a61d9c..44673f0a 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/about-blank-replacement.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/about-blank-replacement.https.html.ini
@@ -1,6 +1,4 @@
 [about-blank-replacement.https.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
   [Initial about:blank is controlled, exposed to clients.matchAll(), and matches final Client.]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-navigate.https.html.ini b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-navigate.https.html.ini
new file mode 100644
index 0000000..fca2622
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-navigate.https.html.ini
@@ -0,0 +1,4 @@
+[client-navigate.https.html]
+  [Frame location should not be accessible after redirect]
+    expected:
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/getregistrations.https.html.ini b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/getregistrations.https.html.ini
index 112c741..4769a3b3 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/getregistrations.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/getregistrations.https.html.ini
@@ -1,12 +1,12 @@
 [getregistrations.https.html]
   [Register then Unregister then getRegistrations]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
 
   [Register then Unregister with controlled frame then getRegistrations]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
 
   [getRegistrations promise resolves only with same origin registrations.]
     expected:
-      if flag_specific == "disable-site-isolation-trials": FAIL
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini
index 4507f10..48187be 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini
@@ -1,4 +1,8 @@
 [unregister-immediately-during-extendable-events.https.html]
-  expected: TIMEOUT
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): OK
+    TIMEOUT
   [Clear-Site-Data must fail pending subresource fetch events.]
-    expected: TIMEOUT
+    expected:
+      if product == "chrome": TIMEOUT
+      FAIL
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini
index 123be4e..c2a234ee 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini
@@ -33,8 +33,6 @@
 
 
 [prefetch-single.https.html?1-1]
-  expected:
-    if product == "chrome": [OK, ERROR]
   [Use prefetched response as query parameter b has the same value.]
     expected: FAIL
 
@@ -84,6 +82,8 @@
 
 
 [prefetch-single.https.html?2-2]
+  expected:
+    if product == "chrome": [OK, ERROR]
 
 [prefetch-single.https.html?12-12]
   [Use prefetched response as query parameter a can be ignored.]
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini
index d9212212..0f2011e1 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini
@@ -16,6 +16,8 @@
 
 
 [referrer-policy-from-rules.https.html?6-6]
+  expected:
+    if product == "chrome": [OK, ERROR]
 
 [referrer-policy-from-rules.https.html?5-5]
 
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe.html.ini
index 1023c05..47d7e2c 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe.html.ini
@@ -1,5 +1,6 @@
 [cross-origin-iframe.html]
   expected:
+    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [cross-origin iframes should not load until activation]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/csp-script-src-self.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/csp-script-src-self.html.ini
index a85027a..55cdc9c 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/csp-script-src-self.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/csp-script-src-self.html.ini
@@ -1,3 +1,5 @@
 [csp-script-src-self.html]
   expected:
-    if os == "win": ERROR
+    if (os == "linux") and (product == "chrome"): OK
+    if os == "win": OK
+    [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/iframe-added-post-activation.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/iframe-added-post-activation.html.ini
index 6b9bf4fd..639ddc1 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/iframe-added-post-activation.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/iframe-added-post-activation.html.ini
@@ -1,6 +1,7 @@
 [iframe-added-post-activation.html]
   expected:
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": ERROR
   [iframe added after activation has false document.prerendering]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/indexeddb.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/indexeddb.html.ini
index d339397..e16ee6b 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/indexeddb.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/indexeddb.html.ini
@@ -1,7 +1,6 @@
 [indexeddb.html]
   expected:
-    if (os == "linux") and (product == "chrome"): TIMEOUT
-    if os == "win": TIMEOUT
+    if product == "chrome": TIMEOUT
   [prerendering page should be able to access Indexed DataBase]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/media-autoplay.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/media-autoplay.html.ini
index dbcd037..12abdfd 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/media-autoplay.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/media-autoplay.html.ini
@@ -3,6 +3,7 @@
   disabled:
     if os == "mac": was skipped in 'TestExpectations'
   expected:
+    if (product == "content_shell") and (os == "win"): [OK, TIMEOUT]
     if product == "chrome": TIMEOUT
   [media autoplay should defer playaback]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/referrer-policy-from-rules.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/referrer-policy-from-rules.html.ini
index 9df55d5d..c96a9be 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/referrer-policy-from-rules.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/referrer-policy-from-rules.html.ini
@@ -1,6 +1,6 @@
 [referrer-policy-from-rules.html?2-last]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, ERROR]
 
 [referrer-policy-from-rules.html?1-1]
   expected: TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-non-successful.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-non-successful.html.ini
index 66670c7..4937abd3 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-non-successful.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-non-successful.html.ini
@@ -1,4 +1,6 @@
 [response-code-non-successful.html?code=404]
+  expected:
+    if product == "chrome": [OK, ERROR]
 
 [response-code-non-successful.html?code=503]
 
@@ -7,7 +9,5 @@
 [response-code-non-successful.html?code=205]
 
 [response-code-non-successful.html?code=204]
-  expected:
-    if product == "chrome": [OK, ERROR]
 
 [response-code-non-successful.html?code=500]
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-successful.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-successful.html.ini
index 5e8e3e4b..dbd8282 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-successful.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/response-code-successful.html.ini
@@ -15,8 +15,6 @@
 
 
 [response-code-successful.html?code=201]
-  expected:
-    if product == "chrome": [ERROR, OK]
   [Responses with code 201 should be activated]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini
index 6cca560..872a1f5 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini
@@ -1,7 +1,7 @@
 [restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, ERROR]
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": ERROR
   [the access to the setSinkId of Audio API with the invalid sinkId should be\n    deferred until the prerendered page is activated]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini
index ebc3e37..8dacf33 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini
@@ -1,7 +1,7 @@
 [restriction-bluetooth.tentative.https.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, ERROR]
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": ERROR
   [the access to the Bluetooth API should be deferred until the\n   prerendered page is activated]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-encrypted-media.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-encrypted-media.https.html.ini
index a72b225..c443d69 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-encrypted-media.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-encrypted-media.https.html.ini
@@ -3,7 +3,6 @@
   disabled:
     if flag_specific == "force-renderer-accessibility": was skipped in 'FlagExpectations/force-renderer-accessibility'
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [the access to the Encrypted Media API should be deferred until the\n    prerendered page is activated]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-local-file-system-access.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-local-file-system-access.https.html.ini
index ab826f5..8a6d1798 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-local-file-system-access.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-local-file-system-access.https.html.ini
@@ -1,7 +1,6 @@
 [restriction-local-file-system-access.https.html]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "chrome"): TIMEOUT
-    if (flag_specific == "") and (os == "win"): TIMEOUT
+    if product == "chrome": TIMEOUT
   [prerendering pages should not be able to access the local file system via the File System Access API]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-media-auto-play-attribute.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-media-auto-play-attribute.html.ini
index 1638866..66ea6cb7 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-media-auto-play-attribute.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-media-auto-play-attribute.html.ini
@@ -3,7 +3,8 @@
   disabled:
     if flag_specific == "force-renderer-accessibility": was skipped in 'FlagExpectations/force-renderer-accessibility'
   expected:
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": ERROR
   [autoplay of the audio media should be deferred until the prerendered page is activated]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-media-camera.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-media-camera.https.html.ini
index f2b8f0c..5910236 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-media-camera.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-media-camera.https.html.ini
@@ -1,6 +1,5 @@
 [restriction-media-camera.https.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [the access to the camera of the user media should be deferred until the\n    prerendered page is activated]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-message-boxes.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-message-boxes.html.ini
index aeb2a55..8bd9788 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-message-boxes.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-message-boxes.html.ini
@@ -1,5 +1,6 @@
 [restriction-message-boxes.html]
   expected:
+    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [alert() does not display the modal and returns immediately]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-presentation-request.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-presentation-request.https.html.ini
index 014edcae..1a3d08e 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-presentation-request.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-presentation-request.https.html.ini
@@ -1,5 +1,6 @@
 [restriction-presentation-request.https.html]
   expected:
+    if (product == "content_shell") and (os == "win"): [ERROR, TIMEOUT]
     if product == "chrome": TIMEOUT
     ERROR
   [prerendering page cannot start presentation]
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-request-picture-in-picture.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-request-picture-in-picture.html.ini
index 9bfa95ff..32004d9 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-request-picture-in-picture.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-request-picture-in-picture.html.ini
@@ -1,5 +1,6 @@
 [restriction-request-picture-in-picture.html]
   expected:
+    if (product == "content_shell") and (os == "win"): [OK, TIMEOUT]
     if product == "chrome": TIMEOUT
   [prerendering page cannot invokeHTMLVideoElement.requestPictureInPicture]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-speech-synthesis.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-speech-synthesis.html.ini
index ad1ad4c..c8b329d 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-speech-synthesis.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-speech-synthesis.html.ini
@@ -1,6 +1,7 @@
 [restriction-speech-synthesis.html]
   expected:
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": ERROR
   [speechSynthesis.speak(utterance) should be deferred until the prerendered page is activated]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-storage-persist.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-storage-persist.https.html.ini
index 98a9c5b..4504a61 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-storage-persist.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-storage-persist.https.html.ini
@@ -1,6 +1,5 @@
 [restriction-storage-persist.https.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [the access to the storage.persist() should be deferred until the prerendered\n    page is activated]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-serial.tentative.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-serial.tentative.https.html.ini
index 84ffcd7..94eabaf 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-serial.tentative.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-serial.tentative.https.html.ini
@@ -1,5 +1,6 @@
 [restriction-web-serial.tentative.https.html]
   expected:
+    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [the access to the Web Serial API should be deferred until the prerendered\n    page is activated]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-share.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-share.https.html.ini
index f0101a56..6a5f19de 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-share.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-web-share.https.html.ini
@@ -1,6 +1,7 @@
 [restriction-web-share.https.html]
   expected:
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": TIMEOUT
   [prerendering pages should not be able to invoke the Web Share API]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-window-move.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-window-move.html.ini
index 1f07b4c..87802b2 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-window-move.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-window-move.html.ini
@@ -1,6 +1,5 @@
 [restriction-window-move.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [a prerendering page cannot move its window by executing moveTo.]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-window-open.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-window-open.html.ini
index 73abde5..019af15 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-window-open.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/restriction-window-open.html.ini
@@ -1,7 +1,7 @@
 [restriction-window-open.html]
   expected:
     if (os == "linux") and (product == "chrome"): TIMEOUT
-    if os == "win": [OK, TIMEOUT]
+    if os == "win": [OK, ERROR]
   [window.open() should fail during prerendering]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/sandbox-iframe.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/sandbox-iframe.html.ini
index a287cc3..927719e21 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/sandbox-iframe.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/sandbox-iframe.html.ini
@@ -1,6 +1,5 @@
 [sandbox-iframe.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [same-origin sandbox iframes should not load until activation]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-pushstate.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-pushstate.https.html.ini
index d5dc8a7..f2a1bee 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-pushstate.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-pushstate.https.html.ini
@@ -1,7 +1,7 @@
 [session-history-pushstate.https.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, TIMEOUT]
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": TIMEOUT
   [history.pushState navigates independently with replacement in a prerender]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini
index ff00e5563..a18dab5e 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini
@@ -1,6 +1,5 @@
 [session-history-subframe-navigation.https.html]
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, TIMEOUT]
     if product == "chrome": TIMEOUT
   [Subframe navigation in prerender replaces the session entry]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini
index f3d325bc..f01732a 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini
@@ -3,7 +3,6 @@
   disabled:
     if flag_specific == "force-renderer-accessibility": was skipped in 'FlagExpectations/force-renderer-accessibility'
   expected:
-    if (product == "content_shell") and (os == "win"): [OK, ERROR]
     if product == "chrome": TIMEOUT
   [WindowClient.navigate() to a cross-origin URL on a prerendered iframe should be deferred]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/workers.html.ini b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/workers.html.ini
index bea4222..a986d42 100644
--- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/workers.html.ini
+++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/workers.html.ini
@@ -1,6 +1,7 @@
 [workers.html]
   expected:
-    if product == "chrome": TIMEOUT
+    if (os == "linux") and (product == "chrome"): TIMEOUT
+    if os == "win": TIMEOUT
   [Dedicated workers should be loaded in suspended state until activated]
     expected:
       if product == "chrome": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/storage/estimate-indexeddb.https.any.js.ini b/third_party/blink/web_tests/external/wpt/storage/estimate-indexeddb.https.any.js.ini
index 54ad9ea..b8807f2 100644
--- a/third_party/blink/web_tests/external/wpt/storage/estimate-indexeddb.https.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/storage/estimate-indexeddb.https.any.js.ini
@@ -1,7 +1,6 @@
 [estimate-indexeddb.https.any.worker.html]
-  [estimate() shows usage increase after large value is stored]
-    expected:
-      if product == "chrome": [PASS, FAIL]
-
 
 [estimate-indexeddb.https.any.html]
+  [estimate() shows usage increase after large value is stored]
+    expected:
+      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/url/a-element-xhtml.xhtml.ini b/third_party/blink/web_tests/external/wpt/url/a-element-xhtml.xhtml.ini
index d60c2c9..14abea7 100644
--- a/third_party/blink/web_tests/external/wpt/url/a-element-xhtml.xhtml.ini
+++ b/third_party/blink/web_tests/external/wpt/url/a-element-xhtml.xhtml.ini
@@ -963,9 +963,7 @@
 
 [a-element-xhtml.xhtml?include=file]
   expected:
-    if (flag_specific == "") and (os == "win"): TIMEOUT
     if flag_specific == "disable-site-isolation-trials": CRASH
-    if flag_specific == "disable-layout-ng": [OK, CRASH]
   [Parsing: <file://example%/> against <about:blank>]
     expected: FAIL
 
@@ -976,13 +974,19 @@
     expected: FAIL
 
   [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: <file://localhost> against <file:///tmp/mock/path>]
     expected: FAIL
@@ -1009,13 +1013,19 @@
     expected: FAIL
 
   [Parsing: <..> against <file:///C:/>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: </> against <file:///C:/a/b>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: </> against <file://h/C:/a/b>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: <//d:> against <file:///C:/a/b>]
     expected: FAIL
@@ -1084,16 +1094,24 @@
     expected: FAIL
 
   [Parsing: <//C:/> against <file://host/>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: <file://C:/> against <file://host/>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: <file:/C|/> against <about:blank>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: <file://C|/> against <about:blank>]
-    expected: FAIL
+    expected:
+      if os == "win": PASS
+      FAIL
 
   [Parsing: <file://localhost//a//../..//foo> against <about:blank>]
     expected: FAIL
@@ -1119,6 +1137,78 @@
   [Parsing: <file://xn--/p> against <about:blank>]
     expected: FAIL
 
+  [Parsing: <file:/.//p> against <about:blank>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: </c:/foo/bar> against <file:///c:/baz/qux>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:/example.com/> against <http://example.org/foo/bar>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:///./y:> against <about:blank>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:#frag> against <about:blank>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:..> against <http://www.example.com/test>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:C:/> against <file://host/>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: </C:/> against <file://host/>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: </c:/foo/bar> against <file://host/path>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:?q=v> against <about:blank>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:/example.com/> against <about:blank>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:///y:/> against <about:blank>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:...> against <http://www.example.com/test>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:/C:/> against <file://host/>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:a> against <http://www.example.com/test>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:///y:> against <about:blank>]
+    expected:
+      if os == "win": FAIL
+
+  [Parsing: <file:.//p> against <about:blank>]
+    expected:
+      if os == "win": FAIL
+
 
 [a-element-xhtml.xhtml?exclude=(file|javascript|mailto)]
   [Parsing: <non-special://test:@test/x> against <about:blank>]
@@ -1939,11 +2029,40 @@
     expected:
       if os == "win": FAIL
 
+  [Parsing: <non-special:￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/?￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/\x00y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/?#￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://\x00y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/?￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/?#￿y> against <about:blank>]
+    expected: FAIL
+
 
 [a-element-xhtml.xhtml?include=mailto]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): CRASH
-    if (flag_specific == "") and (os == "win"): TIMEOUT
+    if (flag_specific == "") and (os == "win"): [OK, TIMEOUT]
   [Parsing: <mailto:/../> against <about:blank>]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/url/a-element.html.ini b/third_party/blink/web_tests/external/wpt/url/a-element.html.ini
index a2b12dc..f98ee31 100644
--- a/third_party/blink/web_tests/external/wpt/url/a-element.html.ini
+++ b/third_party/blink/web_tests/external/wpt/url/a-element.html.ini
@@ -1319,8 +1319,6 @@
 
 
 [a-element.html?include=mailto]
-  expected:
-    if flag_specific == "disable-layout-ng": [OK, CRASH]
   [Parsing: <mailto:/../> against <about:blank>]
     expected: FAIL
 
@@ -2144,10 +2142,37 @@
     expected:
       if os == "win": FAIL
 
+  [Parsing: <non-special:￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/?￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/\x00y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/?#￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://\x00y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/?￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/?#￿y> against <about:blank>]
+    expected: FAIL
+
 
 [a-element.html?include=javascript]
-  expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
-    if flag_specific == "highdpi": [OK, CRASH]
   [Parsing: <javascript:/../> against <about:blank>]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/failure.html.ini b/third_party/blink/web_tests/external/wpt/url/failure.html.ini
index ac1e11a..5f3314d 100644
--- a/third_party/blink/web_tests/external/wpt/url/failure.html.ini
+++ b/third_party/blink/web_tests/external/wpt/url/failure.html.ini
@@ -1,4 +1,6 @@
 [failure.html]
+  expected:
+    if product == "chrome": TIMEOUT
   [Location's href: file://example:1/ should throw]
     expected: FAIL
 
@@ -1031,3 +1033,9 @@
   [URL's href: \\\\\\.\\y: should throw]
     expected:
       if os == "win": FAIL
+
+  [Location's href: https://\x00y should throw]
+    expected: FAIL
+
+  [Location's href: https://￿y should throw]
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/idlharness-shadowrealm.window.js.ini b/third_party/blink/web_tests/external/wpt/url/idlharness-shadowrealm.window.js.ini
index 0c7e328..27b57a31 100644
--- a/third_party/blink/web_tests/external/wpt/url/idlharness-shadowrealm.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/url/idlharness-shadowrealm.window.js.ini
@@ -1,4 +1,2 @@
 [idlharness-shadowrealm.window.html]
-  expected:
-    if flag_specific == "disable-site-isolation-trials": CRASH
-    ERROR
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/url/resources/urltestdata.json b/third_party/blink/web_tests/external/wpt/url/resources/urltestdata.json
index 5833adae..fe7316f 100644
--- a/third_party/blink/web_tests/external/wpt/url/resources/urltestdata.json
+++ b/third_party/blink/web_tests/external/wpt/url/resources/urltestdata.json
@@ -8640,5 +8640,212 @@
     "input": "http://💩.123/",
     "base": "about:blank",
     "failure": true
+  },
+  "U+0000 and U+FFFF in various places",
+  {
+    "input": "https://\u0000y",
+    "base": "about:blank",
+    "failure": true
+  },
+  {
+    "input": "https://x/\u0000y",
+    "base": "about:blank",
+    "hash": "",
+    "host": "x",
+    "hostname": "x",
+    "href": "https://x/%00y",
+    "password": "",
+    "pathname": "/%00y",
+    "port": "",
+    "protocol": "https:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "https://x/?\u0000y",
+    "base": "about:blank",
+    "hash": "",
+    "host": "x",
+    "hostname": "x",
+    "href": "https://x/?%00y",
+    "password": "",
+    "pathname": "/",
+    "port": "",
+    "protocol": "https:",
+    "search": "?%00y",
+    "username": ""
+  },
+  {
+    "input": "https://x/?#\u0000y",
+    "base": "about:blank",
+    "hash": "#%00y",
+    "host": "x",
+    "hostname": "x",
+    "href": "https://x/?#%00y",
+    "password": "",
+    "pathname": "/",
+    "port": "",
+    "protocol": "https:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "https://\uFFFFy",
+    "base": "about:blank",
+    "failure": true
+  },
+  {
+    "input": "https://x/\uFFFFy",
+    "base": "about:blank",
+    "hash": "",
+    "host": "x",
+    "hostname": "x",
+    "href": "https://x/%EF%BF%BFy",
+    "password": "",
+    "pathname": "/%EF%BF%BFy",
+    "port": "",
+    "protocol": "https:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "https://x/?\uFFFFy",
+    "base": "about:blank",
+    "hash": "",
+    "host": "x",
+    "hostname": "x",
+    "href": "https://x/?%EF%BF%BFy",
+    "password": "",
+    "pathname": "/",
+    "port": "",
+    "protocol": "https:",
+    "search": "?%EF%BF%BFy",
+    "username": ""
+  },
+  {
+    "input": "https://x/?#\uFFFFy",
+    "base": "about:blank",
+    "hash": "#%EF%BF%BFy",
+    "host": "x",
+    "hostname": "x",
+    "href": "https://x/?#%EF%BF%BFy",
+    "password": "",
+    "pathname": "/",
+    "port": "",
+    "protocol": "https:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "non-special:\u0000y",
+    "base": "about:blank",
+    "hash": "",
+    "host": "",
+    "hostname": "",
+    "href": "non-special:%00y",
+    "password": "",
+    "pathname": "%00y",
+    "port": "",
+    "protocol": "non-special:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "non-special:x/\u0000y",
+    "base": "about:blank",
+    "hash": "",
+    "host": "",
+    "hostname": "",
+    "href": "non-special:x/%00y",
+    "password": "",
+    "pathname": "x/%00y",
+    "port": "",
+    "protocol": "non-special:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "non-special:x/?\u0000y",
+    "base": "about:blank",
+    "hash": "",
+    "host": "",
+    "hostname": "",
+    "href": "non-special:x/?%00y",
+    "password": "",
+    "pathname": "x/",
+    "port": "",
+    "protocol": "non-special:",
+    "search": "?%00y",
+    "username": ""
+  },
+  {
+    "input": "non-special:x/?#\u0000y",
+    "base": "about:blank",
+    "hash": "#%00y",
+    "host": "",
+    "hostname": "",
+    "href": "non-special:x/?#%00y",
+    "password": "",
+    "pathname": "x/",
+    "port": "",
+    "protocol": "non-special:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "non-special:\uFFFFy",
+    "base": "about:blank",
+    "hash": "",
+    "host": "",
+    "hostname": "",
+    "href": "non-special:%EF%BF%BFy",
+    "password": "",
+    "pathname": "%EF%BF%BFy",
+    "port": "",
+    "protocol": "non-special:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "non-special:x/\uFFFFy",
+    "base": "about:blank",
+    "hash": "",
+    "host": "",
+    "hostname": "",
+    "href": "non-special:x/%EF%BF%BFy",
+    "password": "",
+    "pathname": "x/%EF%BF%BFy",
+    "port": "",
+    "protocol": "non-special:",
+    "search": "",
+    "username": ""
+  },
+  {
+    "input": "non-special:x/?\uFFFFy",
+    "base": "about:blank",
+    "hash": "",
+    "host": "",
+    "hostname": "",
+    "href": "non-special:x/?%EF%BF%BFy",
+    "password": "",
+    "pathname": "x/",
+    "port": "",
+    "protocol": "non-special:",
+    "search": "?%EF%BF%BFy",
+    "username": ""
+  },
+  {
+    "input": "non-special:x/?#\uFFFFy",
+    "base": "about:blank",
+    "hash": "#%EF%BF%BFy",
+    "host": "",
+    "hostname": "",
+    "href": "non-special:x/?#%EF%BF%BFy",
+    "password": "",
+    "pathname": "x/",
+    "port": "",
+    "protocol": "non-special:",
+    "search": "",
+    "username": ""
   }
 ]
diff --git a/third_party/blink/web_tests/external/wpt/url/url-constructor.any.js.ini b/third_party/blink/web_tests/external/wpt/url/url-constructor.any.js.ini
index 837cf8e..1cbbb92 100644
--- a/third_party/blink/web_tests/external/wpt/url/url-constructor.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/url/url-constructor.any.js.ini
@@ -1837,6 +1837,30 @@
   [Parsing: <abc:/rooted> against <abc://host/path>]
     expected: FAIL
 
+  [Parsing: <non-special:￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/?￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/\x00y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/?#￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/?￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/?#￿y> against <about:blank>]
+    expected: FAIL
+
 
 [url-constructor.any.worker.html?include=javascript]
   [Parsing: <javascript:/../> against <about:blank>]
@@ -2780,6 +2804,30 @@
   [Parsing: <abc:/rooted> against <abc://host/path>]
     expected: FAIL
 
+  [Parsing: <non-special:￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/?￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/\x00y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/?#￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <https://x/￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/?￿y> against <about:blank>]
+    expected: FAIL
+
+  [Parsing: <non-special:x/?#￿y> against <about:blank>]
+    expected: FAIL
+
 
 [url-constructor.any.html?include=javascript]
   [Parsing: <javascript:/../> against <about:blank>]
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window.js.ini b/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window.js.ini
index d90657a..e27107d 100644
--- a/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window.js.ini
@@ -586,7 +586,7 @@
 
 [url-setters-a-area.window.html?include=file]
   expected:
-    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
+    if flag_specific == "disable-site-isolation-trials": CRASH
   [<a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host]
     expected: FAIL
 
@@ -1151,6 +1151,8 @@
 
 
 [url-setters-a-area.window.html?include=javascript]
+  expected:
+    if os == "win": TIMEOUT
   [<a>: Setting <javascript://x/>.username = 'wario']
     expected: FAIL
 
@@ -1172,7 +1174,6 @@
 
 [url-setters-a-area.window.html?include=mailto]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
     if flag_specific == "disable-layout-ng": [OK, CRASH]
   [<a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters-stripping.any.js.ini b/third_party/blink/web_tests/external/wpt/url/url-setters-stripping.any.js.ini
index 5c23a98..68d160c 100644
--- a/third_party/blink/web_tests/external/wpt/url/url-setters-stripping.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/url/url-setters-stripping.any.js.ini
@@ -1,6 +1,4 @@
 [url-setters-stripping.any.html]
-  expected:
-    if os == "win": [OK, TIMEOUT]
   [Setting pathname with leading U+0000 (https:)]
     expected: FAIL
 
@@ -318,6 +316,8 @@
 
 
 [url-setters-stripping.any.worker.html]
+  expected:
+    if os == "win": TIMEOUT
   [Setting pathname with leading U+0000 (https:)]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters.any.js.ini b/third_party/blink/web_tests/external/wpt/url/url-setters.any.js.ini
index 023d17a..9b7e559 100644
--- a/third_party/blink/web_tests/external/wpt/url/url-setters.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/url/url-setters.any.js.ini
@@ -1116,6 +1116,8 @@
 
 
 [url-setters.any.html?include=file]
+  expected:
+    if os == "win": [OK, TIMEOUT]
   [URL: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-stringifier.any.js.ini b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-stringifier.any.js.ini
index 5874c97..927c36c 100644
--- a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-stringifier.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-stringifier.any.js.ini
@@ -1,6 +1,5 @@
 [urlsearchparams-stringifier.any.worker.html]
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): CRASH
 
 [urlsearchparams-stringifier.any.html]
-  expected:
-    if (os == "linux") and (flag_specific == "") and (product == "content_shell"): [OK, CRASH]
-    if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/visual-viewport/page-and-offset-in-iframe.html.ini b/third_party/blink/web_tests/external/wpt/visual-viewport/page-and-offset-in-iframe.html.ini
new file mode 100644
index 0000000..ce1ff12
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/visual-viewport/page-and-offset-in-iframe.html.ini
@@ -0,0 +1,2 @@
+[page-and-offset-in-iframe.html]
+  expected: ERROR
diff --git a/third_party/blink/web_tests/external/wpt/visual-viewport/scroll-event-order.html.ini b/third_party/blink/web_tests/external/wpt/visual-viewport/scroll-event-order.html.ini
new file mode 100644
index 0000000..2f94365
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/visual-viewport/scroll-event-order.html.ini
@@ -0,0 +1,2 @@
+[scroll-event-order.html]
+  expected: [ERROR, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/visual-viewport/viewport-resize-event-on-load-overflowing-page.html.ini b/third_party/blink/web_tests/external/wpt/visual-viewport/viewport-resize-event-on-load-overflowing-page.html.ini
new file mode 100644
index 0000000..70faeff
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/visual-viewport/viewport-resize-event-on-load-overflowing-page.html.ini
@@ -0,0 +1,3 @@
+[viewport-resize-event-on-load-overflowing-page.html]
+  expected:
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-002.html.ini b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-002.html.ini
index 9ffe2cab..908c5c6e 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-002.html.ini
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-002.html.ini
@@ -1,4 +1,6 @@
 [accumulation-per-property-002.html]
+  expected:
+    if os == "win": [OK, TIMEOUT]
   [stroke-dasharray: dasharray]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002.html.ini b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002.html.ini
index 45302ed2..5e28cf4 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002.html.ini
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002.html.ini
@@ -1,4 +1,6 @@
 [interpolation-per-property-002.html]
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, CRASH]
   [list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/finished.html.ini b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/finished.html.ini
index 852bf244..a3e52c7 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/finished.html.ini
+++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/finished.html.ini
@@ -1,5 +1,4 @@
 [finished.html]
   [Test finished promise changes for animation duration changes]
     expected:
-      if (flag_specific == "") and (product == "chrome"): [PASS, FAIL]
-      if flag_specific == "disable-layout-ng": FAIL
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html.ini b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html.ini
index bc13883..abf20dbb 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html.ini
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html.ini
@@ -4,7 +4,3 @@
 
   [Setting a negative current time with a positive playback rate]
     expected: [PASS, FAIL]
-
-  [Setting the current time after the end with a negative playback rate]
-    expected:
-      if product == "chrome": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/document-timelines.html.ini b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/document-timelines.html.ini
new file mode 100644
index 0000000..08dcd48
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/document-timelines.html.ini
@@ -0,0 +1,4 @@
+[document-timelines.html]
+  [Document timelines report current time relative to navigationStart]
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/sibling-iframe-timeline.html.ini b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/sibling-iframe-timeline.html.ini
index 675b3f1..fda793b 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/sibling-iframe-timeline.html.ini
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/sibling-iframe-timeline.html.ini
@@ -1,5 +1,6 @@
 [sibling-iframe-timeline.html]
   [animation tied to another frame's timeline runs properly]
     expected:
-      if (flag_specific == "") and (os == "win"): FAIL
-      if flag_specific == "disable-layout-ng": FAIL
+      if (flag_specific == "") and (product == "chrome"): PASS
+      if flag_specific == "disable-site-isolation-trials": PASS
+      FAIL
diff --git a/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/reuse-web-bundle-resource.https.tentative.html.ini b/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/reuse-web-bundle-resource.https.tentative.html.ini
index ffa17e9..41577178 100644
--- a/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/reuse-web-bundle-resource.https.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/web-bundle/subresource-loading/reuse-web-bundle-resource.https.tentative.html.ini
@@ -1,4 +1,9 @@
 [reuse-web-bundle-resource.https.tentative.html]
   ['remove(), then append()' should reuse webbundle resources]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
+      if (flag_specific == "") and (product == "chrome"): [PASS, FAIL]
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
+
+  [A webbundle should be fetched again when new script element is appended.]
+    expected:
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/web-locks/query-ordering.tentative.https.html.ini b/third_party/blink/web_tests/external/wpt/web-locks/query-ordering.tentative.https.html.ini
new file mode 100644
index 0000000..b63d722
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/web-locks/query-ordering.tentative.https.html.ini
@@ -0,0 +1,3 @@
+[query-ordering.tentative.https.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html.ini b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html.ini
index 553f41a..55c0f7c0 100644
--- a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html.ini
+++ b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html.ini
@@ -1,4 +1,4 @@
 [test-analyser-output.html]
   [AnalyserNode output]
     expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+      if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html.ini b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html.ini
index fc818e51..2a7592e 100644
--- a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html.ini
@@ -1,5 +1,3 @@
 [suspended-context-messageport.https.html]
   [realtime suspended]
-    expected:
-      if flag_specific == "disable-layout-ng": PASS
-      FAIL
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html.ini b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html.ini
new file mode 100644
index 0000000..41f6326
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html.ini
@@ -0,0 +1,5 @@
+[mediaElementAudioSourceToScriptProcessorTest.html]
+  [All data processed correctly]
+    expected:
+      if (flag_specific == "") and (product == "chrome"): [PASS, FAIL]
+      if flag_specific == "disable-site-isolation-trials": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webcodecs/image-decoder.https.any.js.ini b/third_party/blink/web_tests/external/wpt/webcodecs/image-decoder.https.any.js.ini
index 224a1b9..84fd101 100644
--- a/third_party/blink/web_tests/external/wpt/webcodecs/image-decoder.https.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/webcodecs/image-decoder.https.any.js.ini
@@ -2,4 +2,4 @@
 
 [image-decoder.https.any.worker.html]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, ERROR]
+    if os == "win": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/workers.html.ini b/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/workers.html.ini
index 49c2787..fd51247 100644
--- a/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/workers.html.ini
+++ b/third_party/blink/web_tests/external/wpt/webmessaging/broadcastchannel/workers.html.ini
@@ -1,3 +1,3 @@
 [workers.html]
   expected:
-    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
+    if flag_specific == "disable-site-isolation-trials": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/message-channels/worker-post-after-close.any.js.ini b/third_party/blink/web_tests/external/wpt/webmessaging/message-channels/worker-post-after-close.any.js.ini
new file mode 100644
index 0000000..38e85428
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/webmessaging/message-channels/worker-post-after-close.any.js.ini
@@ -0,0 +1,5 @@
+[worker-post-after-close.any.html]
+
+[worker-post-after-close.any.worker.html]
+  expected:
+    if os == "win": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html.ini b/third_party/blink/web_tests/external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html.ini
index 6742e102..b15baab 100644
--- a/third_party/blink/web_tests/external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html.ini
+++ b/third_party/blink/web_tests/external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html.ini
@@ -1,4 +1,6 @@
 [broadcastchannel-incumbent.sub.html]
+  expected:
+    if os == "win": [OK, TIMEOUT]
   [The incumbent page being cross-origin must not prevent the BroadcastChannel message from being seen]
     expected:
       if (flag_specific == "") and (product == "chrome"): PASS
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/postMessage_Date.sub.htm.ini b/third_party/blink/web_tests/external/wpt/webmessaging/postMessage_Date.sub.htm.ini
index 2ab22ee..dd186255 100644
--- a/third_party/blink/web_tests/external/wpt/webmessaging/postMessage_Date.sub.htm.ini
+++ b/third_party/blink/web_tests/external/wpt/webmessaging/postMessage_Date.sub.htm.ini
@@ -1,3 +1,3 @@
 [postMessage_Date.sub.htm]
   expected:
-    if os == "win": [OK, TIMEOUT]
+    if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/with-ports/020.html.ini b/third_party/blink/web_tests/external/wpt/webmessaging/with-ports/020.html.ini
index b35e66e..265c7a6 100644
--- a/third_party/blink/web_tests/external/wpt/webmessaging/with-ports/020.html.ini
+++ b/third_party/blink/web_tests/external/wpt/webmessaging/with-ports/020.html.ini
@@ -1,4 +1,4 @@
 [020.html]
   [cross-origin test]
     expected:
-      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [PASS, FAIL]
+      if (flag_specific == "") and (os == "linux") and (product == "content_shell"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/webmessaging/without-ports/021.html.ini b/third_party/blink/web_tests/external/wpt/webmessaging/without-ports/021.html.ini
new file mode 100644
index 0000000..fd4aad1
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/webmessaging/without-ports/021.html.ini
@@ -0,0 +1,4 @@
+[021.html]
+  [cross-origin test]
+    expected:
+      if flag_specific == "disable-layout-ng": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js.ini b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js.ini
index bb6995d..c656216 100644
--- a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.js.ini
@@ -1,6 +1,6 @@
 [idlharness.https.any.html]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [ERROR, OK]
   [idl_test setup]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCDTMFSender-ontonechange.https.html.ini b/third_party/blink/web_tests/external/wpt/webrtc/RTCDTMFSender-ontonechange.https.html.ini
index 0efeed6..6f466d4 100644
--- a/third_party/blink/web_tests/external/wpt/webrtc/RTCDTMFSender-ontonechange.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCDTMFSender-ontonechange.https.html.ini
@@ -4,4 +4,12 @@
 
   [Setting transceiver.currentDirection to recvonly in the middle of tonechange events should stop future tonechange events from firing]
     expected:
-      if flag_specific == "disable-site-isolation-trials": [PASS, FAIL]
+      if (flag_specific == "") and (product == "chrome"): [PASS, FAIL]
+
+  [Calling insertDTMF() multiple times in the middle of tonechange events should cause future tonechanges to be updated the last provided tones]
+    expected:
+      if product == "chrome": [PASS, FAIL]
+
+  [Calling insertDTMF() in the middle of tonechange events should cause future tonechanges to be updated to new tones]
+    expected:
+      if product == "chrome": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-relay-canvas.https.html.ini b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-relay-canvas.https.html.ini
deleted file mode 100644
index b6a946f..0000000
--- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-relay-canvas.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[RTCPeerConnection-relay-canvas.https.html]
-  [Two PeerConnections relaying a canvas source]
-    expected:
-      if product == "chrome": [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/ar_dom_overlay.https.html.ini b/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/ar_dom_overlay.https.html.ini
index bd83b2c..afc8c69 100644
--- a/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/ar_dom_overlay.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/ar_dom_overlay.https.html.ini
@@ -1,5 +1,6 @@
 [ar_dom_overlay.https.html]
   expected:
+    if (product == "content_shell") and (flag_specific == "disable-layout-ng"): [OK, TIMEOUT]
     if product == "chrome": TIMEOUT
   [Ensures DOM Overlay rejected without root element]
     expected:
diff --git a/third_party/blink/web_tests/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini b/third_party/blink/web_tests/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini
index e0a82b3..1fabe48 100644
--- a/third_party/blink/web_tests/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini
@@ -1,6 +1,6 @@
 [xrDevice_requestSession_optionalFeatures.https.html]
   expected:
-    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
+    if flag_specific == "disable-site-isolation-trials": CRASH
   [Tests requestSession accepts XRSessionInit dictionary - webgl]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-timeout-cancel-order.html.ini b/third_party/blink/web_tests/external/wpt/workers/Worker-timeout-cancel-order.html.ini
new file mode 100644
index 0000000..210a6f06c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-timeout-cancel-order.html.ini
@@ -0,0 +1,3 @@
+[Worker-timeout-cancel-order.html]
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/workers/baseurl/alpha/sharedworker-in-worker.html.ini b/third_party/blink/web_tests/external/wpt/workers/baseurl/alpha/sharedworker-in-worker.html.ini
index d21b77c..9b71537 100644
--- a/third_party/blink/web_tests/external/wpt/workers/baseurl/alpha/sharedworker-in-worker.html.ini
+++ b/third_party/blink/web_tests/external/wpt/workers/baseurl/alpha/sharedworker-in-worker.html.ini
@@ -1,5 +1,3 @@
 [sharedworker-in-worker.html]
-  expected:
-    if product == "chrome": ERROR
   [Base URL in workers: new SharedWorker()]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-from-blob-url.window.js.ini b/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-from-blob-url.window.js.ini
index 282999e..b6f8e24 100644
--- a/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-from-blob-url.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-from-blob-url.window.js.ini
@@ -1,3 +1,4 @@
 [dedicated-worker-from-blob-url.window.html]
   expected:
+    if (flag_specific == "") and (os == "win"): [OK, TIMEOUT]
     if flag_specific == "disable-layout-ng": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-in-data-url-context.window.js.ini b/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-in-data-url-context.window.js.ini
index 0521a49..8e3ebef 100644
--- a/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-in-data-url-context.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/workers/dedicated-worker-in-data-url-context.window.js.ini
@@ -1,6 +1,4 @@
 [dedicated-worker-in-data-url-context.window.html]
-  expected:
-    if flag_specific == "disable-site-isolation-trials": TIMEOUT
   [Create a dedicated worker in a data url frame]
     expected: FAIL
 
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/SharedWorkerGlobalScope/name/setting.html.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/SharedWorkerGlobalScope/name/setting.html.ini
new file mode 100644
index 0000000..2244b252
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/interfaces/SharedWorkerGlobalScope/name/setting.html.ini
@@ -0,0 +1,3 @@
+[setting.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/close/setInterval.html.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/close/setInterval.html.ini
new file mode 100644
index 0000000..61d568f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/close/setInterval.html.ini
@@ -0,0 +1,3 @@
+[setInterval.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect-module.html.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect-module.html.ini
new file mode 100644
index 0000000..1c6515f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect-module.html.ini
@@ -0,0 +1,3 @@
+[redirect-module.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect.html.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect.html.ini
index fd33d33..3a0f10f 100644
--- a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect.html.ini
+++ b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/location/redirect.html.ini
@@ -1,3 +1,3 @@
 [redirect.html]
   expected:
-    if os == "win": [OK, TIMEOUT]
+    if os == "win": TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/self.any.js.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/self.any.js.ini
deleted file mode 100644
index bfb49c3..0000000
--- a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerGlobalScope/self.any.js.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[self.any.worker.html]
-
-[self.any.serviceworker.html]
-  expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
-
-[self.any.sharedworker.html]
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-same-origin.sub.any.js.ini b/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-same-origin.sub.any.js.ini
deleted file mode 100644
index c377da75..0000000
--- a/third_party/blink/web_tests/external/wpt/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-same-origin.sub.any.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[report-error-setTimeout-same-origin.sub.any.sharedworker.html]
-
-[report-error-setTimeout-same-origin.sub.any.worker.html]
-  expected:
-    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/external/wpt/workers/semantics/xhr/003.html.ini b/third_party/blink/web_tests/external/wpt/workers/semantics/xhr/003.html.ini
index df562551..d7839083 100644
--- a/third_party/blink/web_tests/external/wpt/workers/semantics/xhr/003.html.ini
+++ b/third_party/blink/web_tests/external/wpt/workers/semantics/xhr/003.html.ini
@@ -1,3 +1,3 @@
 [003.html]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/xhr/abort-after-send.any.js.ini b/third_party/blink/web_tests/external/wpt/xhr/abort-after-send.any.js.ini
index a0be8075..81d696c3 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/abort-after-send.any.js.ini
+++ b/third_party/blink/web_tests/external/wpt/xhr/abort-after-send.any.js.ini
@@ -4,5 +4,7 @@
 
 
 [abort-after-send.any.worker.html]
+  expected:
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
   [XMLHttpRequest: abort() after send()]
     expected: FAIL
diff --git "a/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..f5843467
--- /dev/null
+++ "b/third_party/blink/web_tests/flag-specific/disable-layout-ng/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,706 @@
+This is a testharness.js-based test.
+Found 605 tests; 466 PASS, 139 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f: /c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+PASS Parsing: <\\x\hello> against <http://example.org/foo/bar>
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:@/www.example.com> against <about:blank>
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+PASS Parsing: <http:@/www.example.com> against <about:blank>
+PASS Parsing: <http:/@/www.example.com> against <about:blank>
+PASS Parsing: <http://@/www.example.com> against <about:blank>
+PASS Parsing: <https:@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http::@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+PASS Parsing: <http:@:www.example.com> against <about:blank>
+PASS Parsing: <http:/@:www.example.com> against <about:blank>
+PASS Parsing: <http://@:www.example.com> against <about:blank>
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://[]> against <http://other.com/>
+PASS Parsing: <http://[:]> against <http://other.com/>
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
+PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
+PASS Parsing: <https://�> against <about:blank>
+PASS Parsing: <https://%EF%BF%BD> against <about:blank>
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://%00.com> against <http://other.com/>
+PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>
+PASS Parsing: <http://你好你好> against <http://other.com/>
+FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/"
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+PASS Parsing: <http://%zz%66%a.com> against <http://other.com/>
+PASS Parsing: <http://%25> against <http://other.com/>
+PASS Parsing: <http://hello%00> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+PASS Parsing: <http://192.168.0.257> against <http://other.com/>
+PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <https://x x:12> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: host expected "." but got ""
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+PASS Parsing: <http://[google.com]> against <http://other.com/>
+PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/>
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+PASS Parsing: <#x> against <data:,>
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+PASS Parsing: <i> against <sc:sd>
+PASS Parsing: <i> against <sc:sd/sd>
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+PASS Parsing: <../i> against <sc:sd>
+PASS Parsing: <../i> against <sc:sd/sd>
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: </i> against <sc:sd>
+PASS Parsing: </i> against <sc:sd/sd>
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: <?i> against <sc:sd>
+PASS Parsing: <?i> against <sc:sd/sd>
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:12/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a^b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <http://a\0b/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+FAIL Parsing: <http://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a%b/> against <about:blank>
+FAIL Parsing: <http://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+PASS Parsing: <http://a^b> against <about:blank>
+FAIL Parsing: <http://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+PASS Parsing: <http://ho%3Ast/> against <about:blank>
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%5Bst/> against <about:blank>
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+PASS Parsing: <http://ho%5Dst/> against <about:blank>
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+PASS Parsing: <ftp://example.com%80/> against <about:blank>
+PASS Parsing: <ftp://example.com%A0/> against <about:blank>
+PASS Parsing: <https://example.com%80/> against <about:blank>
+PASS Parsing: <https://example.com%A0/> against <about:blank>
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+PASS Parsing: <http://10000000000> against <http://other.com/>
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+PASS Parsing: <http://4294967296> against <http://other.com/>
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+PASS Parsing: <http://0xffffffff1> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256> against <http://other.com/>
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+PASS Parsing: <\\\.\Y:> against <about:blank>
+PASS Parsing: <\\\.\y:> against <about:blank>
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
+PASS Parsing: <https://[0::0::0]> against <about:blank>
+PASS Parsing: <https://[0:.0]> against <about:blank>
+PASS Parsing: <https://[0:0:]> against <about:blank>
+PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank>
+PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.23.23]> against <about:blank>
+PASS Parsing: <http://?> against <about:blank>
+PASS Parsing: <http://#> against <about:blank>
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+PASS Parsing: <http://[::127.0.0.0.1]> against <about:blank>
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+PASS Parsing: <a> against <about:blank>
+PASS Parsing: <a/> against <about:blank>
+PASS Parsing: <a//> against <about:blank>
+PASS Parsing: <test-a-colon.html> against <a:>
+PASS Parsing: <test-a-colon-b.html> against <a:b>
+PASS Parsing: <test-a-colon-slash.html> against <a:/>
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> Failed to construct 'URL': Invalid URL
+PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> Failed to construct 'URL': Invalid URL
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+PASS Parsing: <#> against <null>
+PASS Parsing: <?> against <null>
+PASS Parsing: <http://1.2.3.4.5> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4.5.> against <http://other.com/>
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256.256.> against <http://other.com/>
+PASS Parsing: <http://1.2.3.08> against <about:blank>
+PASS Parsing: <http://1.2.3.08.> against <about:blank>
+PASS Parsing: <http://1.2.3.09> against <about:blank>
+PASS Parsing: <http://09.2.3.4> against <about:blank>
+PASS Parsing: <http://09.2.3.4.> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4.> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.09> against <about:blank>
+PASS Parsing: <http://foo.09.> against <about:blank>
+PASS Parsing: <http://foo.0x4> against <about:blank>
+PASS Parsing: <http://foo.0x4.> against <about:blank>
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+PASS Parsing: <http://foo.0x> against <about:blank>
+PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
+PASS Parsing: <http://💩.123/> against <about:blank>
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/skipad-origin-trial.html b/third_party/blink/web_tests/http/tests/origin_trials/webexposed/skipad-origin-trial.html
deleted file mode 100644
index 1913871a..0000000
--- a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/skipad-origin-trial.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>SkipAd - media session action exposed by origin trial</title>
-<script src="../../../../resources/testharness.js"></script>
-<script src="../../../../resources/testharnessreport.js"></script>
-<script src="../../../../resources/origin-trials-helper.js"></script>
-
-<script>
-// Can only run this test if SkipAd is not enabled via a Chrome flag.
-// That is only the case when running this in a virtual test suite (by default,
-// runtime enabled features are on for layout tests).
-// To run in virtual test suite:
-// tools/run_web_tests.py virtual/origin-trials-runtimeflags-disabled/http/tests/origin_trials/webexposed
-if (!self.internals.runtimeFlags.skipAdEnabled) {
-  test(t => {
-    assert_throws_js(TypeError, function() {
-      navigator.mediaSession.setActionHandler('skipad', function() {});
-    });
-    assert_throws_js(TypeError, function() {
-      navigator.mediaSession.setActionHandler('skipad', null);
-    });
-  }, 'skipad media session action in Origin-Trial disabled document.');
-}
-
-// generated with command
-// tools/origin_trials/generate_token.py http://127.0.0.1:8000 SkipAd --expire-timestamp=2000000000
-const token = 'AnO+YFdm66rVdQ2ZEckocTP2NIsSxSK8BqyMlgIO/sCbXb484ga4DdbgLOn5z52n6WE9HxpKiB9XI97zDfTGvQoAAABOeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiU2tpcEFkIiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9';
-OriginTrialsHelper.add_token(token);
-test(t => {
-  navigator.mediaSession.setActionHandler('skipad', function() {});
-  navigator.mediaSession.setActionHandler('skipad', null);
-}, 'skipad media session action in Origin-Trial enabled document.');
-</script>
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
index ce64daad..ddb2a07f 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 603 tests; 337 PASS, 266 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 619 tests; 343 PASS, 276 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -614,5 +614,21 @@
 FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
 FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
 FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
index ce64daad..ddb2a07f 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 603 tests; 337 PASS, 266 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 619 tests; 343 PASS, 276 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -614,5 +614,21 @@
 FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
 FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
 FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/failure-expected.txt
index 2ca8c37..773b766f 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/failure-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/failure-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 1043 tests; 704 PASS, 339 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 1055 tests; 714 PASS, 341 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS URL's constructor's base argument: file://example:1/ should throw
 PASS URL's href: file://example:1/ should throw
@@ -1043,5 +1043,17 @@
 PASS sendBeacon(): http://💩.123/ should throw
 FAIL Location's href: http://💩.123/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://💩.123/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
 PASS window.open(): http://💩.123/ should throw
+PASS URL's constructor's base argument: https://\0y should throw
+PASS URL's href: https://\0y should throw
+PASS XHR: https://\0y should throw
+PASS sendBeacon(): https://\0y should throw
+FAIL Location's href: https://\0y should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://\0y' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://\0y should throw
+PASS URL's constructor's base argument: https://￿y should throw
+PASS URL's href: https://￿y should throw
+PASS XHR: https://￿y should throw
+PASS sendBeacon(): https://￿y should throw
+FAIL Location's href: https://￿y should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://￿y' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://￿y should throw
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index 80b7d5ac..b73eb638 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 605 tests; 467 PASS, 138 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 621 tests; 475 PASS, 146 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -702,5 +702,21 @@
 PASS Parsing: <http://foo.0x> against <about:blank>
 PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
 PASS Parsing: <http://💩.123/> against <about:blank>
+PASS Parsing: <https://\0y> against <about:blank>
+FAIL Parsing: <https://x/\0y> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+PASS Parsing: <https://￿y> against <about:blank>
+FAIL Parsing: <https://x/￿y> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
index 80b7d5ac..b73eb638 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 605 tests; 467 PASS, 138 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 621 tests; 475 PASS, 146 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -702,5 +702,21 @@
 PASS Parsing: <http://foo.0x> against <about:blank>
 PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
 PASS Parsing: <http://💩.123/> against <about:blank>
+PASS Parsing: <https://\0y> against <about:blank>
+FAIL Parsing: <https://x/\0y> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+PASS Parsing: <https://￿y> against <about:blank>
+FAIL Parsing: <https://x/￿y> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
index 5cbdc346..da4a243 100644
--- "a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 603 tests; 336 PASS, 267 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 619 tests; 342 PASS, 277 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -614,5 +614,21 @@
 FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
 FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
 FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
index 5cbdc346..da4a243 100644
--- "a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 603 tests; 336 PASS, 267 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 619 tests; 342 PASS, 277 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -614,5 +614,21 @@
 FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
 FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
 FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/failure-expected.txt
new file mode 100644
index 0000000..773b766f
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/failure-expected.txt
@@ -0,0 +1,1059 @@
+This is a testharness.js-based test.
+Found 1055 tests; 714 PASS, 341 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS URL's constructor's base argument: file://example:1/ should throw
+PASS URL's href: file://example:1/ should throw
+PASS XHR: file://example:1/ should throw
+PASS sendBeacon(): file://example:1/ should throw
+FAIL Location's href: file://example:1/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:1/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example:1/ should throw
+PASS URL's constructor's base argument: file://example:test/ should throw
+PASS URL's href: file://example:test/ should throw
+PASS XHR: file://example:test/ should throw
+PASS sendBeacon(): file://example:test/ should throw
+FAIL Location's href: file://example:test/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:test/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example:test/ should throw
+PASS URL's constructor's base argument: file://example%/ should throw
+PASS URL's href: file://example%/ should throw
+PASS XHR: file://example%/ should throw
+PASS sendBeacon(): file://example%/ should throw
+FAIL Location's href: file://example%/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example%/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example%/ should throw
+PASS URL's constructor's base argument: file://[example]/ should throw
+PASS URL's href: file://[example]/ should throw
+PASS XHR: file://[example]/ should throw
+PASS sendBeacon(): file://[example]/ should throw
+FAIL Location's href: file://[example]/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://[example]/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://[example]/ should throw
+PASS URL's constructor's base argument: http://user:pass@/ should throw
+PASS URL's href: http://user:pass@/ should throw
+PASS XHR: http://user:pass@/ should throw
+PASS sendBeacon(): http://user:pass@/ should throw
+FAIL Location's href: http://user:pass@/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user:pass@/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://user:pass@/ should throw
+PASS URL's constructor's base argument: http://foo:-80/ should throw
+PASS URL's href: http://foo:-80/ should throw
+PASS XHR: http://foo:-80/ should throw
+PASS sendBeacon(): http://foo:-80/ should throw
+FAIL Location's href: http://foo:-80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo:-80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo:-80/ should throw
+PASS URL's constructor's base argument: http:/:@/www.example.com should throw
+PASS URL's href: http:/:@/www.example.com should throw
+PASS URL's constructor's base argument: http://user@/www.example.com should throw
+PASS URL's href: http://user@/www.example.com should throw
+PASS XHR: http://user@/www.example.com should throw
+PASS sendBeacon(): http://user@/www.example.com should throw
+FAIL Location's href: http://user@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://user@/www.example.com should throw
+PASS URL's constructor's base argument: http:@/www.example.com should throw
+PASS URL's href: http:@/www.example.com should throw
+PASS URL's constructor's base argument: http:/@/www.example.com should throw
+PASS URL's href: http:/@/www.example.com should throw
+PASS URL's constructor's base argument: http://@/www.example.com should throw
+PASS URL's href: http://@/www.example.com should throw
+PASS XHR: http://@/www.example.com should throw
+PASS sendBeacon(): http://@/www.example.com should throw
+FAIL Location's href: http://@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://@/www.example.com should throw
+PASS URL's constructor's base argument: https:@/www.example.com should throw
+PASS URL's href: https:@/www.example.com should throw
+PASS URL's constructor's base argument: http:a:b@/www.example.com should throw
+PASS URL's href: http:a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http:/a:b@/www.example.com should throw
+PASS URL's href: http:/a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http://a:b@/www.example.com should throw
+PASS URL's href: http://a:b@/www.example.com should throw
+PASS XHR: http://a:b@/www.example.com should throw
+PASS sendBeacon(): http://a:b@/www.example.com should throw
+FAIL Location's href: http://a:b@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a:b@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http::@/www.example.com should throw
+PASS URL's href: http::@/www.example.com should throw
+PASS URL's constructor's base argument: http:@:www.example.com should throw
+PASS URL's href: http:@:www.example.com should throw
+PASS URL's constructor's base argument: http:/@:www.example.com should throw
+PASS URL's href: http:/@:www.example.com should throw
+PASS URL's constructor's base argument: http://@:www.example.com should throw
+PASS URL's href: http://@:www.example.com should throw
+PASS XHR: http://@:www.example.com should throw
+PASS sendBeacon(): http://@:www.example.com should throw
+FAIL Location's href: http://@:www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@:www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://@:www.example.com should throw
+PASS URL's constructor's base argument: https://� should throw
+PASS URL's href: https://� should throw
+PASS XHR: https://� should throw
+PASS sendBeacon(): https://� should throw
+FAIL Location's href: https://� should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://�' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://� should throw
+PASS URL's constructor's base argument: https://%EF%BF%BD should throw
+PASS URL's href: https://%EF%BF%BD should throw
+PASS XHR: https://%EF%BF%BD should throw
+PASS sendBeacon(): https://%EF%BF%BD should throw
+FAIL Location's href: https://%EF%BF%BD should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://%EF%BF%BD' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://%EF%BF%BD should throw
+FAIL URL's constructor's base argument: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.XN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.XN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.Xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.Xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.XN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.XN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.xN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.xN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: https://x x:12 should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: https://x x:12 should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: https://x x:12 should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): https://x x:12 should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: https://x x:12 should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://x x:12 should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://[www.google.com]/ should throw
+PASS URL's href: http://[www.google.com]/ should throw
+PASS XHR: http://[www.google.com]/ should throw
+PASS sendBeacon(): http://[www.google.com]/ should throw
+FAIL Location's href: http://[www.google.com]/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[www.google.com]/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://[www.google.com]/ should throw
+FAIL URL's constructor's base argument: sc://@/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://@/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://@/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://@/ should throw
+FAIL Location's href: sc://@/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://@/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://te@s:t@/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://te@s:t@/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://te@s:t@/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://te@s:t@/ should throw
+FAIL Location's href: sc://te@s:t@/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://te@s:t@/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://:/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://:/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://:/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:/ should throw
+FAIL Location's href: sc://:/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://:12/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://:12/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://:12/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:12/ should throw
+FAIL Location's href: sc://:12/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:12/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a\0b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a\0b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a\0b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a\0b/ should throw
+FAIL Location's href: sc://a\0b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a\0b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a b/ should throw
+FAIL Location's href: sc://a b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a<b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a<b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a<b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a<b should throw
+FAIL Location's href: sc://a<b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a<b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a>b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a>b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a>b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a>b should throw
+FAIL Location's href: sc://a>b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a>b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a[b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a[b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a[b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a[b/ should throw
+FAIL Location's href: sc://a[b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a[b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a\b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a\b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a\b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a\b/ should throw
+FAIL Location's href: sc://a\b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a\b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a]b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a]b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a]b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a]b/ should throw
+FAIL Location's href: sc://a]b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a]b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a^b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a^b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a^b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a^b should throw
+FAIL Location's href: sc://a^b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a^b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a|b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a|b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a|b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a|b/ should throw
+FAIL Location's href: sc://a|b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a|b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a\0b/ should throw
+PASS URL's href: http://a\0b/ should throw
+PASS XHR: http://a\0b/ should throw
+PASS sendBeacon(): http://a\0b/ should throw
+FAIL Location's href: http://a\0b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a\0b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a\0b/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+FAIL URL's constructor's base argument: http://a b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a b/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a%b/ should throw
+PASS URL's href: http://a%b/ should throw
+PASS XHR: http://a%b/ should throw
+PASS sendBeacon(): http://a%b/ should throw
+FAIL Location's href: http://a%b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a%b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a%b/ should throw
+FAIL URL's constructor's base argument: http://a<b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a<b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a<b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a<b should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a<b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a<b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a>b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a>b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a>b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a>b should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a>b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a>b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a[b/ should throw
+PASS URL's href: http://a[b/ should throw
+PASS XHR: http://a[b/ should throw
+PASS sendBeacon(): http://a[b/ should throw
+FAIL Location's href: http://a[b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a[b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a[b/ should throw
+PASS URL's constructor's base argument: http://a]b/ should throw
+PASS URL's href: http://a]b/ should throw
+PASS XHR: http://a]b/ should throw
+PASS sendBeacon(): http://a]b/ should throw
+FAIL Location's href: http://a]b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a]b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a]b/ should throw
+PASS URL's constructor's base argument: http://a^b should throw
+PASS URL's href: http://a^b should throw
+PASS XHR: http://a^b should throw
+PASS sendBeacon(): http://a^b should throw
+FAIL Location's href: http://a^b should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a^b' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a^b should throw
+FAIL URL's constructor's base argument: http://a|b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a|b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a|b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a|b/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a|b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a|b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ho%00st/ should throw
+PASS URL's href: http://ho%00st/ should throw
+PASS XHR: http://ho%00st/ should throw
+PASS sendBeacon(): http://ho%00st/ should throw
+FAIL Location's href: http://ho%00st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%00st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%00st/ should throw
+PASS URL's constructor's base argument: http://ho%01st/ should throw
+PASS URL's href: http://ho%01st/ should throw
+PASS XHR: http://ho%01st/ should throw
+PASS sendBeacon(): http://ho%01st/ should throw
+FAIL Location's href: http://ho%01st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%01st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%01st/ should throw
+PASS URL's constructor's base argument: http://ho%02st/ should throw
+PASS URL's href: http://ho%02st/ should throw
+PASS XHR: http://ho%02st/ should throw
+PASS sendBeacon(): http://ho%02st/ should throw
+FAIL Location's href: http://ho%02st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%02st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%02st/ should throw
+PASS URL's constructor's base argument: http://ho%03st/ should throw
+PASS URL's href: http://ho%03st/ should throw
+PASS XHR: http://ho%03st/ should throw
+PASS sendBeacon(): http://ho%03st/ should throw
+FAIL Location's href: http://ho%03st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%03st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%03st/ should throw
+PASS URL's constructor's base argument: http://ho%04st/ should throw
+PASS URL's href: http://ho%04st/ should throw
+PASS XHR: http://ho%04st/ should throw
+PASS sendBeacon(): http://ho%04st/ should throw
+FAIL Location's href: http://ho%04st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%04st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%04st/ should throw
+PASS URL's constructor's base argument: http://ho%05st/ should throw
+PASS URL's href: http://ho%05st/ should throw
+PASS XHR: http://ho%05st/ should throw
+PASS sendBeacon(): http://ho%05st/ should throw
+FAIL Location's href: http://ho%05st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%05st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%05st/ should throw
+PASS URL's constructor's base argument: http://ho%06st/ should throw
+PASS URL's href: http://ho%06st/ should throw
+PASS XHR: http://ho%06st/ should throw
+PASS sendBeacon(): http://ho%06st/ should throw
+FAIL Location's href: http://ho%06st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%06st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%06st/ should throw
+PASS URL's constructor's base argument: http://ho%07st/ should throw
+PASS URL's href: http://ho%07st/ should throw
+PASS XHR: http://ho%07st/ should throw
+PASS sendBeacon(): http://ho%07st/ should throw
+FAIL Location's href: http://ho%07st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%07st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%07st/ should throw
+PASS URL's constructor's base argument: http://ho%08st/ should throw
+PASS URL's href: http://ho%08st/ should throw
+PASS XHR: http://ho%08st/ should throw
+PASS sendBeacon(): http://ho%08st/ should throw
+FAIL Location's href: http://ho%08st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%08st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%08st/ should throw
+PASS URL's constructor's base argument: http://ho%09st/ should throw
+PASS URL's href: http://ho%09st/ should throw
+PASS XHR: http://ho%09st/ should throw
+PASS sendBeacon(): http://ho%09st/ should throw
+FAIL Location's href: http://ho%09st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%09st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%09st/ should throw
+PASS URL's constructor's base argument: http://ho%0Ast/ should throw
+PASS URL's href: http://ho%0Ast/ should throw
+PASS XHR: http://ho%0Ast/ should throw
+PASS sendBeacon(): http://ho%0Ast/ should throw
+FAIL Location's href: http://ho%0Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Ast/ should throw
+PASS URL's constructor's base argument: http://ho%0Bst/ should throw
+PASS URL's href: http://ho%0Bst/ should throw
+PASS XHR: http://ho%0Bst/ should throw
+PASS sendBeacon(): http://ho%0Bst/ should throw
+FAIL Location's href: http://ho%0Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Bst/ should throw
+PASS URL's constructor's base argument: http://ho%0Cst/ should throw
+PASS URL's href: http://ho%0Cst/ should throw
+PASS XHR: http://ho%0Cst/ should throw
+PASS sendBeacon(): http://ho%0Cst/ should throw
+FAIL Location's href: http://ho%0Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Cst/ should throw
+PASS URL's constructor's base argument: http://ho%0Dst/ should throw
+PASS URL's href: http://ho%0Dst/ should throw
+PASS XHR: http://ho%0Dst/ should throw
+PASS sendBeacon(): http://ho%0Dst/ should throw
+FAIL Location's href: http://ho%0Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Dst/ should throw
+PASS URL's constructor's base argument: http://ho%0Est/ should throw
+PASS URL's href: http://ho%0Est/ should throw
+PASS XHR: http://ho%0Est/ should throw
+PASS sendBeacon(): http://ho%0Est/ should throw
+FAIL Location's href: http://ho%0Est/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Est/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Est/ should throw
+PASS URL's constructor's base argument: http://ho%0Fst/ should throw
+PASS URL's href: http://ho%0Fst/ should throw
+PASS XHR: http://ho%0Fst/ should throw
+PASS sendBeacon(): http://ho%0Fst/ should throw
+FAIL Location's href: http://ho%0Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Fst/ should throw
+PASS URL's constructor's base argument: http://ho%10st/ should throw
+PASS URL's href: http://ho%10st/ should throw
+PASS XHR: http://ho%10st/ should throw
+PASS sendBeacon(): http://ho%10st/ should throw
+FAIL Location's href: http://ho%10st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%10st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%10st/ should throw
+PASS URL's constructor's base argument: http://ho%11st/ should throw
+PASS URL's href: http://ho%11st/ should throw
+PASS XHR: http://ho%11st/ should throw
+PASS sendBeacon(): http://ho%11st/ should throw
+FAIL Location's href: http://ho%11st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%11st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%11st/ should throw
+PASS URL's constructor's base argument: http://ho%12st/ should throw
+PASS URL's href: http://ho%12st/ should throw
+PASS XHR: http://ho%12st/ should throw
+PASS sendBeacon(): http://ho%12st/ should throw
+FAIL Location's href: http://ho%12st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%12st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%12st/ should throw
+PASS URL's constructor's base argument: http://ho%13st/ should throw
+PASS URL's href: http://ho%13st/ should throw
+PASS XHR: http://ho%13st/ should throw
+PASS sendBeacon(): http://ho%13st/ should throw
+FAIL Location's href: http://ho%13st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%13st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%13st/ should throw
+PASS URL's constructor's base argument: http://ho%14st/ should throw
+PASS URL's href: http://ho%14st/ should throw
+PASS XHR: http://ho%14st/ should throw
+PASS sendBeacon(): http://ho%14st/ should throw
+FAIL Location's href: http://ho%14st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%14st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%14st/ should throw
+PASS URL's constructor's base argument: http://ho%15st/ should throw
+PASS URL's href: http://ho%15st/ should throw
+PASS XHR: http://ho%15st/ should throw
+PASS sendBeacon(): http://ho%15st/ should throw
+FAIL Location's href: http://ho%15st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%15st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%15st/ should throw
+PASS URL's constructor's base argument: http://ho%16st/ should throw
+PASS URL's href: http://ho%16st/ should throw
+PASS XHR: http://ho%16st/ should throw
+PASS sendBeacon(): http://ho%16st/ should throw
+FAIL Location's href: http://ho%16st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%16st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%16st/ should throw
+PASS URL's constructor's base argument: http://ho%17st/ should throw
+PASS URL's href: http://ho%17st/ should throw
+PASS XHR: http://ho%17st/ should throw
+PASS sendBeacon(): http://ho%17st/ should throw
+FAIL Location's href: http://ho%17st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%17st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%17st/ should throw
+PASS URL's constructor's base argument: http://ho%18st/ should throw
+PASS URL's href: http://ho%18st/ should throw
+PASS XHR: http://ho%18st/ should throw
+PASS sendBeacon(): http://ho%18st/ should throw
+FAIL Location's href: http://ho%18st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%18st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%18st/ should throw
+PASS URL's constructor's base argument: http://ho%19st/ should throw
+PASS URL's href: http://ho%19st/ should throw
+PASS XHR: http://ho%19st/ should throw
+PASS sendBeacon(): http://ho%19st/ should throw
+FAIL Location's href: http://ho%19st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%19st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%19st/ should throw
+PASS URL's constructor's base argument: http://ho%1Ast/ should throw
+PASS URL's href: http://ho%1Ast/ should throw
+PASS XHR: http://ho%1Ast/ should throw
+PASS sendBeacon(): http://ho%1Ast/ should throw
+FAIL Location's href: http://ho%1Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Ast/ should throw
+PASS URL's constructor's base argument: http://ho%1Bst/ should throw
+PASS URL's href: http://ho%1Bst/ should throw
+PASS XHR: http://ho%1Bst/ should throw
+PASS sendBeacon(): http://ho%1Bst/ should throw
+FAIL Location's href: http://ho%1Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Bst/ should throw
+PASS URL's constructor's base argument: http://ho%1Cst/ should throw
+PASS URL's href: http://ho%1Cst/ should throw
+PASS XHR: http://ho%1Cst/ should throw
+PASS sendBeacon(): http://ho%1Cst/ should throw
+FAIL Location's href: http://ho%1Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Cst/ should throw
+PASS URL's constructor's base argument: http://ho%1Dst/ should throw
+PASS URL's href: http://ho%1Dst/ should throw
+PASS XHR: http://ho%1Dst/ should throw
+PASS sendBeacon(): http://ho%1Dst/ should throw
+FAIL Location's href: http://ho%1Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Dst/ should throw
+PASS URL's constructor's base argument: http://ho%1Est/ should throw
+PASS URL's href: http://ho%1Est/ should throw
+PASS XHR: http://ho%1Est/ should throw
+PASS sendBeacon(): http://ho%1Est/ should throw
+FAIL Location's href: http://ho%1Est/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Est/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Est/ should throw
+PASS URL's constructor's base argument: http://ho%1Fst/ should throw
+PASS URL's href: http://ho%1Fst/ should throw
+PASS XHR: http://ho%1Fst/ should throw
+PASS sendBeacon(): http://ho%1Fst/ should throw
+FAIL Location's href: http://ho%1Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Fst/ should throw
+FAIL URL's constructor's base argument: http://ho%20st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%20st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%20st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%20st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%20st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%20st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://ho%23st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%23st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%23st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%23st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%23st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%23st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%25st/ should throw
+PASS URL's href: http://ho%25st/ should throw
+PASS XHR: http://ho%25st/ should throw
+PASS sendBeacon(): http://ho%25st/ should throw
+FAIL Location's href: http://ho%25st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%25st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%25st/ should throw
+PASS URL's constructor's base argument: http://ho%2Fst/ should throw
+PASS URL's href: http://ho%2Fst/ should throw
+PASS XHR: http://ho%2Fst/ should throw
+PASS sendBeacon(): http://ho%2Fst/ should throw
+FAIL Location's href: http://ho%2Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%2Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%2Fst/ should throw
+PASS URL's constructor's base argument: http://ho%3Ast/ should throw
+PASS URL's href: http://ho%3Ast/ should throw
+PASS XHR: http://ho%3Ast/ should throw
+PASS sendBeacon(): http://ho%3Ast/ should throw
+FAIL Location's href: http://ho%3Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%3Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%3Ast/ should throw
+FAIL URL's constructor's base argument: http://ho%3Cst/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%3Cst/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%3Cst/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%3Cst/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%3Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%3Cst/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://ho%3Est/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%3Est/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%3Est/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%3Est/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%3Est/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%3Est/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%3Fst/ should throw
+PASS URL's href: http://ho%3Fst/ should throw
+PASS XHR: http://ho%3Fst/ should throw
+PASS sendBeacon(): http://ho%3Fst/ should throw
+FAIL Location's href: http://ho%3Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%3Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%3Fst/ should throw
+FAIL URL's constructor's base argument: http://ho%40st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%40st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%40st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%40st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%40st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%40st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%5Bst/ should throw
+PASS URL's href: http://ho%5Bst/ should throw
+PASS XHR: http://ho%5Bst/ should throw
+PASS sendBeacon(): http://ho%5Bst/ should throw
+FAIL Location's href: http://ho%5Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Bst/ should throw
+PASS URL's constructor's base argument: http://ho%5Cst/ should throw
+PASS URL's href: http://ho%5Cst/ should throw
+PASS XHR: http://ho%5Cst/ should throw
+PASS sendBeacon(): http://ho%5Cst/ should throw
+FAIL Location's href: http://ho%5Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Cst/ should throw
+PASS URL's constructor's base argument: http://ho%5Dst/ should throw
+PASS URL's href: http://ho%5Dst/ should throw
+PASS XHR: http://ho%5Dst/ should throw
+PASS sendBeacon(): http://ho%5Dst/ should throw
+FAIL Location's href: http://ho%5Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Dst/ should throw
+FAIL URL's constructor's base argument: http://ho%7Cst/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%7Cst/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%7Cst/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%7Cst/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%7Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%7Cst/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%7Fst/ should throw
+PASS URL's href: http://ho%7Fst/ should throw
+PASS XHR: http://ho%7Fst/ should throw
+PASS sendBeacon(): http://ho%7Fst/ should throw
+FAIL Location's href: http://ho%7Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%7Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%7Fst/ should throw
+PASS URL's constructor's base argument: ftp://example.com%80/ should throw
+PASS URL's href: ftp://example.com%80/ should throw
+PASS XHR: ftp://example.com%80/ should throw
+PASS sendBeacon(): ftp://example.com%80/ should throw
+FAIL Location's href: ftp://example.com%80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): ftp://example.com%80/ should throw
+PASS URL's constructor's base argument: ftp://example.com%A0/ should throw
+PASS URL's href: ftp://example.com%A0/ should throw
+PASS XHR: ftp://example.com%A0/ should throw
+PASS sendBeacon(): ftp://example.com%A0/ should throw
+FAIL Location's href: ftp://example.com%A0/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%A0/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): ftp://example.com%A0/ should throw
+PASS URL's constructor's base argument: https://example.com%80/ should throw
+PASS URL's href: https://example.com%80/ should throw
+PASS XHR: https://example.com%80/ should throw
+PASS sendBeacon(): https://example.com%80/ should throw
+FAIL Location's href: https://example.com%80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://example.com%80/ should throw
+PASS URL's constructor's base argument: https://example.com%A0/ should throw
+PASS URL's href: https://example.com%A0/ should throw
+PASS XHR: https://example.com%A0/ should throw
+PASS sendBeacon(): https://example.com%A0/ should throw
+FAIL Location's href: https://example.com%A0/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%A0/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://example.com%A0/ should throw
+PASS URL's constructor's base argument: https://0x100000000/test should throw
+PASS URL's href: https://0x100000000/test should throw
+PASS XHR: https://0x100000000/test should throw
+PASS sendBeacon(): https://0x100000000/test should throw
+FAIL Location's href: https://0x100000000/test should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://0x100000000/test' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://0x100000000/test should throw
+PASS URL's constructor's base argument: https://256.0.0.1/test should throw
+PASS URL's href: https://256.0.0.1/test should throw
+PASS XHR: https://256.0.0.1/test should throw
+PASS sendBeacon(): https://256.0.0.1/test should throw
+FAIL Location's href: https://256.0.0.1/test should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://256.0.0.1/test' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://256.0.0.1/test should throw
+PASS URL's constructor's base argument: file://%43%3A should throw
+PASS URL's href: file://%43%3A should throw
+PASS XHR: file://%43%3A should throw
+PASS sendBeacon(): file://%43%3A should throw
+FAIL Location's href: file://%43%3A should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://%43%3A' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://%43%3A should throw
+FAIL URL's constructor's base argument: file://%43%7C should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43%7C should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43%7C should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43%7C should throw
+FAIL Location's href: file://%43%7C should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43%7C should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://%43| should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43| should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43| should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43| should throw
+FAIL Location's href: file://%43| should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43| should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://C%7C should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://C%7C should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://C%7C should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://C%7C should throw
+FAIL Location's href: file://C%7C should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://C%7C should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://%43%7C/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43%7C/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43%7C/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43%7C/ should throw
+FAIL Location's href: file://%43%7C/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43%7C/ should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: https://%43%7C/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: https://%43%7C/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: https://%43%7C/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): https://%43%7C/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: https://%43%7C/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://%43%7C/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: asdf://%43|/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: asdf://%43|/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: asdf://%43|/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): asdf://%43|/ should throw
+FAIL Location's href: asdf://%43|/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): asdf://%43|/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: \\\.\Y: should throw
+PASS URL's href: \\\.\Y: should throw
+PASS URL's constructor's base argument: \\\.\y: should throw
+PASS URL's href: \\\.\y: should throw
+PASS URL's constructor's base argument: https://[0::0::0] should throw
+PASS URL's href: https://[0::0::0] should throw
+PASS XHR: https://[0::0::0] should throw
+PASS sendBeacon(): https://[0::0::0] should throw
+FAIL Location's href: https://[0::0::0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0::0::0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0::0::0] should throw
+PASS URL's constructor's base argument: https://[0:.0] should throw
+PASS URL's href: https://[0:.0] should throw
+PASS XHR: https://[0:.0] should throw
+PASS sendBeacon(): https://[0:.0] should throw
+FAIL Location's href: https://[0:.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:.0] should throw
+PASS URL's constructor's base argument: https://[0:0:] should throw
+PASS URL's href: https://[0:0:] should throw
+PASS XHR: https://[0:0:] should throw
+PASS sendBeacon(): https://[0:0:] should throw
+FAIL Location's href: https://[0:0:] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:0:]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:0:] should throw
+PASS URL's constructor's base argument: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1:2:3:4:5:6:7.0.0.0.1]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS URL's constructor's base argument: https://[0:1.00.0.0.0] should throw
+PASS URL's href: https://[0:1.00.0.0.0] should throw
+PASS XHR: https://[0:1.00.0.0.0] should throw
+PASS sendBeacon(): https://[0:1.00.0.0.0] should throw
+FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.00.0.0.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.00.0.0.0] should throw
+PASS URL's constructor's base argument: https://[0:1.290.0.0.0] should throw
+PASS URL's href: https://[0:1.290.0.0.0] should throw
+PASS XHR: https://[0:1.290.0.0.0] should throw
+PASS sendBeacon(): https://[0:1.290.0.0.0] should throw
+FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.290.0.0.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.290.0.0.0] should throw
+PASS URL's constructor's base argument: https://[0:1.23.23] should throw
+PASS URL's href: https://[0:1.23.23] should throw
+PASS XHR: https://[0:1.23.23] should throw
+PASS sendBeacon(): https://[0:1.23.23] should throw
+FAIL Location's href: https://[0:1.23.23] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.23.23]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.23.23] should throw
+PASS URL's constructor's base argument: http://? should throw
+PASS URL's href: http://? should throw
+PASS XHR: http://? should throw
+PASS sendBeacon(): http://? should throw
+FAIL Location's href: http://? should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://?' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://? should throw
+PASS URL's constructor's base argument: http://# should throw
+PASS URL's href: http://# should throw
+PASS XHR: http://# should throw
+PASS sendBeacon(): http://# should throw
+FAIL Location's href: http://# should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://#' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://# should throw
+FAIL URL's constructor's base argument: non-special://[:80/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: non-special://[:80/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: non-special://[:80/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): non-special://[:80/ should throw
+FAIL Location's href: non-special://[:80/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): non-special://[:80/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://[::127.0.0.0.1] should throw
+PASS URL's href: http://[::127.0.0.0.1] should throw
+PASS XHR: http://[::127.0.0.0.1] should throw
+PASS sendBeacon(): http://[::127.0.0.0.1] should throw
+FAIL Location's href: http://[::127.0.0.0.1] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[::127.0.0.0.1]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://[::127.0.0.0.1] should throw
+PASS URL's constructor's base argument: a should throw
+PASS URL's href: a should throw
+PASS URL's constructor's base argument: a/ should throw
+PASS URL's href: a/ should throw
+PASS URL's constructor's base argument: a// should throw
+PASS URL's href: a// should throw
+PASS URL's constructor's base argument: file://­/p should throw
+PASS URL's href: file://­/p should throw
+PASS XHR: file://­/p should throw
+PASS sendBeacon(): file://­/p should throw
+FAIL Location's href: file://­/p should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://­/p' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://­/p should throw
+PASS URL's constructor's base argument: file://%C2%AD/p should throw
+PASS URL's href: file://%C2%AD/p should throw
+PASS XHR: file://%C2%AD/p should throw
+PASS sendBeacon(): file://%C2%AD/p should throw
+FAIL Location's href: file://%C2%AD/p should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://%C2%AD/p' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://%C2%AD/p should throw
+FAIL URL's constructor's base argument: file://xn--/p should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://xn--/p should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://xn--/p should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://xn--/p should throw
+FAIL Location's href: file://xn--/p should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://xn--/p should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's constructor's base argument: http://0..0x300/ should throw
+PASS URL's href: http://0..0x300/ should throw
+PASS XHR: http://0..0x300/ should throw
+PASS sendBeacon(): http://0..0x300/ should throw
+FAIL Location's href: http://0..0x300/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0..0x300/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0..0x300/ should throw
+PASS URL's constructor's base argument: http://0..0x300./ should throw
+PASS URL's href: http://0..0x300./ should throw
+PASS XHR: http://0..0x300./ should throw
+PASS sendBeacon(): http://0..0x300./ should throw
+FAIL Location's href: http://0..0x300./ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0..0x300./' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0..0x300./ should throw
+PASS URL's constructor's base argument: http://1.2.3.08 should throw
+PASS URL's href: http://1.2.3.08 should throw
+PASS XHR: http://1.2.3.08 should throw
+PASS sendBeacon(): http://1.2.3.08 should throw
+FAIL Location's href: http://1.2.3.08 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.08' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.08 should throw
+PASS URL's constructor's base argument: http://1.2.3.08. should throw
+PASS URL's href: http://1.2.3.08. should throw
+PASS XHR: http://1.2.3.08. should throw
+PASS sendBeacon(): http://1.2.3.08. should throw
+FAIL Location's href: http://1.2.3.08. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.08.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.08. should throw
+PASS URL's constructor's base argument: http://1.2.3.09 should throw
+PASS URL's href: http://1.2.3.09 should throw
+PASS XHR: http://1.2.3.09 should throw
+PASS sendBeacon(): http://1.2.3.09 should throw
+FAIL Location's href: http://1.2.3.09 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.09' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.09 should throw
+PASS URL's constructor's base argument: http://09.2.3.4 should throw
+PASS URL's href: http://09.2.3.4 should throw
+PASS XHR: http://09.2.3.4 should throw
+PASS sendBeacon(): http://09.2.3.4 should throw
+FAIL Location's href: http://09.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://09.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://09.2.3.4 should throw
+PASS URL's constructor's base argument: http://09.2.3.4. should throw
+PASS URL's href: http://09.2.3.4. should throw
+PASS XHR: http://09.2.3.4. should throw
+PASS sendBeacon(): http://09.2.3.4. should throw
+FAIL Location's href: http://09.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://09.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://09.2.3.4. should throw
+PASS URL's constructor's base argument: http://01.2.3.4.5 should throw
+PASS URL's href: http://01.2.3.4.5 should throw
+PASS XHR: http://01.2.3.4.5 should throw
+PASS sendBeacon(): http://01.2.3.4.5 should throw
+FAIL Location's href: http://01.2.3.4.5 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://01.2.3.4.5' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://01.2.3.4.5 should throw
+PASS URL's constructor's base argument: http://01.2.3.4.5. should throw
+PASS URL's href: http://01.2.3.4.5. should throw
+PASS XHR: http://01.2.3.4.5. should throw
+PASS sendBeacon(): http://01.2.3.4.5. should throw
+FAIL Location's href: http://01.2.3.4.5. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://01.2.3.4.5.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://01.2.3.4.5. should throw
+PASS URL's constructor's base argument: http://0x100.2.3.4 should throw
+PASS URL's href: http://0x100.2.3.4 should throw
+PASS XHR: http://0x100.2.3.4 should throw
+PASS sendBeacon(): http://0x100.2.3.4 should throw
+FAIL Location's href: http://0x100.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x100.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x100.2.3.4 should throw
+PASS URL's constructor's base argument: http://0x100.2.3.4. should throw
+PASS URL's href: http://0x100.2.3.4. should throw
+PASS XHR: http://0x100.2.3.4. should throw
+PASS sendBeacon(): http://0x100.2.3.4. should throw
+FAIL Location's href: http://0x100.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x100.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x100.2.3.4. should throw
+PASS URL's constructor's base argument: http://0x1.2.3.4.5 should throw
+PASS URL's href: http://0x1.2.3.4.5 should throw
+PASS XHR: http://0x1.2.3.4.5 should throw
+PASS sendBeacon(): http://0x1.2.3.4.5 should throw
+FAIL Location's href: http://0x1.2.3.4.5 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x1.2.3.4.5' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x1.2.3.4.5 should throw
+PASS URL's constructor's base argument: http://0x1.2.3.4.5. should throw
+PASS URL's href: http://0x1.2.3.4.5. should throw
+PASS XHR: http://0x1.2.3.4.5. should throw
+PASS sendBeacon(): http://0x1.2.3.4.5. should throw
+FAIL Location's href: http://0x1.2.3.4.5. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x1.2.3.4.5.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x1.2.3.4.5. should throw
+PASS URL's constructor's base argument: http://foo.1.2.3.4 should throw
+PASS URL's href: http://foo.1.2.3.4 should throw
+PASS XHR: http://foo.1.2.3.4 should throw
+PASS sendBeacon(): http://foo.1.2.3.4 should throw
+FAIL Location's href: http://foo.1.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.1.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.1.2.3.4 should throw
+PASS URL's constructor's base argument: http://foo.1.2.3.4. should throw
+PASS URL's href: http://foo.1.2.3.4. should throw
+PASS XHR: http://foo.1.2.3.4. should throw
+PASS sendBeacon(): http://foo.1.2.3.4. should throw
+FAIL Location's href: http://foo.1.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.1.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.1.2.3.4. should throw
+PASS URL's constructor's base argument: http://foo.2.3.4 should throw
+PASS URL's href: http://foo.2.3.4 should throw
+PASS XHR: http://foo.2.3.4 should throw
+PASS sendBeacon(): http://foo.2.3.4 should throw
+FAIL Location's href: http://foo.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.2.3.4 should throw
+PASS URL's constructor's base argument: http://foo.2.3.4. should throw
+PASS URL's href: http://foo.2.3.4. should throw
+PASS XHR: http://foo.2.3.4. should throw
+PASS sendBeacon(): http://foo.2.3.4. should throw
+FAIL Location's href: http://foo.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.2.3.4. should throw
+PASS URL's constructor's base argument: http://foo.09 should throw
+PASS URL's href: http://foo.09 should throw
+PASS XHR: http://foo.09 should throw
+PASS sendBeacon(): http://foo.09 should throw
+FAIL Location's href: http://foo.09 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.09' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.09 should throw
+PASS URL's constructor's base argument: http://foo.09. should throw
+PASS URL's href: http://foo.09. should throw
+PASS XHR: http://foo.09. should throw
+PASS sendBeacon(): http://foo.09. should throw
+FAIL Location's href: http://foo.09. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.09.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.09. should throw
+PASS URL's constructor's base argument: http://foo.0x4 should throw
+PASS URL's href: http://foo.0x4 should throw
+PASS XHR: http://foo.0x4 should throw
+PASS sendBeacon(): http://foo.0x4 should throw
+FAIL Location's href: http://foo.0x4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x4 should throw
+PASS URL's constructor's base argument: http://foo.0x4. should throw
+PASS URL's href: http://foo.0x4. should throw
+PASS XHR: http://foo.0x4. should throw
+PASS sendBeacon(): http://foo.0x4. should throw
+FAIL Location's href: http://foo.0x4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x4. should throw
+PASS URL's constructor's base argument: http://0999999999999999999/ should throw
+PASS URL's href: http://0999999999999999999/ should throw
+PASS XHR: http://0999999999999999999/ should throw
+PASS sendBeacon(): http://0999999999999999999/ should throw
+FAIL Location's href: http://0999999999999999999/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0999999999999999999/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0999999999999999999/ should throw
+PASS URL's constructor's base argument: http://foo.0x should throw
+PASS URL's href: http://foo.0x should throw
+PASS XHR: http://foo.0x should throw
+PASS sendBeacon(): http://foo.0x should throw
+FAIL Location's href: http://foo.0x should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x should throw
+PASS URL's constructor's base argument: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS URL's href: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS XHR: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS sendBeacon(): http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+FAIL Location's href: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0XFfFfFfFfFfFfFfFfFfAcE123' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS URL's constructor's base argument: http://💩.123/ should throw
+PASS URL's href: http://💩.123/ should throw
+PASS XHR: http://💩.123/ should throw
+PASS sendBeacon(): http://💩.123/ should throw
+FAIL Location's href: http://💩.123/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://💩.123/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://💩.123/ should throw
+PASS URL's constructor's base argument: https://\0y should throw
+PASS URL's href: https://\0y should throw
+PASS XHR: https://\0y should throw
+PASS sendBeacon(): https://\0y should throw
+FAIL Location's href: https://\0y should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://\0y' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://\0y should throw
+PASS URL's constructor's base argument: https://￿y should throw
+PASS URL's href: https://￿y should throw
+PASS XHR: https://￿y should throw
+PASS sendBeacon(): https://￿y should throw
+FAIL Location's href: https://￿y should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://￿y' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://￿y should throw
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index f5843467..e08af44 100644
--- "a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 605 tests; 466 PASS, 139 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 621 tests; 474 PASS, 147 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -702,5 +702,21 @@
 PASS Parsing: <http://foo.0x> against <about:blank>
 PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
 PASS Parsing: <http://💩.123/> against <about:blank>
+PASS Parsing: <https://\0y> against <about:blank>
+FAIL Parsing: <https://x/\0y> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+PASS Parsing: <https://￿y> against <about:blank>
+FAIL Parsing: <https://x/￿y> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
index f5843467..e08af44 100644
--- "a/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 605 tests; 466 PASS, 139 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 621 tests; 474 PASS, 147 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -702,5 +702,21 @@
 PASS Parsing: <http://foo.0x> against <about:blank>
 PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
 PASS Parsing: <http://💩.123/> against <about:blank>
+PASS Parsing: <https://\0y> against <about:blank>
+FAIL Parsing: <https://x/\0y> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+PASS Parsing: <https://￿y> against <about:blank>
+FAIL Parsing: <https://x/￿y> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/mac-mac11/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac-mac11/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..ddb2a07f
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/mac-mac11/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,634 @@
+This is a testharness.js-based test.
+Found 619 tests; 343 PASS, 276 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c"
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20#%20e"
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+PASS Parsing: <\\x\hello> against <http://example.org/foo/bar>
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/"
+FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/"
+FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/"
+FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/"
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q"
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com"
+FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com"
+FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com"
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/"
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/"
+FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/"
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+FAIL Parsing: <http://﷐zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://﷐zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/"
+FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/"
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/"
+FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/"
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/"
+FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/"
+FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/"
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/"
+FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/"
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: host expected "." but got ""
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/"
+FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/"
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "test:test#x"
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got ""
+FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got ""
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got ""
+FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got ""
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got ""
+FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got ""
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got ""
+FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got ""
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1"
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD"
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a^b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <http://a\0b/> against <about:blank> assert_equals: failure should set href to input expected "http://a\0b/" but got "http://a%00b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x01b/" but got "http://a%01b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x02b/" but got "http://a%02b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x03b/" but got "http://a%03b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x04b/" but got "http://a%04b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x05b/" but got "http://a%05b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x06b/" but got "http://a%06b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x07b/" but got "http://a%07b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\bb/" but got "http://a%08b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\vb/" but got "http://a%0Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\fb/" but got "http://a%0Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0eb/" but got "http://a%0Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0fb/" but got "http://a%0Fb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x10b/" but got "http://a%10b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x11b/" but got "http://a%11b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x12b/" but got "http://a%12b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x13b/" but got "http://a%13b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x14b/" but got "http://a%14b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x15b/" but got "http://a%15b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x16b/" but got "http://a%16b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x17b/" but got "http://a%17b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x18b/" but got "http://a%18b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x19b/" but got "http://a%19b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1ab/" but got "http://a%1Ab/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1bb/" but got "http://a%1Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1cb/" but got "http://a%1Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1db/" but got "http://a%1Db/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1eb/" but got "http://a%1Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1fb/" but got "http://a%1Fb/"
+FAIL Parsing: <http://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a%b/> against <about:blank> assert_equals: failure should set href to input expected "http://a%b/" but got "http://a%25b/"
+FAIL Parsing: <http://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+FAIL Parsing: <http://a^b> against <about:blank> assert_equals: failure should set href to input expected "http://a^b" but got "http://a%5Eb/"
+FAIL Parsing: <http://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://ab/" but got "http://a%7Fb/"
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+FAIL Parsing: <http://ho%3Ast/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%3Ast/" but got "http://ho:st/"
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%5Bst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Bst/" but got "http://ho[st/"
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+FAIL Parsing: <http://ho%5Dst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Dst/" but got "http://ho]st/"
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/"
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/"
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/"
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/"
+FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/"
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+FAIL Parsing: <\\\.\Y:> against <about:blank> assert_equals: failure should set href to input expected "\\\\\\.\\Y:" but got ""
+FAIL Parsing: <\\\.\y:> against <about:blank> assert_equals: failure should set href to input expected "\\\\\\.\\y:" but got ""
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/"
+FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/"
+FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/"
+FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/"
+FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/"
+FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/"
+FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/"
+FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/"
+FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?"
+FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#"
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1"
+FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1"
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:"
+FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:"
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+FAIL Parsing: <http://[::127.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "http://[::127.0.0.0.1]" but got "http://[::127.0.0.0.1]/"
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+FAIL Parsing: <a> against <about:blank> assert_equals: failure should set href to input expected "a" but got ""
+FAIL Parsing: <a/> against <about:blank> assert_equals: failure should set href to input expected "a/" but got ""
+FAIL Parsing: <a//> against <about:blank> assert_equals: failure should set href to input expected "a//" but got ""
+FAIL Parsing: <test-a-colon.html> against <a:> assert_equals: failure should set href to input expected "test-a-colon.html" but got ""
+FAIL Parsing: <test-a-colon-b.html> against <a:b> assert_equals: failure should set href to input expected "test-a-colon-b.html" but got ""
+PASS Parsing: <test-a-colon-slash.html> against <a:/>
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> assert_equals: href expected "a:///test-a-colon-slash-slash.html" but got ""
+PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> assert_equals: href expected "a://b/test-a-colon-slash-slash-b.html" but got "a://b"
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+FAIL Parsing: <http://1.2.3.4.5> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5" but got "http://1.2.3.4.5/"
+FAIL Parsing: <http://1.2.3.4.5.> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5." but got "http://1.2.3.4.5./"
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+FAIL Parsing: <http://256.256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256" but got "http://256.256.256.256.256/"
+FAIL Parsing: <http://256.256.256.256.256.> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256." but got "http://256.256.256.256.256./"
+FAIL Parsing: <http://1.2.3.08> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08" but got "http://1.2.3.08/"
+FAIL Parsing: <http://1.2.3.08.> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08." but got "http://1.2.3.08./"
+FAIL Parsing: <http://1.2.3.09> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.09" but got "http://1.2.3.09/"
+FAIL Parsing: <http://09.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4" but got "http://09.2.3.4/"
+FAIL Parsing: <http://09.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4." but got "http://09.2.3.4./"
+FAIL Parsing: <http://01.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5" but got "http://01.2.3.4.5/"
+FAIL Parsing: <http://01.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5." but got "http://01.2.3.4.5./"
+FAIL Parsing: <http://0x100.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4" but got "http://0x100.2.3.4/"
+FAIL Parsing: <http://0x100.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4." but got "http://0x100.2.3.4./"
+FAIL Parsing: <http://0x1.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5" but got "http://0x1.2.3.4.5/"
+FAIL Parsing: <http://0x1.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5." but got "http://0x1.2.3.4.5./"
+FAIL Parsing: <http://foo.1.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4" but got "http://foo.1.2.3.4/"
+FAIL Parsing: <http://foo.1.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4." but got "http://foo.1.2.3.4./"
+FAIL Parsing: <http://foo.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4" but got "http://foo.2.3.4/"
+FAIL Parsing: <http://foo.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4." but got "http://foo.2.3.4./"
+FAIL Parsing: <http://foo.09> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09" but got "http://foo.09/"
+FAIL Parsing: <http://foo.09.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09." but got "http://foo.09./"
+FAIL Parsing: <http://foo.0x4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4" but got "http://foo.0x4/"
+FAIL Parsing: <http://foo.0x4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4." but got "http://foo.0x4./"
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
+FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
+FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..ddb2a07f
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/mac-mac12-arm64/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,634 @@
+This is a testharness.js-based test.
+Found 619 tests; 343 PASS, 276 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c"
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20#%20e"
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+PASS Parsing: <\\x\hello> against <http://example.org/foo/bar>
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/"
+FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/"
+FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/"
+FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/"
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q"
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com"
+FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com"
+FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com"
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/"
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/"
+FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/"
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+FAIL Parsing: <http://﷐zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://﷐zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/"
+FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/"
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/"
+FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/"
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/"
+FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/"
+FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/"
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/"
+FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/"
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: host expected "." but got ""
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/"
+FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/"
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "test:test#x"
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got ""
+FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got ""
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got ""
+FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got ""
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got ""
+FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got ""
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got ""
+FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got ""
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1"
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD"
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a^b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <http://a\0b/> against <about:blank> assert_equals: failure should set href to input expected "http://a\0b/" but got "http://a%00b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x01b/" but got "http://a%01b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x02b/" but got "http://a%02b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x03b/" but got "http://a%03b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x04b/" but got "http://a%04b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x05b/" but got "http://a%05b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x06b/" but got "http://a%06b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x07b/" but got "http://a%07b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\bb/" but got "http://a%08b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\vb/" but got "http://a%0Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\fb/" but got "http://a%0Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0eb/" but got "http://a%0Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0fb/" but got "http://a%0Fb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x10b/" but got "http://a%10b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x11b/" but got "http://a%11b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x12b/" but got "http://a%12b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x13b/" but got "http://a%13b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x14b/" but got "http://a%14b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x15b/" but got "http://a%15b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x16b/" but got "http://a%16b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x17b/" but got "http://a%17b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x18b/" but got "http://a%18b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x19b/" but got "http://a%19b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1ab/" but got "http://a%1Ab/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1bb/" but got "http://a%1Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1cb/" but got "http://a%1Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1db/" but got "http://a%1Db/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1eb/" but got "http://a%1Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1fb/" but got "http://a%1Fb/"
+FAIL Parsing: <http://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a%b/> against <about:blank> assert_equals: failure should set href to input expected "http://a%b/" but got "http://a%25b/"
+FAIL Parsing: <http://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+FAIL Parsing: <http://a^b> against <about:blank> assert_equals: failure should set href to input expected "http://a^b" but got "http://a%5Eb/"
+FAIL Parsing: <http://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://ab/" but got "http://a%7Fb/"
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+FAIL Parsing: <http://ho%3Ast/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%3Ast/" but got "http://ho:st/"
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%5Bst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Bst/" but got "http://ho[st/"
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+FAIL Parsing: <http://ho%5Dst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Dst/" but got "http://ho]st/"
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/"
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/"
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/"
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/"
+FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/"
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+FAIL Parsing: <\\\.\Y:> against <about:blank> assert_equals: failure should set href to input expected "\\\\\\.\\Y:" but got ""
+FAIL Parsing: <\\\.\y:> against <about:blank> assert_equals: failure should set href to input expected "\\\\\\.\\y:" but got ""
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/"
+FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/"
+FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/"
+FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/"
+FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/"
+FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/"
+FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/"
+FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/"
+FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?"
+FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#"
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1"
+FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1"
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:"
+FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:"
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+FAIL Parsing: <http://[::127.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "http://[::127.0.0.0.1]" but got "http://[::127.0.0.0.1]/"
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+FAIL Parsing: <a> against <about:blank> assert_equals: failure should set href to input expected "a" but got ""
+FAIL Parsing: <a/> against <about:blank> assert_equals: failure should set href to input expected "a/" but got ""
+FAIL Parsing: <a//> against <about:blank> assert_equals: failure should set href to input expected "a//" but got ""
+FAIL Parsing: <test-a-colon.html> against <a:> assert_equals: failure should set href to input expected "test-a-colon.html" but got ""
+FAIL Parsing: <test-a-colon-b.html> against <a:b> assert_equals: failure should set href to input expected "test-a-colon-b.html" but got ""
+PASS Parsing: <test-a-colon-slash.html> against <a:/>
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> assert_equals: href expected "a:///test-a-colon-slash-slash.html" but got ""
+PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> assert_equals: href expected "a://b/test-a-colon-slash-slash-b.html" but got "a://b"
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+FAIL Parsing: <http://1.2.3.4.5> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5" but got "http://1.2.3.4.5/"
+FAIL Parsing: <http://1.2.3.4.5.> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5." but got "http://1.2.3.4.5./"
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+FAIL Parsing: <http://256.256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256" but got "http://256.256.256.256.256/"
+FAIL Parsing: <http://256.256.256.256.256.> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256." but got "http://256.256.256.256.256./"
+FAIL Parsing: <http://1.2.3.08> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08" but got "http://1.2.3.08/"
+FAIL Parsing: <http://1.2.3.08.> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08." but got "http://1.2.3.08./"
+FAIL Parsing: <http://1.2.3.09> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.09" but got "http://1.2.3.09/"
+FAIL Parsing: <http://09.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4" but got "http://09.2.3.4/"
+FAIL Parsing: <http://09.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4." but got "http://09.2.3.4./"
+FAIL Parsing: <http://01.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5" but got "http://01.2.3.4.5/"
+FAIL Parsing: <http://01.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5." but got "http://01.2.3.4.5./"
+FAIL Parsing: <http://0x100.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4" but got "http://0x100.2.3.4/"
+FAIL Parsing: <http://0x100.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4." but got "http://0x100.2.3.4./"
+FAIL Parsing: <http://0x1.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5" but got "http://0x1.2.3.4.5/"
+FAIL Parsing: <http://0x1.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5." but got "http://0x1.2.3.4.5./"
+FAIL Parsing: <http://foo.1.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4" but got "http://foo.1.2.3.4/"
+FAIL Parsing: <http://foo.1.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4." but got "http://foo.1.2.3.4./"
+FAIL Parsing: <http://foo.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4" but got "http://foo.2.3.4/"
+FAIL Parsing: <http://foo.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4." but got "http://foo.2.3.4./"
+FAIL Parsing: <http://foo.09> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09" but got "http://foo.09/"
+FAIL Parsing: <http://foo.09.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09." but got "http://foo.09./"
+FAIL Parsing: <http://foo.0x4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4" but got "http://foo.0x4/"
+FAIL Parsing: <http://foo.0x4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4." but got "http://foo.0x4./"
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
+FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
+FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
index ce64daad..ddb2a07f 100644
--- "a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 603 tests; 337 PASS, 266 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 619 tests; 343 PASS, 276 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -614,5 +614,21 @@
 FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
 FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
 FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/failure-expected.txt
index 2ca8c37..773b766f 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/failure-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/failure-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 1043 tests; 704 PASS, 339 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 1055 tests; 714 PASS, 341 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS URL's constructor's base argument: file://example:1/ should throw
 PASS URL's href: file://example:1/ should throw
@@ -1043,5 +1043,17 @@
 PASS sendBeacon(): http://💩.123/ should throw
 FAIL Location's href: http://💩.123/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://💩.123/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
 PASS window.open(): http://💩.123/ should throw
+PASS URL's constructor's base argument: https://\0y should throw
+PASS URL's href: https://\0y should throw
+PASS XHR: https://\0y should throw
+PASS sendBeacon(): https://\0y should throw
+FAIL Location's href: https://\0y should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://\0y' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://\0y should throw
+PASS URL's constructor's base argument: https://￿y should throw
+PASS URL's href: https://￿y should throw
+PASS XHR: https://￿y should throw
+PASS sendBeacon(): https://￿y should throw
+FAIL Location's href: https://￿y should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://￿y' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://￿y should throw
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index 80b7d5ac..b73eb638 100644
--- "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 605 tests; 467 PASS, 138 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 621 tests; 475 PASS, 146 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -702,5 +702,21 @@
 PASS Parsing: <http://foo.0x> against <about:blank>
 PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
 PASS Parsing: <http://💩.123/> against <about:blank>
+PASS Parsing: <https://\0y> against <about:blank>
+FAIL Parsing: <https://x/\0y> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+PASS Parsing: <https://￿y> against <about:blank>
+FAIL Parsing: <https://x/￿y> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
index 80b7d5ac..b73eb638 100644
--- "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 605 tests; 467 PASS, 138 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 621 tests; 475 PASS, 146 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -702,5 +702,21 @@
 PASS Parsing: <http://foo.0x> against <about:blank>
 PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
 PASS Parsing: <http://💩.123/> against <about:blank>
+PASS Parsing: <https://\0y> against <about:blank>
+FAIL Parsing: <https://x/\0y> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+PASS Parsing: <https://￿y> against <about:blank>
+FAIL Parsing: <https://x/￿y> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..ce64daad
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,618 @@
+This is a testharness.js-based test.
+Found 603 tests; 337 PASS, 266 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c"
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20#%20e"
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+PASS Parsing: <\\x\hello> against <http://example.org/foo/bar>
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/"
+FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/"
+FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/"
+FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/"
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q"
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com"
+FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com"
+FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com"
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/"
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/"
+FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/"
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+FAIL Parsing: <http://﷐zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://﷐zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/"
+FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/"
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/"
+FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/"
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/"
+FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/"
+FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/"
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/"
+FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/"
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: host expected "." but got ""
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/"
+FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/"
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "test:test#x"
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got ""
+FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got ""
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got ""
+FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got ""
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got ""
+FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got ""
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got ""
+FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got ""
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1"
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD"
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a^b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <http://a\0b/> against <about:blank> assert_equals: failure should set href to input expected "http://a\0b/" but got "http://a%00b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x01b/" but got "http://a%01b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x02b/" but got "http://a%02b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x03b/" but got "http://a%03b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x04b/" but got "http://a%04b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x05b/" but got "http://a%05b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x06b/" but got "http://a%06b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x07b/" but got "http://a%07b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\bb/" but got "http://a%08b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\vb/" but got "http://a%0Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\fb/" but got "http://a%0Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0eb/" but got "http://a%0Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0fb/" but got "http://a%0Fb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x10b/" but got "http://a%10b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x11b/" but got "http://a%11b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x12b/" but got "http://a%12b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x13b/" but got "http://a%13b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x14b/" but got "http://a%14b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x15b/" but got "http://a%15b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x16b/" but got "http://a%16b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x17b/" but got "http://a%17b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x18b/" but got "http://a%18b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x19b/" but got "http://a%19b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1ab/" but got "http://a%1Ab/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1bb/" but got "http://a%1Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1cb/" but got "http://a%1Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1db/" but got "http://a%1Db/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1eb/" but got "http://a%1Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1fb/" but got "http://a%1Fb/"
+FAIL Parsing: <http://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a%b/> against <about:blank> assert_equals: failure should set href to input expected "http://a%b/" but got "http://a%25b/"
+FAIL Parsing: <http://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+FAIL Parsing: <http://a^b> against <about:blank> assert_equals: failure should set href to input expected "http://a^b" but got "http://a%5Eb/"
+FAIL Parsing: <http://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://ab/" but got "http://a%7Fb/"
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+FAIL Parsing: <http://ho%3Ast/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%3Ast/" but got "http://ho:st/"
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%5Bst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Bst/" but got "http://ho[st/"
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+FAIL Parsing: <http://ho%5Dst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Dst/" but got "http://ho]st/"
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/"
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/"
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/"
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/"
+FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/"
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+FAIL Parsing: <\\\.\Y:> against <about:blank> assert_equals: failure should set href to input expected "\\\\\\.\\Y:" but got ""
+FAIL Parsing: <\\\.\y:> against <about:blank> assert_equals: failure should set href to input expected "\\\\\\.\\y:" but got ""
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/"
+FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/"
+FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/"
+FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/"
+FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/"
+FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/"
+FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/"
+FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/"
+FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?"
+FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#"
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1"
+FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1"
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:"
+FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:"
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+FAIL Parsing: <http://[::127.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "http://[::127.0.0.0.1]" but got "http://[::127.0.0.0.1]/"
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+FAIL Parsing: <a> against <about:blank> assert_equals: failure should set href to input expected "a" but got ""
+FAIL Parsing: <a/> against <about:blank> assert_equals: failure should set href to input expected "a/" but got ""
+FAIL Parsing: <a//> against <about:blank> assert_equals: failure should set href to input expected "a//" but got ""
+FAIL Parsing: <test-a-colon.html> against <a:> assert_equals: failure should set href to input expected "test-a-colon.html" but got ""
+FAIL Parsing: <test-a-colon-b.html> against <a:b> assert_equals: failure should set href to input expected "test-a-colon-b.html" but got ""
+PASS Parsing: <test-a-colon-slash.html> against <a:/>
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> assert_equals: href expected "a:///test-a-colon-slash-slash.html" but got ""
+PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> assert_equals: href expected "a://b/test-a-colon-slash-slash-b.html" but got "a://b"
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+FAIL Parsing: <http://1.2.3.4.5> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5" but got "http://1.2.3.4.5/"
+FAIL Parsing: <http://1.2.3.4.5.> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5." but got "http://1.2.3.4.5./"
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+FAIL Parsing: <http://256.256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256" but got "http://256.256.256.256.256/"
+FAIL Parsing: <http://256.256.256.256.256.> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256." but got "http://256.256.256.256.256./"
+FAIL Parsing: <http://1.2.3.08> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08" but got "http://1.2.3.08/"
+FAIL Parsing: <http://1.2.3.08.> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08." but got "http://1.2.3.08./"
+FAIL Parsing: <http://1.2.3.09> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.09" but got "http://1.2.3.09/"
+FAIL Parsing: <http://09.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4" but got "http://09.2.3.4/"
+FAIL Parsing: <http://09.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4." but got "http://09.2.3.4./"
+FAIL Parsing: <http://01.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5" but got "http://01.2.3.4.5/"
+FAIL Parsing: <http://01.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5." but got "http://01.2.3.4.5./"
+FAIL Parsing: <http://0x100.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4" but got "http://0x100.2.3.4/"
+FAIL Parsing: <http://0x100.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4." but got "http://0x100.2.3.4./"
+FAIL Parsing: <http://0x1.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5" but got "http://0x1.2.3.4.5/"
+FAIL Parsing: <http://0x1.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5." but got "http://0x1.2.3.4.5./"
+FAIL Parsing: <http://foo.1.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4" but got "http://foo.1.2.3.4/"
+FAIL Parsing: <http://foo.1.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4." but got "http://foo.1.2.3.4./"
+FAIL Parsing: <http://foo.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4" but got "http://foo.2.3.4/"
+FAIL Parsing: <http://foo.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4." but got "http://foo.2.3.4./"
+FAIL Parsing: <http://foo.09> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09" but got "http://foo.09/"
+FAIL Parsing: <http://foo.09.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09." but got "http://foo.09./"
+FAIL Parsing: <http://foo.0x4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4" but got "http://foo.0x4/"
+FAIL Parsing: <http://foo.0x4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4." but got "http://foo.0x4./"
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
+FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
+FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/failure-expected.txt
new file mode 100644
index 0000000..2ca8c37
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/failure-expected.txt
@@ -0,0 +1,1047 @@
+This is a testharness.js-based test.
+Found 1043 tests; 704 PASS, 339 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS URL's constructor's base argument: file://example:1/ should throw
+PASS URL's href: file://example:1/ should throw
+PASS XHR: file://example:1/ should throw
+PASS sendBeacon(): file://example:1/ should throw
+FAIL Location's href: file://example:1/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:1/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example:1/ should throw
+PASS URL's constructor's base argument: file://example:test/ should throw
+PASS URL's href: file://example:test/ should throw
+PASS XHR: file://example:test/ should throw
+PASS sendBeacon(): file://example:test/ should throw
+FAIL Location's href: file://example:test/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:test/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example:test/ should throw
+PASS URL's constructor's base argument: file://example%/ should throw
+PASS URL's href: file://example%/ should throw
+PASS XHR: file://example%/ should throw
+PASS sendBeacon(): file://example%/ should throw
+FAIL Location's href: file://example%/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example%/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example%/ should throw
+PASS URL's constructor's base argument: file://[example]/ should throw
+PASS URL's href: file://[example]/ should throw
+PASS XHR: file://[example]/ should throw
+PASS sendBeacon(): file://[example]/ should throw
+FAIL Location's href: file://[example]/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://[example]/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://[example]/ should throw
+PASS URL's constructor's base argument: http://user:pass@/ should throw
+PASS URL's href: http://user:pass@/ should throw
+PASS XHR: http://user:pass@/ should throw
+PASS sendBeacon(): http://user:pass@/ should throw
+FAIL Location's href: http://user:pass@/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user:pass@/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://user:pass@/ should throw
+PASS URL's constructor's base argument: http://foo:-80/ should throw
+PASS URL's href: http://foo:-80/ should throw
+PASS XHR: http://foo:-80/ should throw
+PASS sendBeacon(): http://foo:-80/ should throw
+FAIL Location's href: http://foo:-80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo:-80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo:-80/ should throw
+PASS URL's constructor's base argument: http:/:@/www.example.com should throw
+PASS URL's href: http:/:@/www.example.com should throw
+PASS URL's constructor's base argument: http://user@/www.example.com should throw
+PASS URL's href: http://user@/www.example.com should throw
+PASS XHR: http://user@/www.example.com should throw
+PASS sendBeacon(): http://user@/www.example.com should throw
+FAIL Location's href: http://user@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://user@/www.example.com should throw
+PASS URL's constructor's base argument: http:@/www.example.com should throw
+PASS URL's href: http:@/www.example.com should throw
+PASS URL's constructor's base argument: http:/@/www.example.com should throw
+PASS URL's href: http:/@/www.example.com should throw
+PASS URL's constructor's base argument: http://@/www.example.com should throw
+PASS URL's href: http://@/www.example.com should throw
+PASS XHR: http://@/www.example.com should throw
+PASS sendBeacon(): http://@/www.example.com should throw
+FAIL Location's href: http://@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://@/www.example.com should throw
+PASS URL's constructor's base argument: https:@/www.example.com should throw
+PASS URL's href: https:@/www.example.com should throw
+PASS URL's constructor's base argument: http:a:b@/www.example.com should throw
+PASS URL's href: http:a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http:/a:b@/www.example.com should throw
+PASS URL's href: http:/a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http://a:b@/www.example.com should throw
+PASS URL's href: http://a:b@/www.example.com should throw
+PASS XHR: http://a:b@/www.example.com should throw
+PASS sendBeacon(): http://a:b@/www.example.com should throw
+FAIL Location's href: http://a:b@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a:b@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http::@/www.example.com should throw
+PASS URL's href: http::@/www.example.com should throw
+PASS URL's constructor's base argument: http:@:www.example.com should throw
+PASS URL's href: http:@:www.example.com should throw
+PASS URL's constructor's base argument: http:/@:www.example.com should throw
+PASS URL's href: http:/@:www.example.com should throw
+PASS URL's constructor's base argument: http://@:www.example.com should throw
+PASS URL's href: http://@:www.example.com should throw
+PASS XHR: http://@:www.example.com should throw
+PASS sendBeacon(): http://@:www.example.com should throw
+FAIL Location's href: http://@:www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@:www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://@:www.example.com should throw
+PASS URL's constructor's base argument: https://� should throw
+PASS URL's href: https://� should throw
+PASS XHR: https://� should throw
+PASS sendBeacon(): https://� should throw
+FAIL Location's href: https://� should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://�' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://� should throw
+PASS URL's constructor's base argument: https://%EF%BF%BD should throw
+PASS URL's href: https://%EF%BF%BD should throw
+PASS XHR: https://%EF%BF%BD should throw
+PASS sendBeacon(): https://%EF%BF%BD should throw
+FAIL Location's href: https://%EF%BF%BD should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://%EF%BF%BD' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://%EF%BF%BD should throw
+FAIL URL's constructor's base argument: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.XN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.XN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.Xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.Xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.XN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.XN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.xN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.xN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: https://x x:12 should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: https://x x:12 should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: https://x x:12 should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): https://x x:12 should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: https://x x:12 should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://x x:12 should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://[www.google.com]/ should throw
+PASS URL's href: http://[www.google.com]/ should throw
+PASS XHR: http://[www.google.com]/ should throw
+PASS sendBeacon(): http://[www.google.com]/ should throw
+FAIL Location's href: http://[www.google.com]/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[www.google.com]/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://[www.google.com]/ should throw
+FAIL URL's constructor's base argument: sc://@/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://@/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://@/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://@/ should throw
+FAIL Location's href: sc://@/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://@/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://te@s:t@/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://te@s:t@/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://te@s:t@/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://te@s:t@/ should throw
+FAIL Location's href: sc://te@s:t@/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://te@s:t@/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://:/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://:/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://:/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:/ should throw
+FAIL Location's href: sc://:/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://:12/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://:12/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://:12/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:12/ should throw
+FAIL Location's href: sc://:12/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:12/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a\0b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a\0b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a\0b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a\0b/ should throw
+FAIL Location's href: sc://a\0b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a\0b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a b/ should throw
+FAIL Location's href: sc://a b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a<b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a<b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a<b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a<b should throw
+FAIL Location's href: sc://a<b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a<b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a>b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a>b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a>b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a>b should throw
+FAIL Location's href: sc://a>b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a>b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a[b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a[b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a[b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a[b/ should throw
+FAIL Location's href: sc://a[b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a[b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a\b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a\b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a\b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a\b/ should throw
+FAIL Location's href: sc://a\b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a\b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a]b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a]b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a]b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a]b/ should throw
+FAIL Location's href: sc://a]b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a]b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a^b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a^b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a^b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a^b should throw
+FAIL Location's href: sc://a^b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a^b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a|b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a|b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a|b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a|b/ should throw
+FAIL Location's href: sc://a|b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a|b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a\0b/ should throw
+PASS URL's href: http://a\0b/ should throw
+PASS XHR: http://a\0b/ should throw
+PASS sendBeacon(): http://a\0b/ should throw
+FAIL Location's href: http://a\0b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a\0b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a\0b/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+FAIL URL's constructor's base argument: http://a b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a b/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a%b/ should throw
+PASS URL's href: http://a%b/ should throw
+PASS XHR: http://a%b/ should throw
+PASS sendBeacon(): http://a%b/ should throw
+FAIL Location's href: http://a%b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a%b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a%b/ should throw
+FAIL URL's constructor's base argument: http://a<b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a<b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a<b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a<b should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a<b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a<b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a>b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a>b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a>b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a>b should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a>b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a>b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a[b/ should throw
+PASS URL's href: http://a[b/ should throw
+PASS XHR: http://a[b/ should throw
+PASS sendBeacon(): http://a[b/ should throw
+FAIL Location's href: http://a[b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a[b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a[b/ should throw
+PASS URL's constructor's base argument: http://a]b/ should throw
+PASS URL's href: http://a]b/ should throw
+PASS XHR: http://a]b/ should throw
+PASS sendBeacon(): http://a]b/ should throw
+FAIL Location's href: http://a]b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a]b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a]b/ should throw
+PASS URL's constructor's base argument: http://a^b should throw
+PASS URL's href: http://a^b should throw
+PASS XHR: http://a^b should throw
+PASS sendBeacon(): http://a^b should throw
+FAIL Location's href: http://a^b should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a^b' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a^b should throw
+FAIL URL's constructor's base argument: http://a|b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a|b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a|b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a|b/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a|b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a|b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ho%00st/ should throw
+PASS URL's href: http://ho%00st/ should throw
+PASS XHR: http://ho%00st/ should throw
+PASS sendBeacon(): http://ho%00st/ should throw
+FAIL Location's href: http://ho%00st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%00st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%00st/ should throw
+PASS URL's constructor's base argument: http://ho%01st/ should throw
+PASS URL's href: http://ho%01st/ should throw
+PASS XHR: http://ho%01st/ should throw
+PASS sendBeacon(): http://ho%01st/ should throw
+FAIL Location's href: http://ho%01st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%01st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%01st/ should throw
+PASS URL's constructor's base argument: http://ho%02st/ should throw
+PASS URL's href: http://ho%02st/ should throw
+PASS XHR: http://ho%02st/ should throw
+PASS sendBeacon(): http://ho%02st/ should throw
+FAIL Location's href: http://ho%02st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%02st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%02st/ should throw
+PASS URL's constructor's base argument: http://ho%03st/ should throw
+PASS URL's href: http://ho%03st/ should throw
+PASS XHR: http://ho%03st/ should throw
+PASS sendBeacon(): http://ho%03st/ should throw
+FAIL Location's href: http://ho%03st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%03st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%03st/ should throw
+PASS URL's constructor's base argument: http://ho%04st/ should throw
+PASS URL's href: http://ho%04st/ should throw
+PASS XHR: http://ho%04st/ should throw
+PASS sendBeacon(): http://ho%04st/ should throw
+FAIL Location's href: http://ho%04st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%04st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%04st/ should throw
+PASS URL's constructor's base argument: http://ho%05st/ should throw
+PASS URL's href: http://ho%05st/ should throw
+PASS XHR: http://ho%05st/ should throw
+PASS sendBeacon(): http://ho%05st/ should throw
+FAIL Location's href: http://ho%05st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%05st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%05st/ should throw
+PASS URL's constructor's base argument: http://ho%06st/ should throw
+PASS URL's href: http://ho%06st/ should throw
+PASS XHR: http://ho%06st/ should throw
+PASS sendBeacon(): http://ho%06st/ should throw
+FAIL Location's href: http://ho%06st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%06st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%06st/ should throw
+PASS URL's constructor's base argument: http://ho%07st/ should throw
+PASS URL's href: http://ho%07st/ should throw
+PASS XHR: http://ho%07st/ should throw
+PASS sendBeacon(): http://ho%07st/ should throw
+FAIL Location's href: http://ho%07st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%07st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%07st/ should throw
+PASS URL's constructor's base argument: http://ho%08st/ should throw
+PASS URL's href: http://ho%08st/ should throw
+PASS XHR: http://ho%08st/ should throw
+PASS sendBeacon(): http://ho%08st/ should throw
+FAIL Location's href: http://ho%08st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%08st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%08st/ should throw
+PASS URL's constructor's base argument: http://ho%09st/ should throw
+PASS URL's href: http://ho%09st/ should throw
+PASS XHR: http://ho%09st/ should throw
+PASS sendBeacon(): http://ho%09st/ should throw
+FAIL Location's href: http://ho%09st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%09st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%09st/ should throw
+PASS URL's constructor's base argument: http://ho%0Ast/ should throw
+PASS URL's href: http://ho%0Ast/ should throw
+PASS XHR: http://ho%0Ast/ should throw
+PASS sendBeacon(): http://ho%0Ast/ should throw
+FAIL Location's href: http://ho%0Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Ast/ should throw
+PASS URL's constructor's base argument: http://ho%0Bst/ should throw
+PASS URL's href: http://ho%0Bst/ should throw
+PASS XHR: http://ho%0Bst/ should throw
+PASS sendBeacon(): http://ho%0Bst/ should throw
+FAIL Location's href: http://ho%0Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Bst/ should throw
+PASS URL's constructor's base argument: http://ho%0Cst/ should throw
+PASS URL's href: http://ho%0Cst/ should throw
+PASS XHR: http://ho%0Cst/ should throw
+PASS sendBeacon(): http://ho%0Cst/ should throw
+FAIL Location's href: http://ho%0Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Cst/ should throw
+PASS URL's constructor's base argument: http://ho%0Dst/ should throw
+PASS URL's href: http://ho%0Dst/ should throw
+PASS XHR: http://ho%0Dst/ should throw
+PASS sendBeacon(): http://ho%0Dst/ should throw
+FAIL Location's href: http://ho%0Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Dst/ should throw
+PASS URL's constructor's base argument: http://ho%0Est/ should throw
+PASS URL's href: http://ho%0Est/ should throw
+PASS XHR: http://ho%0Est/ should throw
+PASS sendBeacon(): http://ho%0Est/ should throw
+FAIL Location's href: http://ho%0Est/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Est/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Est/ should throw
+PASS URL's constructor's base argument: http://ho%0Fst/ should throw
+PASS URL's href: http://ho%0Fst/ should throw
+PASS XHR: http://ho%0Fst/ should throw
+PASS sendBeacon(): http://ho%0Fst/ should throw
+FAIL Location's href: http://ho%0Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Fst/ should throw
+PASS URL's constructor's base argument: http://ho%10st/ should throw
+PASS URL's href: http://ho%10st/ should throw
+PASS XHR: http://ho%10st/ should throw
+PASS sendBeacon(): http://ho%10st/ should throw
+FAIL Location's href: http://ho%10st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%10st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%10st/ should throw
+PASS URL's constructor's base argument: http://ho%11st/ should throw
+PASS URL's href: http://ho%11st/ should throw
+PASS XHR: http://ho%11st/ should throw
+PASS sendBeacon(): http://ho%11st/ should throw
+FAIL Location's href: http://ho%11st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%11st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%11st/ should throw
+PASS URL's constructor's base argument: http://ho%12st/ should throw
+PASS URL's href: http://ho%12st/ should throw
+PASS XHR: http://ho%12st/ should throw
+PASS sendBeacon(): http://ho%12st/ should throw
+FAIL Location's href: http://ho%12st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%12st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%12st/ should throw
+PASS URL's constructor's base argument: http://ho%13st/ should throw
+PASS URL's href: http://ho%13st/ should throw
+PASS XHR: http://ho%13st/ should throw
+PASS sendBeacon(): http://ho%13st/ should throw
+FAIL Location's href: http://ho%13st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%13st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%13st/ should throw
+PASS URL's constructor's base argument: http://ho%14st/ should throw
+PASS URL's href: http://ho%14st/ should throw
+PASS XHR: http://ho%14st/ should throw
+PASS sendBeacon(): http://ho%14st/ should throw
+FAIL Location's href: http://ho%14st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%14st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%14st/ should throw
+PASS URL's constructor's base argument: http://ho%15st/ should throw
+PASS URL's href: http://ho%15st/ should throw
+PASS XHR: http://ho%15st/ should throw
+PASS sendBeacon(): http://ho%15st/ should throw
+FAIL Location's href: http://ho%15st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%15st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%15st/ should throw
+PASS URL's constructor's base argument: http://ho%16st/ should throw
+PASS URL's href: http://ho%16st/ should throw
+PASS XHR: http://ho%16st/ should throw
+PASS sendBeacon(): http://ho%16st/ should throw
+FAIL Location's href: http://ho%16st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%16st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%16st/ should throw
+PASS URL's constructor's base argument: http://ho%17st/ should throw
+PASS URL's href: http://ho%17st/ should throw
+PASS XHR: http://ho%17st/ should throw
+PASS sendBeacon(): http://ho%17st/ should throw
+FAIL Location's href: http://ho%17st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%17st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%17st/ should throw
+PASS URL's constructor's base argument: http://ho%18st/ should throw
+PASS URL's href: http://ho%18st/ should throw
+PASS XHR: http://ho%18st/ should throw
+PASS sendBeacon(): http://ho%18st/ should throw
+FAIL Location's href: http://ho%18st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%18st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%18st/ should throw
+PASS URL's constructor's base argument: http://ho%19st/ should throw
+PASS URL's href: http://ho%19st/ should throw
+PASS XHR: http://ho%19st/ should throw
+PASS sendBeacon(): http://ho%19st/ should throw
+FAIL Location's href: http://ho%19st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%19st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%19st/ should throw
+PASS URL's constructor's base argument: http://ho%1Ast/ should throw
+PASS URL's href: http://ho%1Ast/ should throw
+PASS XHR: http://ho%1Ast/ should throw
+PASS sendBeacon(): http://ho%1Ast/ should throw
+FAIL Location's href: http://ho%1Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Ast/ should throw
+PASS URL's constructor's base argument: http://ho%1Bst/ should throw
+PASS URL's href: http://ho%1Bst/ should throw
+PASS XHR: http://ho%1Bst/ should throw
+PASS sendBeacon(): http://ho%1Bst/ should throw
+FAIL Location's href: http://ho%1Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Bst/ should throw
+PASS URL's constructor's base argument: http://ho%1Cst/ should throw
+PASS URL's href: http://ho%1Cst/ should throw
+PASS XHR: http://ho%1Cst/ should throw
+PASS sendBeacon(): http://ho%1Cst/ should throw
+FAIL Location's href: http://ho%1Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Cst/ should throw
+PASS URL's constructor's base argument: http://ho%1Dst/ should throw
+PASS URL's href: http://ho%1Dst/ should throw
+PASS XHR: http://ho%1Dst/ should throw
+PASS sendBeacon(): http://ho%1Dst/ should throw
+FAIL Location's href: http://ho%1Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Dst/ should throw
+PASS URL's constructor's base argument: http://ho%1Est/ should throw
+PASS URL's href: http://ho%1Est/ should throw
+PASS XHR: http://ho%1Est/ should throw
+PASS sendBeacon(): http://ho%1Est/ should throw
+FAIL Location's href: http://ho%1Est/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Est/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Est/ should throw
+PASS URL's constructor's base argument: http://ho%1Fst/ should throw
+PASS URL's href: http://ho%1Fst/ should throw
+PASS XHR: http://ho%1Fst/ should throw
+PASS sendBeacon(): http://ho%1Fst/ should throw
+FAIL Location's href: http://ho%1Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Fst/ should throw
+FAIL URL's constructor's base argument: http://ho%20st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%20st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%20st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%20st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%20st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%20st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://ho%23st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%23st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%23st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%23st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%23st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%23st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%25st/ should throw
+PASS URL's href: http://ho%25st/ should throw
+PASS XHR: http://ho%25st/ should throw
+PASS sendBeacon(): http://ho%25st/ should throw
+FAIL Location's href: http://ho%25st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%25st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%25st/ should throw
+PASS URL's constructor's base argument: http://ho%2Fst/ should throw
+PASS URL's href: http://ho%2Fst/ should throw
+PASS XHR: http://ho%2Fst/ should throw
+PASS sendBeacon(): http://ho%2Fst/ should throw
+FAIL Location's href: http://ho%2Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%2Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%2Fst/ should throw
+PASS URL's constructor's base argument: http://ho%3Ast/ should throw
+PASS URL's href: http://ho%3Ast/ should throw
+PASS XHR: http://ho%3Ast/ should throw
+PASS sendBeacon(): http://ho%3Ast/ should throw
+FAIL Location's href: http://ho%3Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%3Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%3Ast/ should throw
+FAIL URL's constructor's base argument: http://ho%3Cst/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%3Cst/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%3Cst/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%3Cst/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%3Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%3Cst/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://ho%3Est/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%3Est/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%3Est/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%3Est/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%3Est/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%3Est/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%3Fst/ should throw
+PASS URL's href: http://ho%3Fst/ should throw
+PASS XHR: http://ho%3Fst/ should throw
+PASS sendBeacon(): http://ho%3Fst/ should throw
+FAIL Location's href: http://ho%3Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%3Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%3Fst/ should throw
+FAIL URL's constructor's base argument: http://ho%40st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%40st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%40st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%40st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%40st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%40st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%5Bst/ should throw
+PASS URL's href: http://ho%5Bst/ should throw
+PASS XHR: http://ho%5Bst/ should throw
+PASS sendBeacon(): http://ho%5Bst/ should throw
+FAIL Location's href: http://ho%5Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Bst/ should throw
+PASS URL's constructor's base argument: http://ho%5Cst/ should throw
+PASS URL's href: http://ho%5Cst/ should throw
+PASS XHR: http://ho%5Cst/ should throw
+PASS sendBeacon(): http://ho%5Cst/ should throw
+FAIL Location's href: http://ho%5Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Cst/ should throw
+PASS URL's constructor's base argument: http://ho%5Dst/ should throw
+PASS URL's href: http://ho%5Dst/ should throw
+PASS XHR: http://ho%5Dst/ should throw
+PASS sendBeacon(): http://ho%5Dst/ should throw
+FAIL Location's href: http://ho%5Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Dst/ should throw
+FAIL URL's constructor's base argument: http://ho%7Cst/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%7Cst/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%7Cst/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%7Cst/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%7Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%7Cst/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%7Fst/ should throw
+PASS URL's href: http://ho%7Fst/ should throw
+PASS XHR: http://ho%7Fst/ should throw
+PASS sendBeacon(): http://ho%7Fst/ should throw
+FAIL Location's href: http://ho%7Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%7Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%7Fst/ should throw
+PASS URL's constructor's base argument: ftp://example.com%80/ should throw
+PASS URL's href: ftp://example.com%80/ should throw
+PASS XHR: ftp://example.com%80/ should throw
+PASS sendBeacon(): ftp://example.com%80/ should throw
+FAIL Location's href: ftp://example.com%80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): ftp://example.com%80/ should throw
+PASS URL's constructor's base argument: ftp://example.com%A0/ should throw
+PASS URL's href: ftp://example.com%A0/ should throw
+PASS XHR: ftp://example.com%A0/ should throw
+PASS sendBeacon(): ftp://example.com%A0/ should throw
+FAIL Location's href: ftp://example.com%A0/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%A0/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): ftp://example.com%A0/ should throw
+PASS URL's constructor's base argument: https://example.com%80/ should throw
+PASS URL's href: https://example.com%80/ should throw
+PASS XHR: https://example.com%80/ should throw
+PASS sendBeacon(): https://example.com%80/ should throw
+FAIL Location's href: https://example.com%80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://example.com%80/ should throw
+PASS URL's constructor's base argument: https://example.com%A0/ should throw
+PASS URL's href: https://example.com%A0/ should throw
+PASS XHR: https://example.com%A0/ should throw
+PASS sendBeacon(): https://example.com%A0/ should throw
+FAIL Location's href: https://example.com%A0/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%A0/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://example.com%A0/ should throw
+PASS URL's constructor's base argument: https://0x100000000/test should throw
+PASS URL's href: https://0x100000000/test should throw
+PASS XHR: https://0x100000000/test should throw
+PASS sendBeacon(): https://0x100000000/test should throw
+FAIL Location's href: https://0x100000000/test should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://0x100000000/test' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://0x100000000/test should throw
+PASS URL's constructor's base argument: https://256.0.0.1/test should throw
+PASS URL's href: https://256.0.0.1/test should throw
+PASS XHR: https://256.0.0.1/test should throw
+PASS sendBeacon(): https://256.0.0.1/test should throw
+FAIL Location's href: https://256.0.0.1/test should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://256.0.0.1/test' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://256.0.0.1/test should throw
+PASS URL's constructor's base argument: file://%43%3A should throw
+PASS URL's href: file://%43%3A should throw
+PASS XHR: file://%43%3A should throw
+PASS sendBeacon(): file://%43%3A should throw
+FAIL Location's href: file://%43%3A should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://%43%3A' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://%43%3A should throw
+FAIL URL's constructor's base argument: file://%43%7C should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43%7C should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43%7C should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43%7C should throw
+FAIL Location's href: file://%43%7C should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43%7C should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://%43| should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43| should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43| should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43| should throw
+FAIL Location's href: file://%43| should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43| should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://C%7C should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://C%7C should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://C%7C should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://C%7C should throw
+FAIL Location's href: file://C%7C should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://C%7C should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://%43%7C/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43%7C/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43%7C/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43%7C/ should throw
+FAIL Location's href: file://%43%7C/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43%7C/ should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: https://%43%7C/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: https://%43%7C/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: https://%43%7C/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): https://%43%7C/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: https://%43%7C/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://%43%7C/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: asdf://%43|/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: asdf://%43|/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: asdf://%43|/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): asdf://%43|/ should throw
+FAIL Location's href: asdf://%43|/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): asdf://%43|/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: \\\.\Y: should throw
+PASS URL's href: \\\.\Y: should throw
+PASS URL's constructor's base argument: \\\.\y: should throw
+PASS URL's href: \\\.\y: should throw
+PASS URL's constructor's base argument: https://[0::0::0] should throw
+PASS URL's href: https://[0::0::0] should throw
+PASS XHR: https://[0::0::0] should throw
+PASS sendBeacon(): https://[0::0::0] should throw
+FAIL Location's href: https://[0::0::0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0::0::0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0::0::0] should throw
+PASS URL's constructor's base argument: https://[0:.0] should throw
+PASS URL's href: https://[0:.0] should throw
+PASS XHR: https://[0:.0] should throw
+PASS sendBeacon(): https://[0:.0] should throw
+FAIL Location's href: https://[0:.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:.0] should throw
+PASS URL's constructor's base argument: https://[0:0:] should throw
+PASS URL's href: https://[0:0:] should throw
+PASS XHR: https://[0:0:] should throw
+PASS sendBeacon(): https://[0:0:] should throw
+FAIL Location's href: https://[0:0:] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:0:]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:0:] should throw
+PASS URL's constructor's base argument: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1:2:3:4:5:6:7.0.0.0.1]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS URL's constructor's base argument: https://[0:1.00.0.0.0] should throw
+PASS URL's href: https://[0:1.00.0.0.0] should throw
+PASS XHR: https://[0:1.00.0.0.0] should throw
+PASS sendBeacon(): https://[0:1.00.0.0.0] should throw
+FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.00.0.0.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.00.0.0.0] should throw
+PASS URL's constructor's base argument: https://[0:1.290.0.0.0] should throw
+PASS URL's href: https://[0:1.290.0.0.0] should throw
+PASS XHR: https://[0:1.290.0.0.0] should throw
+PASS sendBeacon(): https://[0:1.290.0.0.0] should throw
+FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.290.0.0.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.290.0.0.0] should throw
+PASS URL's constructor's base argument: https://[0:1.23.23] should throw
+PASS URL's href: https://[0:1.23.23] should throw
+PASS XHR: https://[0:1.23.23] should throw
+PASS sendBeacon(): https://[0:1.23.23] should throw
+FAIL Location's href: https://[0:1.23.23] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.23.23]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.23.23] should throw
+PASS URL's constructor's base argument: http://? should throw
+PASS URL's href: http://? should throw
+PASS XHR: http://? should throw
+PASS sendBeacon(): http://? should throw
+FAIL Location's href: http://? should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://?' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://? should throw
+PASS URL's constructor's base argument: http://# should throw
+PASS URL's href: http://# should throw
+PASS XHR: http://# should throw
+PASS sendBeacon(): http://# should throw
+FAIL Location's href: http://# should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://#' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://# should throw
+FAIL URL's constructor's base argument: non-special://[:80/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: non-special://[:80/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: non-special://[:80/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): non-special://[:80/ should throw
+FAIL Location's href: non-special://[:80/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): non-special://[:80/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://[::127.0.0.0.1] should throw
+PASS URL's href: http://[::127.0.0.0.1] should throw
+PASS XHR: http://[::127.0.0.0.1] should throw
+PASS sendBeacon(): http://[::127.0.0.0.1] should throw
+FAIL Location's href: http://[::127.0.0.0.1] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[::127.0.0.0.1]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://[::127.0.0.0.1] should throw
+PASS URL's constructor's base argument: a should throw
+PASS URL's href: a should throw
+PASS URL's constructor's base argument: a/ should throw
+PASS URL's href: a/ should throw
+PASS URL's constructor's base argument: a// should throw
+PASS URL's href: a// should throw
+PASS URL's constructor's base argument: file://­/p should throw
+PASS URL's href: file://­/p should throw
+PASS XHR: file://­/p should throw
+PASS sendBeacon(): file://­/p should throw
+FAIL Location's href: file://­/p should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://­/p' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://­/p should throw
+PASS URL's constructor's base argument: file://%C2%AD/p should throw
+PASS URL's href: file://%C2%AD/p should throw
+PASS XHR: file://%C2%AD/p should throw
+PASS sendBeacon(): file://%C2%AD/p should throw
+FAIL Location's href: file://%C2%AD/p should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://%C2%AD/p' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://%C2%AD/p should throw
+FAIL URL's constructor's base argument: file://xn--/p should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://xn--/p should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://xn--/p should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://xn--/p should throw
+FAIL Location's href: file://xn--/p should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://xn--/p should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's constructor's base argument: http://0..0x300/ should throw
+PASS URL's href: http://0..0x300/ should throw
+PASS XHR: http://0..0x300/ should throw
+PASS sendBeacon(): http://0..0x300/ should throw
+FAIL Location's href: http://0..0x300/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0..0x300/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0..0x300/ should throw
+PASS URL's constructor's base argument: http://0..0x300./ should throw
+PASS URL's href: http://0..0x300./ should throw
+PASS XHR: http://0..0x300./ should throw
+PASS sendBeacon(): http://0..0x300./ should throw
+FAIL Location's href: http://0..0x300./ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0..0x300./' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0..0x300./ should throw
+PASS URL's constructor's base argument: http://1.2.3.08 should throw
+PASS URL's href: http://1.2.3.08 should throw
+PASS XHR: http://1.2.3.08 should throw
+PASS sendBeacon(): http://1.2.3.08 should throw
+FAIL Location's href: http://1.2.3.08 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.08' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.08 should throw
+PASS URL's constructor's base argument: http://1.2.3.08. should throw
+PASS URL's href: http://1.2.3.08. should throw
+PASS XHR: http://1.2.3.08. should throw
+PASS sendBeacon(): http://1.2.3.08. should throw
+FAIL Location's href: http://1.2.3.08. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.08.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.08. should throw
+PASS URL's constructor's base argument: http://1.2.3.09 should throw
+PASS URL's href: http://1.2.3.09 should throw
+PASS XHR: http://1.2.3.09 should throw
+PASS sendBeacon(): http://1.2.3.09 should throw
+FAIL Location's href: http://1.2.3.09 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.09' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.09 should throw
+PASS URL's constructor's base argument: http://09.2.3.4 should throw
+PASS URL's href: http://09.2.3.4 should throw
+PASS XHR: http://09.2.3.4 should throw
+PASS sendBeacon(): http://09.2.3.4 should throw
+FAIL Location's href: http://09.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://09.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://09.2.3.4 should throw
+PASS URL's constructor's base argument: http://09.2.3.4. should throw
+PASS URL's href: http://09.2.3.4. should throw
+PASS XHR: http://09.2.3.4. should throw
+PASS sendBeacon(): http://09.2.3.4. should throw
+FAIL Location's href: http://09.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://09.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://09.2.3.4. should throw
+PASS URL's constructor's base argument: http://01.2.3.4.5 should throw
+PASS URL's href: http://01.2.3.4.5 should throw
+PASS XHR: http://01.2.3.4.5 should throw
+PASS sendBeacon(): http://01.2.3.4.5 should throw
+FAIL Location's href: http://01.2.3.4.5 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://01.2.3.4.5' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://01.2.3.4.5 should throw
+PASS URL's constructor's base argument: http://01.2.3.4.5. should throw
+PASS URL's href: http://01.2.3.4.5. should throw
+PASS XHR: http://01.2.3.4.5. should throw
+PASS sendBeacon(): http://01.2.3.4.5. should throw
+FAIL Location's href: http://01.2.3.4.5. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://01.2.3.4.5.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://01.2.3.4.5. should throw
+PASS URL's constructor's base argument: http://0x100.2.3.4 should throw
+PASS URL's href: http://0x100.2.3.4 should throw
+PASS XHR: http://0x100.2.3.4 should throw
+PASS sendBeacon(): http://0x100.2.3.4 should throw
+FAIL Location's href: http://0x100.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x100.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x100.2.3.4 should throw
+PASS URL's constructor's base argument: http://0x100.2.3.4. should throw
+PASS URL's href: http://0x100.2.3.4. should throw
+PASS XHR: http://0x100.2.3.4. should throw
+PASS sendBeacon(): http://0x100.2.3.4. should throw
+FAIL Location's href: http://0x100.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x100.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x100.2.3.4. should throw
+PASS URL's constructor's base argument: http://0x1.2.3.4.5 should throw
+PASS URL's href: http://0x1.2.3.4.5 should throw
+PASS XHR: http://0x1.2.3.4.5 should throw
+PASS sendBeacon(): http://0x1.2.3.4.5 should throw
+FAIL Location's href: http://0x1.2.3.4.5 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x1.2.3.4.5' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x1.2.3.4.5 should throw
+PASS URL's constructor's base argument: http://0x1.2.3.4.5. should throw
+PASS URL's href: http://0x1.2.3.4.5. should throw
+PASS XHR: http://0x1.2.3.4.5. should throw
+PASS sendBeacon(): http://0x1.2.3.4.5. should throw
+FAIL Location's href: http://0x1.2.3.4.5. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x1.2.3.4.5.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x1.2.3.4.5. should throw
+PASS URL's constructor's base argument: http://foo.1.2.3.4 should throw
+PASS URL's href: http://foo.1.2.3.4 should throw
+PASS XHR: http://foo.1.2.3.4 should throw
+PASS sendBeacon(): http://foo.1.2.3.4 should throw
+FAIL Location's href: http://foo.1.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.1.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.1.2.3.4 should throw
+PASS URL's constructor's base argument: http://foo.1.2.3.4. should throw
+PASS URL's href: http://foo.1.2.3.4. should throw
+PASS XHR: http://foo.1.2.3.4. should throw
+PASS sendBeacon(): http://foo.1.2.3.4. should throw
+FAIL Location's href: http://foo.1.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.1.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.1.2.3.4. should throw
+PASS URL's constructor's base argument: http://foo.2.3.4 should throw
+PASS URL's href: http://foo.2.3.4 should throw
+PASS XHR: http://foo.2.3.4 should throw
+PASS sendBeacon(): http://foo.2.3.4 should throw
+FAIL Location's href: http://foo.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.2.3.4 should throw
+PASS URL's constructor's base argument: http://foo.2.3.4. should throw
+PASS URL's href: http://foo.2.3.4. should throw
+PASS XHR: http://foo.2.3.4. should throw
+PASS sendBeacon(): http://foo.2.3.4. should throw
+FAIL Location's href: http://foo.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.2.3.4. should throw
+PASS URL's constructor's base argument: http://foo.09 should throw
+PASS URL's href: http://foo.09 should throw
+PASS XHR: http://foo.09 should throw
+PASS sendBeacon(): http://foo.09 should throw
+FAIL Location's href: http://foo.09 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.09' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.09 should throw
+PASS URL's constructor's base argument: http://foo.09. should throw
+PASS URL's href: http://foo.09. should throw
+PASS XHR: http://foo.09. should throw
+PASS sendBeacon(): http://foo.09. should throw
+FAIL Location's href: http://foo.09. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.09.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.09. should throw
+PASS URL's constructor's base argument: http://foo.0x4 should throw
+PASS URL's href: http://foo.0x4 should throw
+PASS XHR: http://foo.0x4 should throw
+PASS sendBeacon(): http://foo.0x4 should throw
+FAIL Location's href: http://foo.0x4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x4 should throw
+PASS URL's constructor's base argument: http://foo.0x4. should throw
+PASS URL's href: http://foo.0x4. should throw
+PASS XHR: http://foo.0x4. should throw
+PASS sendBeacon(): http://foo.0x4. should throw
+FAIL Location's href: http://foo.0x4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x4. should throw
+PASS URL's constructor's base argument: http://0999999999999999999/ should throw
+PASS URL's href: http://0999999999999999999/ should throw
+PASS XHR: http://0999999999999999999/ should throw
+PASS sendBeacon(): http://0999999999999999999/ should throw
+FAIL Location's href: http://0999999999999999999/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0999999999999999999/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0999999999999999999/ should throw
+PASS URL's constructor's base argument: http://foo.0x should throw
+PASS URL's href: http://foo.0x should throw
+PASS XHR: http://foo.0x should throw
+PASS sendBeacon(): http://foo.0x should throw
+FAIL Location's href: http://foo.0x should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x should throw
+PASS URL's constructor's base argument: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS URL's href: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS XHR: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS sendBeacon(): http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+FAIL Location's href: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0XFfFfFfFfFfFfFfFfFfAcE123' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS URL's constructor's base argument: http://💩.123/ should throw
+PASS URL's href: http://💩.123/ should throw
+PASS XHR: http://💩.123/ should throw
+PASS sendBeacon(): http://💩.123/ should throw
+FAIL Location's href: http://💩.123/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://💩.123/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://💩.123/ should throw
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..80b7d5ac
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,706 @@
+This is a testharness.js-based test.
+Found 605 tests; 467 PASS, 138 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f: /c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+PASS Parsing: <\\x\hello> against <http://example.org/foo/bar>
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:@/www.example.com> against <about:blank>
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+PASS Parsing: <http:@/www.example.com> against <about:blank>
+PASS Parsing: <http:/@/www.example.com> against <about:blank>
+PASS Parsing: <http://@/www.example.com> against <about:blank>
+PASS Parsing: <https:@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http::@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+PASS Parsing: <http:@:www.example.com> against <about:blank>
+PASS Parsing: <http:/@:www.example.com> against <about:blank>
+PASS Parsing: <http://@:www.example.com> against <about:blank>
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://[]> against <http://other.com/>
+PASS Parsing: <http://[:]> against <http://other.com/>
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
+PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
+PASS Parsing: <https://�> against <about:blank>
+PASS Parsing: <https://%EF%BF%BD> against <about:blank>
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://%00.com> against <http://other.com/>
+PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+PASS Parsing: <http://%zz%66%a.com> against <http://other.com/>
+PASS Parsing: <http://%25> against <http://other.com/>
+PASS Parsing: <http://hello%00> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+PASS Parsing: <http://192.168.0.257> against <http://other.com/>
+PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <https://x x:12> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: host expected "." but got ""
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+PASS Parsing: <http://[google.com]> against <http://other.com/>
+PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/>
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+PASS Parsing: <#x> against <data:,>
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+PASS Parsing: <i> against <sc:sd>
+PASS Parsing: <i> against <sc:sd/sd>
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+PASS Parsing: <../i> against <sc:sd>
+PASS Parsing: <../i> against <sc:sd/sd>
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: </i> against <sc:sd>
+PASS Parsing: </i> against <sc:sd/sd>
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: <?i> against <sc:sd>
+PASS Parsing: <?i> against <sc:sd/sd>
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:12/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a^b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <http://a\0b/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+FAIL Parsing: <http://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a%b/> against <about:blank>
+FAIL Parsing: <http://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+PASS Parsing: <http://a^b> against <about:blank>
+FAIL Parsing: <http://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+PASS Parsing: <http://ho%3Ast/> against <about:blank>
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%5Bst/> against <about:blank>
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+PASS Parsing: <http://ho%5Dst/> against <about:blank>
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+PASS Parsing: <ftp://example.com%80/> against <about:blank>
+PASS Parsing: <ftp://example.com%A0/> against <about:blank>
+PASS Parsing: <https://example.com%80/> against <about:blank>
+PASS Parsing: <https://example.com%A0/> against <about:blank>
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+PASS Parsing: <http://10000000000> against <http://other.com/>
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+PASS Parsing: <http://4294967296> against <http://other.com/>
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+PASS Parsing: <http://0xffffffff1> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256> against <http://other.com/>
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+PASS Parsing: <\\\.\Y:> against <about:blank>
+PASS Parsing: <\\\.\y:> against <about:blank>
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
+PASS Parsing: <https://[0::0::0]> against <about:blank>
+PASS Parsing: <https://[0:.0]> against <about:blank>
+PASS Parsing: <https://[0:0:]> against <about:blank>
+PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank>
+PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.23.23]> against <about:blank>
+PASS Parsing: <http://?> against <about:blank>
+PASS Parsing: <http://#> against <about:blank>
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+PASS Parsing: <http://[::127.0.0.0.1]> against <about:blank>
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+PASS Parsing: <a> against <about:blank>
+PASS Parsing: <a/> against <about:blank>
+PASS Parsing: <a//> against <about:blank>
+PASS Parsing: <test-a-colon.html> against <a:>
+PASS Parsing: <test-a-colon-b.html> against <a:b>
+PASS Parsing: <test-a-colon-slash.html> against <a:/>
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> Failed to construct 'URL': Invalid URL
+PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> Failed to construct 'URL': Invalid URL
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+PASS Parsing: <#> against <null>
+PASS Parsing: <?> against <null>
+PASS Parsing: <http://1.2.3.4.5> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4.5.> against <http://other.com/>
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256.256.> against <http://other.com/>
+PASS Parsing: <http://1.2.3.08> against <about:blank>
+PASS Parsing: <http://1.2.3.08.> against <about:blank>
+PASS Parsing: <http://1.2.3.09> against <about:blank>
+PASS Parsing: <http://09.2.3.4> against <about:blank>
+PASS Parsing: <http://09.2.3.4.> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4.> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.09> against <about:blank>
+PASS Parsing: <http://foo.09.> against <about:blank>
+PASS Parsing: <http://foo.0x4> against <about:blank>
+PASS Parsing: <http://foo.0x4.> against <about:blank>
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+PASS Parsing: <http://foo.0x> against <about:blank>
+PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
+PASS Parsing: <http://💩.123/> against <about:blank>
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..80b7d5ac
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/mac/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,706 @@
+This is a testharness.js-based test.
+Found 605 tests; 467 PASS, 138 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f: /c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+PASS Parsing: <\\x\hello> against <http://example.org/foo/bar>
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:@/www.example.com> against <about:blank>
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+PASS Parsing: <http:@/www.example.com> against <about:blank>
+PASS Parsing: <http:/@/www.example.com> against <about:blank>
+PASS Parsing: <http://@/www.example.com> against <about:blank>
+PASS Parsing: <https:@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http::@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+PASS Parsing: <http:@:www.example.com> against <about:blank>
+PASS Parsing: <http:/@:www.example.com> against <about:blank>
+PASS Parsing: <http://@:www.example.com> against <about:blank>
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://[]> against <http://other.com/>
+PASS Parsing: <http://[:]> against <http://other.com/>
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
+PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
+PASS Parsing: <https://�> against <about:blank>
+PASS Parsing: <https://%EF%BF%BD> against <about:blank>
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://%00.com> against <http://other.com/>
+PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+PASS Parsing: <http://%zz%66%a.com> against <http://other.com/>
+PASS Parsing: <http://%25> against <http://other.com/>
+PASS Parsing: <http://hello%00> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+PASS Parsing: <http://192.168.0.257> against <http://other.com/>
+PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <https://x x:12> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: host expected "." but got ""
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+PASS Parsing: <http://[google.com]> against <http://other.com/>
+PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/>
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+PASS Parsing: <#x> against <data:,>
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+PASS Parsing: <i> against <sc:sd>
+PASS Parsing: <i> against <sc:sd/sd>
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+PASS Parsing: <../i> against <sc:sd>
+PASS Parsing: <../i> against <sc:sd/sd>
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: </i> against <sc:sd>
+PASS Parsing: </i> against <sc:sd/sd>
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: <?i> against <sc:sd>
+PASS Parsing: <?i> against <sc:sd/sd>
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:12/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a^b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <http://a\0b/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+FAIL Parsing: <http://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a%b/> against <about:blank>
+FAIL Parsing: <http://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+PASS Parsing: <http://a^b> against <about:blank>
+FAIL Parsing: <http://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+PASS Parsing: <http://ho%3Ast/> against <about:blank>
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%5Bst/> against <about:blank>
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+PASS Parsing: <http://ho%5Dst/> against <about:blank>
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+PASS Parsing: <ftp://example.com%80/> against <about:blank>
+PASS Parsing: <ftp://example.com%A0/> against <about:blank>
+PASS Parsing: <https://example.com%80/> against <about:blank>
+PASS Parsing: <https://example.com%A0/> against <about:blank>
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+PASS Parsing: <http://10000000000> against <http://other.com/>
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+PASS Parsing: <http://4294967296> against <http://other.com/>
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+PASS Parsing: <http://0xffffffff1> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256> against <http://other.com/>
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+PASS Parsing: <\\\.\Y:> against <about:blank>
+PASS Parsing: <\\\.\y:> against <about:blank>
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
+PASS Parsing: <https://[0::0::0]> against <about:blank>
+PASS Parsing: <https://[0:.0]> against <about:blank>
+PASS Parsing: <https://[0:0:]> against <about:blank>
+PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank>
+PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.23.23]> against <about:blank>
+PASS Parsing: <http://?> against <about:blank>
+PASS Parsing: <http://#> against <about:blank>
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+PASS Parsing: <http://[::127.0.0.0.1]> against <about:blank>
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+PASS Parsing: <a> against <about:blank>
+PASS Parsing: <a/> against <about:blank>
+PASS Parsing: <a//> against <about:blank>
+PASS Parsing: <test-a-colon.html> against <a:>
+PASS Parsing: <test-a-colon-b.html> against <a:b>
+PASS Parsing: <test-a-colon-slash.html> against <a:/>
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> Failed to construct 'URL': Invalid URL
+PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> Failed to construct 'URL': Invalid URL
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+PASS Parsing: <#> against <null>
+PASS Parsing: <?> against <null>
+PASS Parsing: <http://1.2.3.4.5> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4.5.> against <http://other.com/>
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256.256.> against <http://other.com/>
+PASS Parsing: <http://1.2.3.08> against <about:blank>
+PASS Parsing: <http://1.2.3.08.> against <about:blank>
+PASS Parsing: <http://1.2.3.09> against <about:blank>
+PASS Parsing: <http://09.2.3.4> against <about:blank>
+PASS Parsing: <http://09.2.3.4.> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4.> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.09> against <about:blank>
+PASS Parsing: <http://foo.09.> against <about:blank>
+PASS Parsing: <http://foo.0x4> against <about:blank>
+PASS Parsing: <http://foo.0x4.> against <about:blank>
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+PASS Parsing: <http://foo.0x> against <about:blank>
+PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
+PASS Parsing: <http://💩.123/> against <about:blank>
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
index ced80cf..7649c888b 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 603 tests; 332 PASS, 271 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 619 tests; 338 PASS, 281 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -614,5 +614,21 @@
 FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
 FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
 FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
index ced80cf..7649c888b 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 603 tests; 332 PASS, 271 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 619 tests; 338 PASS, 281 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -614,5 +614,21 @@
 FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
 FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
 FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+FAIL Parsing: <https://\0y> against <about:blank> assert_equals: failure should set href to input expected "https://\0y" but got "https://%00y/"
+FAIL Parsing: <https://x/\0y> against <about:blank> assert_equals: protocol expected "https:" but got ":"
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+FAIL Parsing: <https://￿y> against <about:blank> assert_equals: failure should set href to input expected "https://\uffffy" but got "https://%EF%BF%BDy/"
+FAIL Parsing: <https://x/￿y> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BFy" but got "https://x/%EF%BF%BDy"
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/failure-expected.txt
index f9649cee..0e6712f0 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/failure-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/failure-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 1043 tests; 700 PASS, 343 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 1055 tests; 710 PASS, 345 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS URL's constructor's base argument: file://example:1/ should throw
 PASS URL's href: file://example:1/ should throw
@@ -1043,5 +1043,17 @@
 PASS sendBeacon(): http://💩.123/ should throw
 FAIL Location's href: http://💩.123/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://💩.123/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
 PASS window.open(): http://💩.123/ should throw
+PASS URL's constructor's base argument: https://\0y should throw
+PASS URL's href: https://\0y should throw
+PASS XHR: https://\0y should throw
+PASS sendBeacon(): https://\0y should throw
+FAIL Location's href: https://\0y should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://\0y' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://\0y should throw
+PASS URL's constructor's base argument: https://￿y should throw
+PASS URL's href: https://￿y should throw
+PASS XHR: https://￿y should throw
+PASS sendBeacon(): https://￿y should throw
+FAIL Location's href: https://￿y should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://￿y' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://￿y should throw
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index ee858980..a0af15a9 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 605 tests; 458 PASS, 147 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 621 tests; 466 PASS, 155 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -710,5 +710,21 @@
 PASS Parsing: <http://foo.0x> against <about:blank>
 PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
 PASS Parsing: <http://💩.123/> against <about:blank>
+PASS Parsing: <https://\0y> against <about:blank>
+FAIL Parsing: <https://x/\0y> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+PASS Parsing: <https://￿y> against <about:blank>
+FAIL Parsing: <https://x/￿y> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
index ee858980..a0af15a9 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 605 tests; 458 PASS, 147 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 621 tests; 466 PASS, 155 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -710,5 +710,21 @@
 PASS Parsing: <http://foo.0x> against <about:blank>
 PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
 PASS Parsing: <http://💩.123/> against <about:blank>
+PASS Parsing: <https://\0y> against <about:blank>
+FAIL Parsing: <https://x/\0y> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <https://x/?\0y> against <about:blank>
+PASS Parsing: <https://x/?#\0y> against <about:blank>
+PASS Parsing: <https://￿y> against <about:blank>
+FAIL Parsing: <https://x/￿y> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <https://x/?￿y> against <about:blank> assert_equals: href expected "https://x/?%EF%BF%BFy" but got "https://x/?%EF%BF%BDy"
+FAIL Parsing: <https://x/?#￿y> against <about:blank> assert_equals: href expected "https://x/?#%EF%BF%BFy" but got "https://x/?#%EF%BF%BDy"
+PASS Parsing: <non-special:\0y> against <about:blank>
+PASS Parsing: <non-special:x/\0y> against <about:blank>
+PASS Parsing: <non-special:x/?\0y> against <about:blank>
+PASS Parsing: <non-special:x/?#\0y> against <about:blank>
+FAIL Parsing: <non-special:￿y> against <about:blank> assert_equals: href expected "non-special:%EF%BF%BFy" but got "non-special:%EF%BF%BDy"
+FAIL Parsing: <non-special:x/￿y> against <about:blank> assert_equals: href expected "non-special:x/%EF%BF%BFy" but got "non-special:x/%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?￿y> against <about:blank> assert_equals: href expected "non-special:x/?%EF%BF%BFy" but got "non-special:x/?%EF%BF%BDy"
+FAIL Parsing: <non-special:x/?#￿y> against <about:blank> assert_equals: href expected "non-special:x/?#%EF%BF%BFy" but got "non-special:x/?#%EF%BF%BDy"
 Harness: the test ran to completion.
 
diff --git "a/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..ced80cf
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,618 @@
+This is a testharness.js-based test.
+Found 603 tests; 332 PASS, 271 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+FAIL Parsing: <a:	 foo.com> against <http://example.org/foo/bar> assert_equals: href expected "a: foo.com" but got "file:///A:/%20foo.com"
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c"
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20#%20e"
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+FAIL Parsing: <\\x\hello> against <http://example.org/foo/bar> assert_equals: href expected "http://x/hello" but got "file://x/hello"
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: href expected "c:/foo" but got "file:///C:/foo"
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/"
+FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/"
+FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/"
+FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/"
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q"
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com"
+FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com"
+FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com"
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/"
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/"
+FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/"
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+FAIL Parsing: <http://﷐zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://﷐zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/"
+FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/"
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/"
+FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/"
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/"
+FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/"
+FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/"
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/"
+FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/"
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: href expected "h://." but got "file:///H://"
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/"
+FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/"
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "test:test#x"
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got ""
+FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got ""
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got ""
+FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got ""
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got ""
+FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got ""
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got ""
+FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got ""
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1"
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD"
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a^b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <http://a\0b/> against <about:blank> assert_equals: failure should set href to input expected "http://a\0b/" but got "http://a%00b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x01b/" but got "http://a%01b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x02b/" but got "http://a%02b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x03b/" but got "http://a%03b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x04b/" but got "http://a%04b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x05b/" but got "http://a%05b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x06b/" but got "http://a%06b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x07b/" but got "http://a%07b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\bb/" but got "http://a%08b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\vb/" but got "http://a%0Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\fb/" but got "http://a%0Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0eb/" but got "http://a%0Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0fb/" but got "http://a%0Fb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x10b/" but got "http://a%10b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x11b/" but got "http://a%11b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x12b/" but got "http://a%12b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x13b/" but got "http://a%13b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x14b/" but got "http://a%14b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x15b/" but got "http://a%15b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x16b/" but got "http://a%16b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x17b/" but got "http://a%17b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x18b/" but got "http://a%18b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x19b/" but got "http://a%19b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1ab/" but got "http://a%1Ab/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1bb/" but got "http://a%1Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1cb/" but got "http://a%1Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1db/" but got "http://a%1Db/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1eb/" but got "http://a%1Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1fb/" but got "http://a%1Fb/"
+FAIL Parsing: <http://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a%b/> against <about:blank> assert_equals: failure should set href to input expected "http://a%b/" but got "http://a%25b/"
+FAIL Parsing: <http://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+FAIL Parsing: <http://a^b> against <about:blank> assert_equals: failure should set href to input expected "http://a^b" but got "http://a%5Eb/"
+FAIL Parsing: <http://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://ab/" but got "http://a%7Fb/"
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+FAIL Parsing: <http://ho%3Ast/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%3Ast/" but got "http://ho:st/"
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%5Bst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Bst/" but got "http://ho[st/"
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+FAIL Parsing: <http://ho%5Dst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Dst/" but got "http://ho]st/"
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/"
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/"
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/"
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/"
+FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/"
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+FAIL Parsing: <\\\.\Y:> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <\\\.\y:> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/"
+FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/"
+FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/"
+FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/"
+FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/"
+FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/"
+FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/"
+FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/"
+FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?"
+FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#"
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1"
+FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1"
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:"
+FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:"
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+FAIL Parsing: <http://[::127.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "http://[::127.0.0.0.1]" but got "http://[::127.0.0.0.1]/"
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+FAIL Parsing: <a> against <about:blank> assert_equals: failure should set href to input expected "a" but got ""
+FAIL Parsing: <a/> against <about:blank> assert_equals: failure should set href to input expected "a/" but got ""
+FAIL Parsing: <a//> against <about:blank> assert_equals: failure should set href to input expected "a//" but got ""
+FAIL Parsing: <test-a-colon.html> against <a:> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <test-a-colon-b.html> against <a:b> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <test-a-colon-slash.html> against <a:/> assert_equals: href expected "a:/test-a-colon-slash.html" but got "file:///A:/test-a-colon-slash.html"
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> assert_equals: href expected "a:///test-a-colon-slash-slash.html" but got "file:///A://test-a-colon-slash-slash.html"
+FAIL Parsing: <test-a-colon-slash-b.html> against <a:/b> assert_equals: href expected "a:/test-a-colon-slash-b.html" but got "file:///A:/test-a-colon-slash-b.html"
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> assert_equals: href expected "a://b/test-a-colon-slash-slash-b.html" but got "file:///A://test-a-colon-slash-slash-b.html"
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+FAIL Parsing: <http://1.2.3.4.5> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5" but got "http://1.2.3.4.5/"
+FAIL Parsing: <http://1.2.3.4.5.> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5." but got "http://1.2.3.4.5./"
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+FAIL Parsing: <http://256.256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256" but got "http://256.256.256.256.256/"
+FAIL Parsing: <http://256.256.256.256.256.> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256." but got "http://256.256.256.256.256./"
+FAIL Parsing: <http://1.2.3.08> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08" but got "http://1.2.3.08/"
+FAIL Parsing: <http://1.2.3.08.> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08." but got "http://1.2.3.08./"
+FAIL Parsing: <http://1.2.3.09> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.09" but got "http://1.2.3.09/"
+FAIL Parsing: <http://09.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4" but got "http://09.2.3.4/"
+FAIL Parsing: <http://09.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4." but got "http://09.2.3.4./"
+FAIL Parsing: <http://01.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5" but got "http://01.2.3.4.5/"
+FAIL Parsing: <http://01.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5." but got "http://01.2.3.4.5./"
+FAIL Parsing: <http://0x100.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4" but got "http://0x100.2.3.4/"
+FAIL Parsing: <http://0x100.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4." but got "http://0x100.2.3.4./"
+FAIL Parsing: <http://0x1.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5" but got "http://0x1.2.3.4.5/"
+FAIL Parsing: <http://0x1.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5." but got "http://0x1.2.3.4.5./"
+FAIL Parsing: <http://foo.1.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4" but got "http://foo.1.2.3.4/"
+FAIL Parsing: <http://foo.1.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4." but got "http://foo.1.2.3.4./"
+FAIL Parsing: <http://foo.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4" but got "http://foo.2.3.4/"
+FAIL Parsing: <http://foo.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4." but got "http://foo.2.3.4./"
+FAIL Parsing: <http://foo.09> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09" but got "http://foo.09/"
+FAIL Parsing: <http://foo.09.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09." but got "http://foo.09./"
+FAIL Parsing: <http://foo.0x4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4" but got "http://foo.0x4/"
+FAIL Parsing: <http://foo.0x4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4." but got "http://foo.0x4./"
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
+FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
+FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..ced80cf
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,618 @@
+This is a testharness.js-based test.
+Found 603 tests; 332 PASS, 271 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+FAIL Parsing: <a:	 foo.com> against <http://example.org/foo/bar> assert_equals: href expected "a: foo.com" but got "file:///A:/%20foo.com"
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c"
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20#%20e"
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+FAIL Parsing: <\\x\hello> against <http://example.org/foo/bar> assert_equals: href expected "http://x/hello" but got "file://x/hello"
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: href expected "c:/foo" but got "file:///C:/foo"
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/"
+FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/"
+FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/"
+FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/"
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q"
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com"
+FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com"
+FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com"
+FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com"
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com"
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/"
+FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/"
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/"
+FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/"
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+FAIL Parsing: <http://﷐zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://﷐zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/"
+FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/"
+FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/"
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/"
+FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/"
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/"
+FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/"
+FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/"
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/"
+FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/"
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: href expected "h://." but got "file:///H://"
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/"
+FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/"
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "test:test#x"
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got ""
+FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got ""
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got ""
+FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got ""
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got ""
+FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got ""
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got ""
+FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got ""
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1"
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD"
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a^b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <http://a\0b/> against <about:blank> assert_equals: failure should set href to input expected "http://a\0b/" but got "http://a%00b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x01b/" but got "http://a%01b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x02b/" but got "http://a%02b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x03b/" but got "http://a%03b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x04b/" but got "http://a%04b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x05b/" but got "http://a%05b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x06b/" but got "http://a%06b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x07b/" but got "http://a%07b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\bb/" but got "http://a%08b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\vb/" but got "http://a%0Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\fb/" but got "http://a%0Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0eb/" but got "http://a%0Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x0fb/" but got "http://a%0Fb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x10b/" but got "http://a%10b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x11b/" but got "http://a%11b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x12b/" but got "http://a%12b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x13b/" but got "http://a%13b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x14b/" but got "http://a%14b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x15b/" but got "http://a%15b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x16b/" but got "http://a%16b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x17b/" but got "http://a%17b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x18b/" but got "http://a%18b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x19b/" but got "http://a%19b/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1ab/" but got "http://a%1Ab/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1bb/" but got "http://a%1Bb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1cb/" but got "http://a%1Cb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1db/" but got "http://a%1Db/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1eb/" but got "http://a%1Eb/"
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://a\x1fb/" but got "http://a%1Fb/"
+FAIL Parsing: <http://a b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a%b/> against <about:blank> assert_equals: failure should set href to input expected "http://a%b/" but got "http://a%25b/"
+FAIL Parsing: <http://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+FAIL Parsing: <http://a^b> against <about:blank> assert_equals: failure should set href to input expected "http://a^b" but got "http://a%5Eb/"
+FAIL Parsing: <http://a|b/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ab/> against <about:blank> assert_equals: failure should set href to input expected "http://ab/" but got "http://a%7Fb/"
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+FAIL Parsing: <http://ho%3Ast/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%3Ast/" but got "http://ho:st/"
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <http://ho%5Bst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Bst/" but got "http://ho[st/"
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+FAIL Parsing: <http://ho%5Dst/> against <about:blank> assert_equals: failure should set href to input expected "http://ho%5Dst/" but got "http://ho]st/"
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/"
+FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/"
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/"
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/"
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/"
+FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/"
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+FAIL Parsing: <\\\.\Y:> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <\\\.\y:> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/"
+FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/"
+FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/"
+FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/"
+FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/"
+FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/"
+FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/"
+FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/"
+FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?"
+FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#"
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1"
+FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1"
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:"
+FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:"
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+FAIL Parsing: <http://[::127.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "http://[::127.0.0.0.1]" but got "http://[::127.0.0.0.1]/"
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+FAIL Parsing: <a> against <about:blank> assert_equals: failure should set href to input expected "a" but got ""
+FAIL Parsing: <a/> against <about:blank> assert_equals: failure should set href to input expected "a/" but got ""
+FAIL Parsing: <a//> against <about:blank> assert_equals: failure should set href to input expected "a//" but got ""
+FAIL Parsing: <test-a-colon.html> against <a:> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <test-a-colon-b.html> against <a:b> assert_unreached: Expected URL to fail parsing Reached unreachable code
+FAIL Parsing: <test-a-colon-slash.html> against <a:/> assert_equals: href expected "a:/test-a-colon-slash.html" but got "file:///A:/test-a-colon-slash.html"
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> assert_equals: href expected "a:///test-a-colon-slash-slash.html" but got "file:///A://test-a-colon-slash-slash.html"
+FAIL Parsing: <test-a-colon-slash-b.html> against <a:/b> assert_equals: href expected "a:/test-a-colon-slash-b.html" but got "file:///A:/test-a-colon-slash-b.html"
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> assert_equals: href expected "a://b/test-a-colon-slash-slash-b.html" but got "file:///A://test-a-colon-slash-slash-b.html"
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+FAIL Parsing: <http://1.2.3.4.5> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5" but got "http://1.2.3.4.5/"
+FAIL Parsing: <http://1.2.3.4.5.> against <http://other.com/> assert_equals: failure should set href to input expected "http://1.2.3.4.5." but got "http://1.2.3.4.5./"
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+FAIL Parsing: <http://256.256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256" but got "http://256.256.256.256.256/"
+FAIL Parsing: <http://256.256.256.256.256.> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256.256." but got "http://256.256.256.256.256./"
+FAIL Parsing: <http://1.2.3.08> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08" but got "http://1.2.3.08/"
+FAIL Parsing: <http://1.2.3.08.> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.08." but got "http://1.2.3.08./"
+FAIL Parsing: <http://1.2.3.09> against <about:blank> assert_equals: failure should set href to input expected "http://1.2.3.09" but got "http://1.2.3.09/"
+FAIL Parsing: <http://09.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4" but got "http://09.2.3.4/"
+FAIL Parsing: <http://09.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://09.2.3.4." but got "http://09.2.3.4./"
+FAIL Parsing: <http://01.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5" but got "http://01.2.3.4.5/"
+FAIL Parsing: <http://01.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://01.2.3.4.5." but got "http://01.2.3.4.5./"
+FAIL Parsing: <http://0x100.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4" but got "http://0x100.2.3.4/"
+FAIL Parsing: <http://0x100.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://0x100.2.3.4." but got "http://0x100.2.3.4./"
+FAIL Parsing: <http://0x1.2.3.4.5> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5" but got "http://0x1.2.3.4.5/"
+FAIL Parsing: <http://0x1.2.3.4.5.> against <about:blank> assert_equals: failure should set href to input expected "http://0x1.2.3.4.5." but got "http://0x1.2.3.4.5./"
+FAIL Parsing: <http://foo.1.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4" but got "http://foo.1.2.3.4/"
+FAIL Parsing: <http://foo.1.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.1.2.3.4." but got "http://foo.1.2.3.4./"
+FAIL Parsing: <http://foo.2.3.4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4" but got "http://foo.2.3.4/"
+FAIL Parsing: <http://foo.2.3.4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.2.3.4." but got "http://foo.2.3.4./"
+FAIL Parsing: <http://foo.09> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09" but got "http://foo.09/"
+FAIL Parsing: <http://foo.09.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.09." but got "http://foo.09./"
+FAIL Parsing: <http://foo.0x4> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4" but got "http://foo.0x4/"
+FAIL Parsing: <http://foo.0x4.> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x4." but got "http://foo.0x4./"
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+FAIL Parsing: <http://foo.0x> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0x" but got "http://foo.0x/"
+FAIL Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank> assert_equals: failure should set href to input expected "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123" but got "http://foo.0xfffffffffffffffffface123/"
+FAIL Parsing: <http://💩.123/> against <about:blank> assert_equals: failure should set href to input expected "http://💩.123/" but got "http://xn--ls8h.123/"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/failure-expected.txt
new file mode 100644
index 0000000..f9649cee
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/failure-expected.txt
@@ -0,0 +1,1047 @@
+This is a testharness.js-based test.
+Found 1043 tests; 700 PASS, 343 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS URL's constructor's base argument: file://example:1/ should throw
+PASS URL's href: file://example:1/ should throw
+PASS XHR: file://example:1/ should throw
+PASS sendBeacon(): file://example:1/ should throw
+FAIL Location's href: file://example:1/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:1/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example:1/ should throw
+PASS URL's constructor's base argument: file://example:test/ should throw
+PASS URL's href: file://example:test/ should throw
+PASS XHR: file://example:test/ should throw
+PASS sendBeacon(): file://example:test/ should throw
+FAIL Location's href: file://example:test/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:test/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example:test/ should throw
+PASS URL's constructor's base argument: file://example%/ should throw
+PASS URL's href: file://example%/ should throw
+PASS XHR: file://example%/ should throw
+PASS sendBeacon(): file://example%/ should throw
+FAIL Location's href: file://example%/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example%/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://example%/ should throw
+PASS URL's constructor's base argument: file://[example]/ should throw
+PASS URL's href: file://[example]/ should throw
+PASS XHR: file://[example]/ should throw
+PASS sendBeacon(): file://[example]/ should throw
+FAIL Location's href: file://[example]/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://[example]/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://[example]/ should throw
+PASS URL's constructor's base argument: http://user:pass@/ should throw
+PASS URL's href: http://user:pass@/ should throw
+PASS XHR: http://user:pass@/ should throw
+PASS sendBeacon(): http://user:pass@/ should throw
+FAIL Location's href: http://user:pass@/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user:pass@/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://user:pass@/ should throw
+PASS URL's constructor's base argument: http://foo:-80/ should throw
+PASS URL's href: http://foo:-80/ should throw
+PASS XHR: http://foo:-80/ should throw
+PASS sendBeacon(): http://foo:-80/ should throw
+FAIL Location's href: http://foo:-80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo:-80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo:-80/ should throw
+PASS URL's constructor's base argument: http:/:@/www.example.com should throw
+PASS URL's href: http:/:@/www.example.com should throw
+PASS URL's constructor's base argument: http://user@/www.example.com should throw
+PASS URL's href: http://user@/www.example.com should throw
+PASS XHR: http://user@/www.example.com should throw
+PASS sendBeacon(): http://user@/www.example.com should throw
+FAIL Location's href: http://user@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://user@/www.example.com should throw
+PASS URL's constructor's base argument: http:@/www.example.com should throw
+PASS URL's href: http:@/www.example.com should throw
+PASS URL's constructor's base argument: http:/@/www.example.com should throw
+PASS URL's href: http:/@/www.example.com should throw
+PASS URL's constructor's base argument: http://@/www.example.com should throw
+PASS URL's href: http://@/www.example.com should throw
+PASS XHR: http://@/www.example.com should throw
+PASS sendBeacon(): http://@/www.example.com should throw
+FAIL Location's href: http://@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://@/www.example.com should throw
+PASS URL's constructor's base argument: https:@/www.example.com should throw
+PASS URL's href: https:@/www.example.com should throw
+PASS URL's constructor's base argument: http:a:b@/www.example.com should throw
+PASS URL's href: http:a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http:/a:b@/www.example.com should throw
+PASS URL's href: http:/a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http://a:b@/www.example.com should throw
+PASS URL's href: http://a:b@/www.example.com should throw
+PASS XHR: http://a:b@/www.example.com should throw
+PASS sendBeacon(): http://a:b@/www.example.com should throw
+FAIL Location's href: http://a:b@/www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a:b@/www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a:b@/www.example.com should throw
+PASS URL's constructor's base argument: http::@/www.example.com should throw
+PASS URL's href: http::@/www.example.com should throw
+PASS URL's constructor's base argument: http:@:www.example.com should throw
+PASS URL's href: http:@:www.example.com should throw
+PASS URL's constructor's base argument: http:/@:www.example.com should throw
+PASS URL's href: http:/@:www.example.com should throw
+PASS URL's constructor's base argument: http://@:www.example.com should throw
+PASS URL's href: http://@:www.example.com should throw
+PASS XHR: http://@:www.example.com should throw
+PASS sendBeacon(): http://@:www.example.com should throw
+FAIL Location's href: http://@:www.example.com should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@:www.example.com' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://@:www.example.com should throw
+PASS URL's constructor's base argument: https://� should throw
+PASS URL's href: https://� should throw
+PASS XHR: https://� should throw
+PASS sendBeacon(): https://� should throw
+FAIL Location's href: https://� should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://�' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://� should throw
+PASS URL's constructor's base argument: https://%EF%BF%BD should throw
+PASS URL's href: https://%EF%BF%BD should throw
+PASS XHR: https://%EF%BF%BD should throw
+PASS sendBeacon(): https://%EF%BF%BD should throw
+FAIL Location's href: https://%EF%BF%BD should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://%EF%BF%BD' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://%EF%BF%BD should throw
+FAIL URL's constructor's base argument: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.XN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.XN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.XN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a.b.c.Xn--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a.b.c.Xn--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a.b.c.Xn--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.XN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.XN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.XN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://10.0.0.xN--pokxncvks should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://10.0.0.xN--pokxncvks should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://10.0.0.xN--pokxncvks should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: https://x x:12 should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: https://x x:12 should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: https://x x:12 should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): https://x x:12 should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: https://x x:12 should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://x x:12 should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://[www.google.com]/ should throw
+PASS URL's href: http://[www.google.com]/ should throw
+PASS XHR: http://[www.google.com]/ should throw
+PASS sendBeacon(): http://[www.google.com]/ should throw
+FAIL Location's href: http://[www.google.com]/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[www.google.com]/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://[www.google.com]/ should throw
+FAIL URL's constructor's base argument: sc://@/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://@/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://@/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://@/ should throw
+FAIL Location's href: sc://@/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://@/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://te@s:t@/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://te@s:t@/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://te@s:t@/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://te@s:t@/ should throw
+FAIL Location's href: sc://te@s:t@/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://te@s:t@/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://:/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://:/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://:/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:/ should throw
+FAIL Location's href: sc://:/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://:12/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://:12/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://:12/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:12/ should throw
+FAIL Location's href: sc://:12/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:12/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a\0b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a\0b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a\0b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a\0b/ should throw
+FAIL Location's href: sc://a\0b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a\0b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a b/ should throw
+FAIL Location's href: sc://a b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a<b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a<b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a<b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a<b should throw
+FAIL Location's href: sc://a<b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a<b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a>b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a>b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a>b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a>b should throw
+FAIL Location's href: sc://a>b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a>b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a[b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a[b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a[b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a[b/ should throw
+FAIL Location's href: sc://a[b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a[b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a\b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a\b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a\b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a\b/ should throw
+FAIL Location's href: sc://a\b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a\b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a]b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a]b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a]b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a]b/ should throw
+FAIL Location's href: sc://a]b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a]b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a^b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a^b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a^b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a^b should throw
+FAIL Location's href: sc://a^b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a^b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: sc://a|b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: sc://a|b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: sc://a|b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://a|b/ should throw
+FAIL Location's href: sc://a|b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://a|b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a\0b/ should throw
+PASS URL's href: http://a\0b/ should throw
+PASS XHR: http://a\0b/ should throw
+PASS sendBeacon(): http://a\0b/ should throw
+FAIL Location's href: http://a\0b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a\0b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a\0b/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+FAIL URL's constructor's base argument: http://a b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a b/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a%b/ should throw
+PASS URL's href: http://a%b/ should throw
+PASS XHR: http://a%b/ should throw
+PASS sendBeacon(): http://a%b/ should throw
+FAIL Location's href: http://a%b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a%b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a%b/ should throw
+FAIL URL's constructor's base argument: http://a<b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a<b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a<b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a<b should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a<b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a<b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://a>b should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a>b should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a>b should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a>b should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a>b should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a>b should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://a[b/ should throw
+PASS URL's href: http://a[b/ should throw
+PASS XHR: http://a[b/ should throw
+PASS sendBeacon(): http://a[b/ should throw
+FAIL Location's href: http://a[b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a[b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a[b/ should throw
+PASS URL's constructor's base argument: http://a]b/ should throw
+PASS URL's href: http://a]b/ should throw
+PASS XHR: http://a]b/ should throw
+PASS sendBeacon(): http://a]b/ should throw
+FAIL Location's href: http://a]b/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a]b/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a]b/ should throw
+PASS URL's constructor's base argument: http://a^b should throw
+PASS URL's href: http://a^b should throw
+PASS XHR: http://a^b should throw
+PASS sendBeacon(): http://a^b should throw
+FAIL Location's href: http://a^b should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a^b' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://a^b should throw
+FAIL URL's constructor's base argument: http://a|b/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://a|b/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://a|b/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://a|b/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://a|b/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a|b/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ab/ should throw
+PASS URL's href: http://ab/ should throw
+PASS XHR: http://ab/ should throw
+PASS sendBeacon(): http://ab/ should throw
+FAIL Location's href: http://ab/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ab/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ab/ should throw
+PASS URL's constructor's base argument: http://ho%00st/ should throw
+PASS URL's href: http://ho%00st/ should throw
+PASS XHR: http://ho%00st/ should throw
+PASS sendBeacon(): http://ho%00st/ should throw
+FAIL Location's href: http://ho%00st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%00st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%00st/ should throw
+PASS URL's constructor's base argument: http://ho%01st/ should throw
+PASS URL's href: http://ho%01st/ should throw
+PASS XHR: http://ho%01st/ should throw
+PASS sendBeacon(): http://ho%01st/ should throw
+FAIL Location's href: http://ho%01st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%01st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%01st/ should throw
+PASS URL's constructor's base argument: http://ho%02st/ should throw
+PASS URL's href: http://ho%02st/ should throw
+PASS XHR: http://ho%02st/ should throw
+PASS sendBeacon(): http://ho%02st/ should throw
+FAIL Location's href: http://ho%02st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%02st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%02st/ should throw
+PASS URL's constructor's base argument: http://ho%03st/ should throw
+PASS URL's href: http://ho%03st/ should throw
+PASS XHR: http://ho%03st/ should throw
+PASS sendBeacon(): http://ho%03st/ should throw
+FAIL Location's href: http://ho%03st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%03st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%03st/ should throw
+PASS URL's constructor's base argument: http://ho%04st/ should throw
+PASS URL's href: http://ho%04st/ should throw
+PASS XHR: http://ho%04st/ should throw
+PASS sendBeacon(): http://ho%04st/ should throw
+FAIL Location's href: http://ho%04st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%04st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%04st/ should throw
+PASS URL's constructor's base argument: http://ho%05st/ should throw
+PASS URL's href: http://ho%05st/ should throw
+PASS XHR: http://ho%05st/ should throw
+PASS sendBeacon(): http://ho%05st/ should throw
+FAIL Location's href: http://ho%05st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%05st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%05st/ should throw
+PASS URL's constructor's base argument: http://ho%06st/ should throw
+PASS URL's href: http://ho%06st/ should throw
+PASS XHR: http://ho%06st/ should throw
+PASS sendBeacon(): http://ho%06st/ should throw
+FAIL Location's href: http://ho%06st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%06st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%06st/ should throw
+PASS URL's constructor's base argument: http://ho%07st/ should throw
+PASS URL's href: http://ho%07st/ should throw
+PASS XHR: http://ho%07st/ should throw
+PASS sendBeacon(): http://ho%07st/ should throw
+FAIL Location's href: http://ho%07st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%07st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%07st/ should throw
+PASS URL's constructor's base argument: http://ho%08st/ should throw
+PASS URL's href: http://ho%08st/ should throw
+PASS XHR: http://ho%08st/ should throw
+PASS sendBeacon(): http://ho%08st/ should throw
+FAIL Location's href: http://ho%08st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%08st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%08st/ should throw
+PASS URL's constructor's base argument: http://ho%09st/ should throw
+PASS URL's href: http://ho%09st/ should throw
+PASS XHR: http://ho%09st/ should throw
+PASS sendBeacon(): http://ho%09st/ should throw
+FAIL Location's href: http://ho%09st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%09st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%09st/ should throw
+PASS URL's constructor's base argument: http://ho%0Ast/ should throw
+PASS URL's href: http://ho%0Ast/ should throw
+PASS XHR: http://ho%0Ast/ should throw
+PASS sendBeacon(): http://ho%0Ast/ should throw
+FAIL Location's href: http://ho%0Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Ast/ should throw
+PASS URL's constructor's base argument: http://ho%0Bst/ should throw
+PASS URL's href: http://ho%0Bst/ should throw
+PASS XHR: http://ho%0Bst/ should throw
+PASS sendBeacon(): http://ho%0Bst/ should throw
+FAIL Location's href: http://ho%0Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Bst/ should throw
+PASS URL's constructor's base argument: http://ho%0Cst/ should throw
+PASS URL's href: http://ho%0Cst/ should throw
+PASS XHR: http://ho%0Cst/ should throw
+PASS sendBeacon(): http://ho%0Cst/ should throw
+FAIL Location's href: http://ho%0Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Cst/ should throw
+PASS URL's constructor's base argument: http://ho%0Dst/ should throw
+PASS URL's href: http://ho%0Dst/ should throw
+PASS XHR: http://ho%0Dst/ should throw
+PASS sendBeacon(): http://ho%0Dst/ should throw
+FAIL Location's href: http://ho%0Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Dst/ should throw
+PASS URL's constructor's base argument: http://ho%0Est/ should throw
+PASS URL's href: http://ho%0Est/ should throw
+PASS XHR: http://ho%0Est/ should throw
+PASS sendBeacon(): http://ho%0Est/ should throw
+FAIL Location's href: http://ho%0Est/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Est/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Est/ should throw
+PASS URL's constructor's base argument: http://ho%0Fst/ should throw
+PASS URL's href: http://ho%0Fst/ should throw
+PASS XHR: http://ho%0Fst/ should throw
+PASS sendBeacon(): http://ho%0Fst/ should throw
+FAIL Location's href: http://ho%0Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%0Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%0Fst/ should throw
+PASS URL's constructor's base argument: http://ho%10st/ should throw
+PASS URL's href: http://ho%10st/ should throw
+PASS XHR: http://ho%10st/ should throw
+PASS sendBeacon(): http://ho%10st/ should throw
+FAIL Location's href: http://ho%10st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%10st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%10st/ should throw
+PASS URL's constructor's base argument: http://ho%11st/ should throw
+PASS URL's href: http://ho%11st/ should throw
+PASS XHR: http://ho%11st/ should throw
+PASS sendBeacon(): http://ho%11st/ should throw
+FAIL Location's href: http://ho%11st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%11st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%11st/ should throw
+PASS URL's constructor's base argument: http://ho%12st/ should throw
+PASS URL's href: http://ho%12st/ should throw
+PASS XHR: http://ho%12st/ should throw
+PASS sendBeacon(): http://ho%12st/ should throw
+FAIL Location's href: http://ho%12st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%12st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%12st/ should throw
+PASS URL's constructor's base argument: http://ho%13st/ should throw
+PASS URL's href: http://ho%13st/ should throw
+PASS XHR: http://ho%13st/ should throw
+PASS sendBeacon(): http://ho%13st/ should throw
+FAIL Location's href: http://ho%13st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%13st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%13st/ should throw
+PASS URL's constructor's base argument: http://ho%14st/ should throw
+PASS URL's href: http://ho%14st/ should throw
+PASS XHR: http://ho%14st/ should throw
+PASS sendBeacon(): http://ho%14st/ should throw
+FAIL Location's href: http://ho%14st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%14st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%14st/ should throw
+PASS URL's constructor's base argument: http://ho%15st/ should throw
+PASS URL's href: http://ho%15st/ should throw
+PASS XHR: http://ho%15st/ should throw
+PASS sendBeacon(): http://ho%15st/ should throw
+FAIL Location's href: http://ho%15st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%15st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%15st/ should throw
+PASS URL's constructor's base argument: http://ho%16st/ should throw
+PASS URL's href: http://ho%16st/ should throw
+PASS XHR: http://ho%16st/ should throw
+PASS sendBeacon(): http://ho%16st/ should throw
+FAIL Location's href: http://ho%16st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%16st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%16st/ should throw
+PASS URL's constructor's base argument: http://ho%17st/ should throw
+PASS URL's href: http://ho%17st/ should throw
+PASS XHR: http://ho%17st/ should throw
+PASS sendBeacon(): http://ho%17st/ should throw
+FAIL Location's href: http://ho%17st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%17st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%17st/ should throw
+PASS URL's constructor's base argument: http://ho%18st/ should throw
+PASS URL's href: http://ho%18st/ should throw
+PASS XHR: http://ho%18st/ should throw
+PASS sendBeacon(): http://ho%18st/ should throw
+FAIL Location's href: http://ho%18st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%18st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%18st/ should throw
+PASS URL's constructor's base argument: http://ho%19st/ should throw
+PASS URL's href: http://ho%19st/ should throw
+PASS XHR: http://ho%19st/ should throw
+PASS sendBeacon(): http://ho%19st/ should throw
+FAIL Location's href: http://ho%19st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%19st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%19st/ should throw
+PASS URL's constructor's base argument: http://ho%1Ast/ should throw
+PASS URL's href: http://ho%1Ast/ should throw
+PASS XHR: http://ho%1Ast/ should throw
+PASS sendBeacon(): http://ho%1Ast/ should throw
+FAIL Location's href: http://ho%1Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Ast/ should throw
+PASS URL's constructor's base argument: http://ho%1Bst/ should throw
+PASS URL's href: http://ho%1Bst/ should throw
+PASS XHR: http://ho%1Bst/ should throw
+PASS sendBeacon(): http://ho%1Bst/ should throw
+FAIL Location's href: http://ho%1Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Bst/ should throw
+PASS URL's constructor's base argument: http://ho%1Cst/ should throw
+PASS URL's href: http://ho%1Cst/ should throw
+PASS XHR: http://ho%1Cst/ should throw
+PASS sendBeacon(): http://ho%1Cst/ should throw
+FAIL Location's href: http://ho%1Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Cst/ should throw
+PASS URL's constructor's base argument: http://ho%1Dst/ should throw
+PASS URL's href: http://ho%1Dst/ should throw
+PASS XHR: http://ho%1Dst/ should throw
+PASS sendBeacon(): http://ho%1Dst/ should throw
+FAIL Location's href: http://ho%1Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Dst/ should throw
+PASS URL's constructor's base argument: http://ho%1Est/ should throw
+PASS URL's href: http://ho%1Est/ should throw
+PASS XHR: http://ho%1Est/ should throw
+PASS sendBeacon(): http://ho%1Est/ should throw
+FAIL Location's href: http://ho%1Est/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Est/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Est/ should throw
+PASS URL's constructor's base argument: http://ho%1Fst/ should throw
+PASS URL's href: http://ho%1Fst/ should throw
+PASS XHR: http://ho%1Fst/ should throw
+PASS sendBeacon(): http://ho%1Fst/ should throw
+FAIL Location's href: http://ho%1Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%1Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%1Fst/ should throw
+FAIL URL's constructor's base argument: http://ho%20st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%20st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%20st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%20st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%20st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%20st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://ho%23st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%23st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%23st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%23st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%23st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%23st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%25st/ should throw
+PASS URL's href: http://ho%25st/ should throw
+PASS XHR: http://ho%25st/ should throw
+PASS sendBeacon(): http://ho%25st/ should throw
+FAIL Location's href: http://ho%25st/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%25st/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%25st/ should throw
+PASS URL's constructor's base argument: http://ho%2Fst/ should throw
+PASS URL's href: http://ho%2Fst/ should throw
+PASS XHR: http://ho%2Fst/ should throw
+PASS sendBeacon(): http://ho%2Fst/ should throw
+FAIL Location's href: http://ho%2Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%2Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%2Fst/ should throw
+PASS URL's constructor's base argument: http://ho%3Ast/ should throw
+PASS URL's href: http://ho%3Ast/ should throw
+PASS XHR: http://ho%3Ast/ should throw
+PASS sendBeacon(): http://ho%3Ast/ should throw
+FAIL Location's href: http://ho%3Ast/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%3Ast/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%3Ast/ should throw
+FAIL URL's constructor's base argument: http://ho%3Cst/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%3Cst/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%3Cst/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%3Cst/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%3Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%3Cst/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: http://ho%3Est/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%3Est/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%3Est/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%3Est/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%3Est/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%3Est/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%3Fst/ should throw
+PASS URL's href: http://ho%3Fst/ should throw
+PASS XHR: http://ho%3Fst/ should throw
+PASS sendBeacon(): http://ho%3Fst/ should throw
+FAIL Location's href: http://ho%3Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%3Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%3Fst/ should throw
+FAIL URL's constructor's base argument: http://ho%40st/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%40st/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%40st/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%40st/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%40st/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%40st/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%5Bst/ should throw
+PASS URL's href: http://ho%5Bst/ should throw
+PASS XHR: http://ho%5Bst/ should throw
+PASS sendBeacon(): http://ho%5Bst/ should throw
+FAIL Location's href: http://ho%5Bst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Bst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Bst/ should throw
+PASS URL's constructor's base argument: http://ho%5Cst/ should throw
+PASS URL's href: http://ho%5Cst/ should throw
+PASS XHR: http://ho%5Cst/ should throw
+PASS sendBeacon(): http://ho%5Cst/ should throw
+FAIL Location's href: http://ho%5Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Cst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Cst/ should throw
+PASS URL's constructor's base argument: http://ho%5Dst/ should throw
+PASS URL's href: http://ho%5Dst/ should throw
+PASS XHR: http://ho%5Dst/ should throw
+PASS sendBeacon(): http://ho%5Dst/ should throw
+FAIL Location's href: http://ho%5Dst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%5Dst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%5Dst/ should throw
+FAIL URL's constructor's base argument: http://ho%7Cst/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: http://ho%7Cst/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: http://ho%7Cst/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): http://ho%7Cst/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: http://ho%7Cst/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://ho%7Cst/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://ho%7Fst/ should throw
+PASS URL's href: http://ho%7Fst/ should throw
+PASS XHR: http://ho%7Fst/ should throw
+PASS sendBeacon(): http://ho%7Fst/ should throw
+FAIL Location's href: http://ho%7Fst/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://ho%7Fst/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://ho%7Fst/ should throw
+PASS URL's constructor's base argument: ftp://example.com%80/ should throw
+PASS URL's href: ftp://example.com%80/ should throw
+PASS XHR: ftp://example.com%80/ should throw
+PASS sendBeacon(): ftp://example.com%80/ should throw
+FAIL Location's href: ftp://example.com%80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): ftp://example.com%80/ should throw
+PASS URL's constructor's base argument: ftp://example.com%A0/ should throw
+PASS URL's href: ftp://example.com%A0/ should throw
+PASS XHR: ftp://example.com%A0/ should throw
+PASS sendBeacon(): ftp://example.com%A0/ should throw
+FAIL Location's href: ftp://example.com%A0/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%A0/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): ftp://example.com%A0/ should throw
+PASS URL's constructor's base argument: https://example.com%80/ should throw
+PASS URL's href: https://example.com%80/ should throw
+PASS XHR: https://example.com%80/ should throw
+PASS sendBeacon(): https://example.com%80/ should throw
+FAIL Location's href: https://example.com%80/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%80/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://example.com%80/ should throw
+PASS URL's constructor's base argument: https://example.com%A0/ should throw
+PASS URL's href: https://example.com%A0/ should throw
+PASS XHR: https://example.com%A0/ should throw
+PASS sendBeacon(): https://example.com%A0/ should throw
+FAIL Location's href: https://example.com%A0/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%A0/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://example.com%A0/ should throw
+PASS URL's constructor's base argument: https://0x100000000/test should throw
+PASS URL's href: https://0x100000000/test should throw
+PASS XHR: https://0x100000000/test should throw
+PASS sendBeacon(): https://0x100000000/test should throw
+FAIL Location's href: https://0x100000000/test should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://0x100000000/test' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://0x100000000/test should throw
+PASS URL's constructor's base argument: https://256.0.0.1/test should throw
+PASS URL's href: https://256.0.0.1/test should throw
+PASS XHR: https://256.0.0.1/test should throw
+PASS sendBeacon(): https://256.0.0.1/test should throw
+FAIL Location's href: https://256.0.0.1/test should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://256.0.0.1/test' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://256.0.0.1/test should throw
+PASS URL's constructor's base argument: file://%43%3A should throw
+PASS URL's href: file://%43%3A should throw
+PASS XHR: file://%43%3A should throw
+PASS sendBeacon(): file://%43%3A should throw
+FAIL Location's href: file://%43%3A should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://%43%3A' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://%43%3A should throw
+FAIL URL's constructor's base argument: file://%43%7C should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43%7C should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43%7C should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43%7C should throw
+FAIL Location's href: file://%43%7C should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43%7C should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://%43| should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43| should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43| should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43| should throw
+FAIL Location's href: file://%43| should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43| should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://C%7C should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://C%7C should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://C%7C should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://C%7C should throw
+FAIL Location's href: file://C%7C should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://C%7C should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: file://%43%7C/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://%43%7C/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://%43%7C/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://%43%7C/ should throw
+FAIL Location's href: file://%43%7C/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://%43%7C/ should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+FAIL URL's constructor's base argument: https://%43%7C/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: https://%43%7C/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: https://%43%7C/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+FAIL sendBeacon(): https://%43%7C/ should throw assert_throws_js: function "() => self.navigator.sendBeacon(test.input)" did not throw
+FAIL Location's href: https://%43%7C/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://%43%7C/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: asdf://%43|/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: asdf://%43|/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: asdf://%43|/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): asdf://%43|/ should throw
+FAIL Location's href: asdf://%43|/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): asdf://%43|/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+FAIL URL's constructor's base argument: \\\.\Y: should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: \\\.\Y: should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL URL's constructor's base argument: \\\.\y: should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: \\\.\y: should throw assert_throws_js: function "() => url.href = test.input" did not throw
+PASS URL's constructor's base argument: https://[0::0::0] should throw
+PASS URL's href: https://[0::0::0] should throw
+PASS XHR: https://[0::0::0] should throw
+PASS sendBeacon(): https://[0::0::0] should throw
+FAIL Location's href: https://[0::0::0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0::0::0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0::0::0] should throw
+PASS URL's constructor's base argument: https://[0:.0] should throw
+PASS URL's href: https://[0:.0] should throw
+PASS XHR: https://[0:.0] should throw
+PASS sendBeacon(): https://[0:.0] should throw
+FAIL Location's href: https://[0:.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:.0] should throw
+PASS URL's constructor's base argument: https://[0:0:] should throw
+PASS URL's href: https://[0:0:] should throw
+PASS XHR: https://[0:0:] should throw
+PASS sendBeacon(): https://[0:0:] should throw
+FAIL Location's href: https://[0:0:] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:0:]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:0:] should throw
+PASS URL's constructor's base argument: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1:2:3:4:5:6:7.0.0.0.1]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw
+PASS URL's constructor's base argument: https://[0:1.00.0.0.0] should throw
+PASS URL's href: https://[0:1.00.0.0.0] should throw
+PASS XHR: https://[0:1.00.0.0.0] should throw
+PASS sendBeacon(): https://[0:1.00.0.0.0] should throw
+FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.00.0.0.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.00.0.0.0] should throw
+PASS URL's constructor's base argument: https://[0:1.290.0.0.0] should throw
+PASS URL's href: https://[0:1.290.0.0.0] should throw
+PASS XHR: https://[0:1.290.0.0.0] should throw
+PASS sendBeacon(): https://[0:1.290.0.0.0] should throw
+FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.290.0.0.0]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.290.0.0.0] should throw
+PASS URL's constructor's base argument: https://[0:1.23.23] should throw
+PASS URL's href: https://[0:1.23.23] should throw
+PASS XHR: https://[0:1.23.23] should throw
+PASS sendBeacon(): https://[0:1.23.23] should throw
+FAIL Location's href: https://[0:1.23.23] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.23.23]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): https://[0:1.23.23] should throw
+PASS URL's constructor's base argument: http://? should throw
+PASS URL's href: http://? should throw
+PASS XHR: http://? should throw
+PASS sendBeacon(): http://? should throw
+FAIL Location's href: http://? should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://?' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://? should throw
+PASS URL's constructor's base argument: http://# should throw
+PASS URL's href: http://# should throw
+PASS XHR: http://# should throw
+PASS sendBeacon(): http://# should throw
+FAIL Location's href: http://# should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://#' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://# should throw
+FAIL URL's constructor's base argument: non-special://[:80/ should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: non-special://[:80/ should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: non-special://[:80/ should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): non-special://[:80/ should throw
+FAIL Location's href: non-special://[:80/ should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): non-special://[:80/ should throw assert_throws_dom: function "() => self.open(test.input).close()" did not throw
+PASS URL's constructor's base argument: http://[::127.0.0.0.1] should throw
+PASS URL's href: http://[::127.0.0.0.1] should throw
+PASS XHR: http://[::127.0.0.0.1] should throw
+PASS sendBeacon(): http://[::127.0.0.0.1] should throw
+FAIL Location's href: http://[::127.0.0.0.1] should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[::127.0.0.0.1]' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://[::127.0.0.0.1] should throw
+PASS URL's constructor's base argument: a should throw
+PASS URL's href: a should throw
+PASS URL's constructor's base argument: a/ should throw
+PASS URL's href: a/ should throw
+PASS URL's constructor's base argument: a// should throw
+PASS URL's href: a// should throw
+PASS URL's constructor's base argument: file://­/p should throw
+PASS URL's href: file://­/p should throw
+PASS XHR: file://­/p should throw
+PASS sendBeacon(): file://­/p should throw
+FAIL Location's href: file://­/p should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://­/p' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://­/p should throw
+PASS URL's constructor's base argument: file://%C2%AD/p should throw
+PASS URL's href: file://%C2%AD/p should throw
+PASS XHR: file://%C2%AD/p should throw
+PASS sendBeacon(): file://%C2%AD/p should throw
+FAIL Location's href: file://%C2%AD/p should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://%C2%AD/p' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): file://%C2%AD/p should throw
+FAIL URL's constructor's base argument: file://xn--/p should throw assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
+FAIL URL's href: file://xn--/p should throw assert_throws_js: function "() => url.href = test.input" did not throw
+FAIL XHR: file://xn--/p should throw assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://xn--/p should throw
+FAIL Location's href: file://xn--/p should throw assert_throws_js: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://xn--/p should throw assert_throws_dom: function "() => self.open(test.input).close()" threw object "TypeError: Cannot read properties of null (reading 'close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's constructor's base argument: http://0..0x300/ should throw
+PASS URL's href: http://0..0x300/ should throw
+PASS XHR: http://0..0x300/ should throw
+PASS sendBeacon(): http://0..0x300/ should throw
+FAIL Location's href: http://0..0x300/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0..0x300/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0..0x300/ should throw
+PASS URL's constructor's base argument: http://0..0x300./ should throw
+PASS URL's href: http://0..0x300./ should throw
+PASS XHR: http://0..0x300./ should throw
+PASS sendBeacon(): http://0..0x300./ should throw
+FAIL Location's href: http://0..0x300./ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0..0x300./' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0..0x300./ should throw
+PASS URL's constructor's base argument: http://1.2.3.08 should throw
+PASS URL's href: http://1.2.3.08 should throw
+PASS XHR: http://1.2.3.08 should throw
+PASS sendBeacon(): http://1.2.3.08 should throw
+FAIL Location's href: http://1.2.3.08 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.08' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.08 should throw
+PASS URL's constructor's base argument: http://1.2.3.08. should throw
+PASS URL's href: http://1.2.3.08. should throw
+PASS XHR: http://1.2.3.08. should throw
+PASS sendBeacon(): http://1.2.3.08. should throw
+FAIL Location's href: http://1.2.3.08. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.08.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.08. should throw
+PASS URL's constructor's base argument: http://1.2.3.09 should throw
+PASS URL's href: http://1.2.3.09 should throw
+PASS XHR: http://1.2.3.09 should throw
+PASS sendBeacon(): http://1.2.3.09 should throw
+FAIL Location's href: http://1.2.3.09 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://1.2.3.09' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://1.2.3.09 should throw
+PASS URL's constructor's base argument: http://09.2.3.4 should throw
+PASS URL's href: http://09.2.3.4 should throw
+PASS XHR: http://09.2.3.4 should throw
+PASS sendBeacon(): http://09.2.3.4 should throw
+FAIL Location's href: http://09.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://09.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://09.2.3.4 should throw
+PASS URL's constructor's base argument: http://09.2.3.4. should throw
+PASS URL's href: http://09.2.3.4. should throw
+PASS XHR: http://09.2.3.4. should throw
+PASS sendBeacon(): http://09.2.3.4. should throw
+FAIL Location's href: http://09.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://09.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://09.2.3.4. should throw
+PASS URL's constructor's base argument: http://01.2.3.4.5 should throw
+PASS URL's href: http://01.2.3.4.5 should throw
+PASS XHR: http://01.2.3.4.5 should throw
+PASS sendBeacon(): http://01.2.3.4.5 should throw
+FAIL Location's href: http://01.2.3.4.5 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://01.2.3.4.5' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://01.2.3.4.5 should throw
+PASS URL's constructor's base argument: http://01.2.3.4.5. should throw
+PASS URL's href: http://01.2.3.4.5. should throw
+PASS XHR: http://01.2.3.4.5. should throw
+PASS sendBeacon(): http://01.2.3.4.5. should throw
+FAIL Location's href: http://01.2.3.4.5. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://01.2.3.4.5.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://01.2.3.4.5. should throw
+PASS URL's constructor's base argument: http://0x100.2.3.4 should throw
+PASS URL's href: http://0x100.2.3.4 should throw
+PASS XHR: http://0x100.2.3.4 should throw
+PASS sendBeacon(): http://0x100.2.3.4 should throw
+FAIL Location's href: http://0x100.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x100.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x100.2.3.4 should throw
+PASS URL's constructor's base argument: http://0x100.2.3.4. should throw
+PASS URL's href: http://0x100.2.3.4. should throw
+PASS XHR: http://0x100.2.3.4. should throw
+PASS sendBeacon(): http://0x100.2.3.4. should throw
+FAIL Location's href: http://0x100.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x100.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x100.2.3.4. should throw
+PASS URL's constructor's base argument: http://0x1.2.3.4.5 should throw
+PASS URL's href: http://0x1.2.3.4.5 should throw
+PASS XHR: http://0x1.2.3.4.5 should throw
+PASS sendBeacon(): http://0x1.2.3.4.5 should throw
+FAIL Location's href: http://0x1.2.3.4.5 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x1.2.3.4.5' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x1.2.3.4.5 should throw
+PASS URL's constructor's base argument: http://0x1.2.3.4.5. should throw
+PASS URL's href: http://0x1.2.3.4.5. should throw
+PASS XHR: http://0x1.2.3.4.5. should throw
+PASS sendBeacon(): http://0x1.2.3.4.5. should throw
+FAIL Location's href: http://0x1.2.3.4.5. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0x1.2.3.4.5.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0x1.2.3.4.5. should throw
+PASS URL's constructor's base argument: http://foo.1.2.3.4 should throw
+PASS URL's href: http://foo.1.2.3.4 should throw
+PASS XHR: http://foo.1.2.3.4 should throw
+PASS sendBeacon(): http://foo.1.2.3.4 should throw
+FAIL Location's href: http://foo.1.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.1.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.1.2.3.4 should throw
+PASS URL's constructor's base argument: http://foo.1.2.3.4. should throw
+PASS URL's href: http://foo.1.2.3.4. should throw
+PASS XHR: http://foo.1.2.3.4. should throw
+PASS sendBeacon(): http://foo.1.2.3.4. should throw
+FAIL Location's href: http://foo.1.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.1.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.1.2.3.4. should throw
+PASS URL's constructor's base argument: http://foo.2.3.4 should throw
+PASS URL's href: http://foo.2.3.4 should throw
+PASS XHR: http://foo.2.3.4 should throw
+PASS sendBeacon(): http://foo.2.3.4 should throw
+FAIL Location's href: http://foo.2.3.4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.2.3.4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.2.3.4 should throw
+PASS URL's constructor's base argument: http://foo.2.3.4. should throw
+PASS URL's href: http://foo.2.3.4. should throw
+PASS XHR: http://foo.2.3.4. should throw
+PASS sendBeacon(): http://foo.2.3.4. should throw
+FAIL Location's href: http://foo.2.3.4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.2.3.4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.2.3.4. should throw
+PASS URL's constructor's base argument: http://foo.09 should throw
+PASS URL's href: http://foo.09 should throw
+PASS XHR: http://foo.09 should throw
+PASS sendBeacon(): http://foo.09 should throw
+FAIL Location's href: http://foo.09 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.09' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.09 should throw
+PASS URL's constructor's base argument: http://foo.09. should throw
+PASS URL's href: http://foo.09. should throw
+PASS XHR: http://foo.09. should throw
+PASS sendBeacon(): http://foo.09. should throw
+FAIL Location's href: http://foo.09. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.09.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.09. should throw
+PASS URL's constructor's base argument: http://foo.0x4 should throw
+PASS URL's href: http://foo.0x4 should throw
+PASS XHR: http://foo.0x4 should throw
+PASS sendBeacon(): http://foo.0x4 should throw
+FAIL Location's href: http://foo.0x4 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x4' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x4 should throw
+PASS URL's constructor's base argument: http://foo.0x4. should throw
+PASS URL's href: http://foo.0x4. should throw
+PASS XHR: http://foo.0x4. should throw
+PASS sendBeacon(): http://foo.0x4. should throw
+FAIL Location's href: http://foo.0x4. should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x4.' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x4. should throw
+PASS URL's constructor's base argument: http://0999999999999999999/ should throw
+PASS URL's href: http://0999999999999999999/ should throw
+PASS XHR: http://0999999999999999999/ should throw
+PASS sendBeacon(): http://0999999999999999999/ should throw
+FAIL Location's href: http://0999999999999999999/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://0999999999999999999/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://0999999999999999999/ should throw
+PASS URL's constructor's base argument: http://foo.0x should throw
+PASS URL's href: http://foo.0x should throw
+PASS XHR: http://foo.0x should throw
+PASS sendBeacon(): http://foo.0x should throw
+FAIL Location's href: http://foo.0x should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0x' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0x should throw
+PASS URL's constructor's base argument: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS URL's href: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS XHR: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS sendBeacon(): http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+FAIL Location's href: http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo.0XFfFfFfFfFfFfFfFfFfAcE123' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://foo.0XFfFfFfFfFfFfFfFfFfAcE123 should throw
+PASS URL's constructor's base argument: http://💩.123/ should throw
+PASS URL's href: http://💩.123/ should throw
+PASS XHR: http://💩.123/ should throw
+PASS sendBeacon(): http://💩.123/ should throw
+FAIL Location's href: http://💩.123/ should throw assert_throws_js: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://💩.123/' is not a valid URL." ("SyntaxError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+PASS window.open(): http://💩.123/ should throw
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..ee858980
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,714 @@
+This is a testharness.js-based test.
+Found 605 tests; 458 PASS, 147 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+FAIL Parsing: <a:	 foo.com> against <http://example.org/foo/bar> assert_equals: href expected "a: foo.com" but got "file:///A:/%20foo.com"
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f: /c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+FAIL Parsing: <\\x\hello> against <http://example.org/foo/bar> assert_equals: href expected "http://x/hello" but got "file://x/hello"
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: href expected "c:/foo" but got "file:///C:/foo"
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:@/www.example.com> against <about:blank>
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+PASS Parsing: <http:@/www.example.com> against <about:blank>
+PASS Parsing: <http:/@/www.example.com> against <about:blank>
+PASS Parsing: <http://@/www.example.com> against <about:blank>
+PASS Parsing: <https:@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http::@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+PASS Parsing: <http:@:www.example.com> against <about:blank>
+PASS Parsing: <http:/@:www.example.com> against <about:blank>
+PASS Parsing: <http://@:www.example.com> against <about:blank>
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://[]> against <http://other.com/>
+PASS Parsing: <http://[:]> against <http://other.com/>
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
+PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
+PASS Parsing: <https://�> against <about:blank>
+PASS Parsing: <https://%EF%BF%BD> against <about:blank>
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://%00.com> against <http://other.com/>
+PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+PASS Parsing: <http://%zz%66%a.com> against <http://other.com/>
+PASS Parsing: <http://%25> against <http://other.com/>
+PASS Parsing: <http://hello%00> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+PASS Parsing: <http://192.168.0.257> against <http://other.com/>
+PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <https://x x:12> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: href expected "h://." but got "file:///H://"
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+PASS Parsing: <http://[google.com]> against <http://other.com/>
+PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/>
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+PASS Parsing: <#x> against <data:,>
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+PASS Parsing: <i> against <sc:sd>
+PASS Parsing: <i> against <sc:sd/sd>
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+PASS Parsing: <../i> against <sc:sd>
+PASS Parsing: <../i> against <sc:sd/sd>
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: </i> against <sc:sd>
+PASS Parsing: </i> against <sc:sd/sd>
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: <?i> against <sc:sd>
+PASS Parsing: <?i> against <sc:sd/sd>
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:12/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a^b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <http://a\0b/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+FAIL Parsing: <http://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a%b/> against <about:blank>
+FAIL Parsing: <http://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+PASS Parsing: <http://a^b> against <about:blank>
+FAIL Parsing: <http://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+PASS Parsing: <http://ho%3Ast/> against <about:blank>
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%5Bst/> against <about:blank>
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+PASS Parsing: <http://ho%5Dst/> against <about:blank>
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+PASS Parsing: <ftp://example.com%80/> against <about:blank>
+PASS Parsing: <ftp://example.com%A0/> against <about:blank>
+PASS Parsing: <https://example.com%80/> against <about:blank>
+PASS Parsing: <https://example.com%A0/> against <about:blank>
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+PASS Parsing: <http://10000000000> against <http://other.com/>
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+PASS Parsing: <http://4294967296> against <http://other.com/>
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+PASS Parsing: <http://0xffffffff1> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256> against <http://other.com/>
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+FAIL Parsing: <\\\.\Y:> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <\\\.\y:> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
+PASS Parsing: <https://[0::0::0]> against <about:blank>
+PASS Parsing: <https://[0:.0]> against <about:blank>
+PASS Parsing: <https://[0:0:]> against <about:blank>
+PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank>
+PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.23.23]> against <about:blank>
+PASS Parsing: <http://?> against <about:blank>
+PASS Parsing: <http://#> against <about:blank>
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+PASS Parsing: <http://[::127.0.0.0.1]> against <about:blank>
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+PASS Parsing: <a> against <about:blank>
+PASS Parsing: <a/> against <about:blank>
+PASS Parsing: <a//> against <about:blank>
+FAIL Parsing: <test-a-colon.html> against <a:> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <test-a-colon-b.html> against <a:b> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <test-a-colon-slash.html> against <a:/> assert_equals: href expected "a:/test-a-colon-slash.html" but got "file:///A:/test-a-colon-slash.html"
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> assert_equals: href expected "a:///test-a-colon-slash-slash.html" but got "file:///A://test-a-colon-slash-slash.html"
+FAIL Parsing: <test-a-colon-slash-b.html> against <a:/b> assert_equals: href expected "a:/test-a-colon-slash-b.html" but got "file:///A:/test-a-colon-slash-b.html"
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> assert_equals: href expected "a://b/test-a-colon-slash-slash-b.html" but got "file:///A://test-a-colon-slash-slash-b.html"
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+PASS Parsing: <#> against <null>
+PASS Parsing: <?> against <null>
+PASS Parsing: <http://1.2.3.4.5> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4.5.> against <http://other.com/>
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256.256.> against <http://other.com/>
+PASS Parsing: <http://1.2.3.08> against <about:blank>
+PASS Parsing: <http://1.2.3.08.> against <about:blank>
+PASS Parsing: <http://1.2.3.09> against <about:blank>
+PASS Parsing: <http://09.2.3.4> against <about:blank>
+PASS Parsing: <http://09.2.3.4.> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4.> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.09> against <about:blank>
+PASS Parsing: <http://foo.09.> against <about:blank>
+PASS Parsing: <http://foo.0x4> against <about:blank>
+PASS Parsing: <http://foo.0x4.> against <about:blank>
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+PASS Parsing: <http://foo.0x> against <about:blank>
+PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
+PASS Parsing: <http://💩.123/> against <about:blank>
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..ee858980
--- /dev/null
+++ "b/third_party/blink/web_tests/platform/win/virtual/idna-2008/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,714 @@
+This is a testharness.js-based test.
+Found 605 tests; 458 PASS, 147 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Loading data…
+PASS Parsing: <http://example	.
+org> against <http://example.org/foo/bar>
+PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+PASS Parsing: <https://test:@test> against <about:blank>
+PASS Parsing: <https://:@test> against <about:blank>
+FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
+FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
+PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
+PASS Parsing: <	   :foo.com   
+> against <http://example.org/foo/bar>
+PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
+FAIL Parsing: <a:	 foo.com> against <http://example.org/foo/bar> assert_equals: href expected "a: foo.com" but got "file:///A:/%20foo.com"
+PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <lolscheme:x x#x x> against <about:blank>
+PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f: /c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:
+/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
+PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
+FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>
+PASS Parsing: <> against <http://example.org/foo/bar>
+PASS Parsing: <  	> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
+PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <:> against <http://example.org/foo/bar>
+PASS Parsing: <:a> against <http://example.org/foo/bar>
+PASS Parsing: <:/> against <http://example.org/foo/bar>
+PASS Parsing: <:\> against <http://example.org/foo/bar>
+PASS Parsing: <:#> against <http://example.org/foo/bar>
+PASS Parsing: <#> against <http://example.org/foo/bar>
+PASS Parsing: <#/> against <http://example.org/foo/bar>
+PASS Parsing: <#\> against <http://example.org/foo/bar>
+PASS Parsing: <#;?> against <http://example.org/foo/bar>
+PASS Parsing: <?> against <http://example.org/foo/bar>
+PASS Parsing: </> against <http://example.org/foo/bar>
+PASS Parsing: <:23> against <http://example.org/foo/bar>
+PASS Parsing: </:23> against <http://example.org/foo/bar>
+PASS Parsing: <\x> against <http://example.org/foo/bar>
+FAIL Parsing: <\\x\hello> against <http://example.org/foo/bar> assert_equals: href expected "http://x/hello" but got "file://x/hello"
+PASS Parsing: <::> against <http://example.org/foo/bar>
+PASS Parsing: <::23> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
+PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
+PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/> against <http://example.org/foo/bar>
+PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
+FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
+FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
+FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
+FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: href expected "c:/foo" but got "file:///C:/foo"
+PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
+PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
+PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
+PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
+PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
+PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
+PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
+PASS Parsing: <#β> against <http://example.org/foo/bar>
+PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
+PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
+FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
+PASS Parsing: <http://example.com/././foo> against <about:blank>
+PASS Parsing: <http://example.com/./.foo> against <about:blank>
+PASS Parsing: <http://example.com/foo/.> against <about:blank>
+PASS Parsing: <http://example.com/foo/./> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
+PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
+PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
+FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
+FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
+PASS Parsing: <http://example.com////../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
+PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
+PASS Parsing: <http://example.com/foo> against <about:blank>
+PASS Parsing: <http://example.com/%20foo> against <about:blank>
+PASS Parsing: <http://example.com/foo%> against <about:blank>
+PASS Parsing: <http://example.com/foo%2> against <about:blank>
+PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
+PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
+FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
+PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
+FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL
+PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
+PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+PASS Parsing: <http://example.com/foo	bar> against <about:blank>
+PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
+PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
+PASS Parsing: <http://example.com/你好你好> against <about:blank>
+PASS Parsing: <http://example.com/‥/foo> against <about:blank>
+PASS Parsing: <http://example.com//foo> against <about:blank>
+PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
+PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+PASS Parsing: <data:test# »> against <about:blank>
+PASS Parsing: <http://www.google.com> against <about:blank>
+PASS Parsing: <http://192.0x00A80001> against <about:blank>
+FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
+PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
+PASS Parsing: <http://user:pass@/> against <about:blank>
+PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
+PASS Parsing: <http://foo:80/> against <about:blank>
+PASS Parsing: <http://foo:81/> against <about:blank>
+FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
+PASS Parsing: <http://foo:-80/> against <about:blank>
+PASS Parsing: <https://foo:443/> against <about:blank>
+PASS Parsing: <https://foo:80/> against <about:blank>
+PASS Parsing: <ftp://foo:21/> against <about:blank>
+PASS Parsing: <ftp://foo:80/> against <about:blank>
+FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
+FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
+PASS Parsing: <ws://foo:80/> against <about:blank>
+PASS Parsing: <ws://foo:81/> against <about:blank>
+PASS Parsing: <ws://foo:443/> against <about:blank>
+PASS Parsing: <ws://foo:815/> against <about:blank>
+PASS Parsing: <wss://foo:80/> against <about:blank>
+PASS Parsing: <wss://foo:81/> against <about:blank>
+PASS Parsing: <wss://foo:443/> against <about:blank>
+PASS Parsing: <wss://foo:815/> against <about:blank>
+PASS Parsing: <http:/example.com/> against <about:blank>
+PASS Parsing: <ftp:/example.com/> against <about:blank>
+PASS Parsing: <https:/example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
+PASS Parsing: <ftps:/example.com/> against <about:blank>
+PASS Parsing: <gopher:/example.com/> against <about:blank>
+PASS Parsing: <ws:/example.com/> against <about:blank>
+PASS Parsing: <wss:/example.com/> against <about:blank>
+PASS Parsing: <data:/example.com/> against <about:blank>
+PASS Parsing: <http:example.com/> against <about:blank>
+PASS Parsing: <ftp:example.com/> against <about:blank>
+PASS Parsing: <https:example.com/> against <about:blank>
+PASS Parsing: <madeupscheme:example.com/> against <about:blank>
+PASS Parsing: <ftps:example.com/> against <about:blank>
+PASS Parsing: <gopher:example.com/> against <about:blank>
+PASS Parsing: <ws:example.com/> against <about:blank>
+PASS Parsing: <wss:example.com/> against <about:blank>
+PASS Parsing: <data:example.com/> against <about:blank>
+PASS Parsing: <http:@www.example.com> against <about:blank>
+PASS Parsing: <http:/@www.example.com> against <about:blank>
+PASS Parsing: <http://@www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@www.example.com> against <about:blank>
+PASS Parsing: <http://@pple.com> against <about:blank>
+PASS Parsing: <http::b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:b@www.example.com> against <about:blank>
+PASS Parsing: <http://:b@www.example.com> against <about:blank>
+PASS Parsing: <http:/:@/www.example.com> against <about:blank>
+PASS Parsing: <http://user@/www.example.com> against <about:blank>
+PASS Parsing: <http:@/www.example.com> against <about:blank>
+PASS Parsing: <http:/@/www.example.com> against <about:blank>
+PASS Parsing: <http://@/www.example.com> against <about:blank>
+PASS Parsing: <https:@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http:/a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
+PASS Parsing: <http::@/www.example.com> against <about:blank>
+PASS Parsing: <http:a:@www.example.com> against <about:blank>
+PASS Parsing: <http:/a:@www.example.com> against <about:blank>
+PASS Parsing: <http://a:@www.example.com> against <about:blank>
+PASS Parsing: <http://www.@pple.com> against <about:blank>
+PASS Parsing: <http:@:www.example.com> against <about:blank>
+PASS Parsing: <http:/@:www.example.com> against <about:blank>
+PASS Parsing: <http://@:www.example.com> against <about:blank>
+PASS Parsing: <http://:@www.example.com> against <about:blank>
+PASS Parsing: </> against <http://www.example.com/test>
+PASS Parsing: </test.txt> against <http://www.example.com/test>
+PASS Parsing: <.> against <http://www.example.com/test>
+PASS Parsing: <..> against <http://www.example.com/test>
+PASS Parsing: <test.txt> against <http://www.example.com/test>
+PASS Parsing: <./test.txt> against <http://www.example.com/test>
+PASS Parsing: <../test.txt> against <http://www.example.com/test>
+PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
+PASS Parsing: <../../test.txt> against <http://www.example.com/test>
+PASS Parsing: <中/test.txt> against <http://www.example.com/test>
+PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
+PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
+FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://[]> against <http://other.com/>
+PASS Parsing: <http://[:]> against <http://other.com/>
+FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
+PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
+PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
+PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
+PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
+PASS Parsing: <https://�> against <about:blank>
+PASS Parsing: <https://%EF%BF%BD> against <about:blank>
+PASS Parsing: <https://x/�?�#�> against <about:blank>
+FAIL Parsing: <http://a.b.c.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://Go.com> against <http://other.com/>
+FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://%00.com> against <http://other.com/>
+PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>
+PASS Parsing: <http://你好你好> against <http://other.com/>
+PASS Parsing: <https://faß.ExAmPlE/> against <about:blank>
+FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
+PASS Parsing: <http://%zz%66%a.com> against <http://other.com/>
+PASS Parsing: <http://%25> against <http://other.com/>
+PASS Parsing: <http://hello%00> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+PASS Parsing: <http://192.168.0.257> against <http://other.com/>
+PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>
+FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <https://x x:12> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
+PASS Parsing: <http://./> against <about:blank>
+PASS Parsing: <http://../> against <about:blank>
+FAIL Parsing: <h://.> against <about:blank> assert_equals: href expected "h://." but got "file:///H://"
+PASS Parsing: <http://[www.google.com]/> against <about:blank>
+PASS Parsing: <http://[google.com]> against <http://other.com/>
+PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/>
+FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
+PASS Parsing: <#> against <test:test>
+PASS Parsing: <#x> against <data:,>
+PASS Parsing: <#x> against <about:blank>
+PASS Parsing: <#> against <test:test?test>
+PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
+PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
+PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+PASS Parsing: <http://host/?'> against <about:blank>
+FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: href expected "notspecial://host/?'" but got "notspecial://host/?%27"
+PASS Parsing: </some/path> against <http://user@example.org/smth>
+PASS Parsing: <> against <http://user:pass@example.org:21/smth>
+PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
+PASS Parsing: <i> against <sc:sd>
+PASS Parsing: <i> against <sc:sd/sd>
+PASS Parsing: <i> against <sc:/pa/pa>
+FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
+PASS Parsing: <../i> against <sc:sd>
+PASS Parsing: <../i> against <sc:sd/sd>
+PASS Parsing: <../i> against <sc:/pa/pa>
+FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: </i> against <sc:sd>
+PASS Parsing: </i> against <sc:sd/sd>
+PASS Parsing: </i> against <sc:/pa/pa>
+FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
+PASS Parsing: <?i> against <sc:sd>
+PASS Parsing: <?i> against <sc:sd/sd>
+PASS Parsing: <?i> against <sc:/pa/pa>
+FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+PASS Parsing: <#i> against <sc:sd>
+PASS Parsing: <#i> against <sc:sd/sd>
+PASS Parsing: <#i> against <sc:/pa/pa>
+FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
+FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
+FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
+FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
+FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
+FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
+FAIL Parsing: <sc://@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://:12/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+PASS Parsing: <sc:\../> against <about:blank>
+PASS Parsing: <sc::a@example.net> against <about:blank>
+PASS Parsing: <wow:%NBD> against <about:blank>
+PASS Parsing: <wow:%1G> against <about:blank>
+FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
+FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://a\0b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a[b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a\b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a]b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a^b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <sc://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <foo://ho	st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho
+st/> against <about:blank> assert_equals: host expected "host" but got ""
+FAIL Parsing: <foo://ho\rst/> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <http://a\0b/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ab/> against <about:blank>
+FAIL Parsing: <http://a b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a%b/> against <about:blank>
+FAIL Parsing: <http://a<b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://a>b> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://a[b/> against <about:blank>
+PASS Parsing: <http://a]b/> against <about:blank>
+PASS Parsing: <http://a^b> against <about:blank>
+FAIL Parsing: <http://a|b/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ab/> against <about:blank>
+PASS Parsing: <http://ho	st/> against <about:blank>
+PASS Parsing: <http://ho
+st/> against <about:blank>
+PASS Parsing: <http://ho\rst/> against <about:blank>
+PASS Parsing: <http://ho%00st/> against <about:blank>
+PASS Parsing: <http://ho%01st/> against <about:blank>
+PASS Parsing: <http://ho%02st/> against <about:blank>
+PASS Parsing: <http://ho%03st/> against <about:blank>
+PASS Parsing: <http://ho%04st/> against <about:blank>
+PASS Parsing: <http://ho%05st/> against <about:blank>
+PASS Parsing: <http://ho%06st/> against <about:blank>
+PASS Parsing: <http://ho%07st/> against <about:blank>
+PASS Parsing: <http://ho%08st/> against <about:blank>
+PASS Parsing: <http://ho%09st/> against <about:blank>
+PASS Parsing: <http://ho%0Ast/> against <about:blank>
+PASS Parsing: <http://ho%0Bst/> against <about:blank>
+PASS Parsing: <http://ho%0Cst/> against <about:blank>
+PASS Parsing: <http://ho%0Dst/> against <about:blank>
+PASS Parsing: <http://ho%0Est/> against <about:blank>
+PASS Parsing: <http://ho%0Fst/> against <about:blank>
+PASS Parsing: <http://ho%10st/> against <about:blank>
+PASS Parsing: <http://ho%11st/> against <about:blank>
+PASS Parsing: <http://ho%12st/> against <about:blank>
+PASS Parsing: <http://ho%13st/> against <about:blank>
+PASS Parsing: <http://ho%14st/> against <about:blank>
+PASS Parsing: <http://ho%15st/> against <about:blank>
+PASS Parsing: <http://ho%16st/> against <about:blank>
+PASS Parsing: <http://ho%17st/> against <about:blank>
+PASS Parsing: <http://ho%18st/> against <about:blank>
+PASS Parsing: <http://ho%19st/> against <about:blank>
+PASS Parsing: <http://ho%1Ast/> against <about:blank>
+PASS Parsing: <http://ho%1Bst/> against <about:blank>
+PASS Parsing: <http://ho%1Cst/> against <about:blank>
+PASS Parsing: <http://ho%1Dst/> against <about:blank>
+PASS Parsing: <http://ho%1Est/> against <about:blank>
+PASS Parsing: <http://ho%1Fst/> against <about:blank>
+FAIL Parsing: <http://ho%20st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%23st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%25st/> against <about:blank>
+PASS Parsing: <http://ho%2Fst/> against <about:blank>
+PASS Parsing: <http://ho%3Ast/> against <about:blank>
+FAIL Parsing: <http://ho%3Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <http://ho%3Est/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%3Fst/> against <about:blank>
+FAIL Parsing: <http://ho%40st/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%5Bst/> against <about:blank>
+PASS Parsing: <http://ho%5Cst/> against <about:blank>
+PASS Parsing: <http://ho%5Dst/> against <about:blank>
+FAIL Parsing: <http://ho%7Cst/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://ho%7Fst/> against <about:blank>
+FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+PASS Parsing: <ftp://example.com%80/> against <about:blank>
+PASS Parsing: <ftp://example.com%A0/> against <about:blank>
+PASS Parsing: <https://example.com%80/> against <about:blank>
+PASS Parsing: <https://example.com%A0/> against <about:blank>
+PASS Parsing: <ftp://%e2%98%83> against <about:blank>
+PASS Parsing: <https://%e2%98%83> against <about:blank>
+PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+PASS Parsing: <h	t
+t\rp://h	o
+s\rt:9	0
+0\r0/p	a
+t\rh?q	u
+e\rry#f	r
+a\rg> against <about:blank>
+PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <http://example.org/foo/bar>
+PASS Parsing: <http:> against <https://example.org/foo/bar>
+PASS Parsing: <sc:> against <https://example.org/foo/bar>
+PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+PASS Parsing: <http://1.2.3.4/> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4./> against <http://other.com/>
+PASS Parsing: <http://192.168.257> against <http://other.com/>
+PASS Parsing: <http://192.168.257.> against <http://other.com/>
+PASS Parsing: <http://192.168.257.com> against <http://other.com/>
+PASS Parsing: <http://256> against <http://other.com/>
+PASS Parsing: <http://256.com> against <http://other.com/>
+PASS Parsing: <http://999999999> against <http://other.com/>
+PASS Parsing: <http://999999999.> against <http://other.com/>
+PASS Parsing: <http://999999999.com> against <http://other.com/>
+PASS Parsing: <http://10000000000> against <http://other.com/>
+PASS Parsing: <http://10000000000.com> against <http://other.com/>
+PASS Parsing: <http://4294967295> against <http://other.com/>
+PASS Parsing: <http://4294967296> against <http://other.com/>
+PASS Parsing: <http://0xffffffff> against <http://other.com/>
+PASS Parsing: <http://0xffffffff1> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256> against <http://other.com/>
+PASS Parsing: <https://0x.0x.0> against <about:blank>
+PASS Parsing: <https://0x100000000/test> against <about:blank>
+PASS Parsing: <https://256.0.0.1/test> against <about:blank>
+FAIL Parsing: <https://%43%7C/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43|/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
+FAIL Parsing: <\\\.\Y:> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <\\\.\y:> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <http://[1:0::]> against <http://example.net/>
+PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
+PASS Parsing: <https://[0::0::0]> against <about:blank>
+PASS Parsing: <https://[0:.0]> against <about:blank>
+PASS Parsing: <https://[0:0:]> against <about:blank>
+PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank>
+PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank>
+PASS Parsing: <https://[0:1.23.23]> against <about:blank>
+PASS Parsing: <http://?> against <about:blank>
+PASS Parsing: <http://#> against <about:blank>
+PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
+PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
+PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
+FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
+FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
+FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
+FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
+FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
+FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
+FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
+FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
+FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
+FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
+FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
+FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
+PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
+PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
+FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
+FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
+FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
+FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
+FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
+FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
+FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
+FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
+FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
+FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
+FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
+FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
+FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
+FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+PASS Parsing: <blob:https://example.com:443/> against <about:blank>
+PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+PASS Parsing: <blob:> against <about:blank>
+PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
+PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
+PASS Parsing: <http://[::127.0.0.0.1]> against <about:blank>
+PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
+PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
+PASS Parsing: <http://example.org/test?"> against <about:blank>
+PASS Parsing: <http://example.org/test?#> against <about:blank>
+PASS Parsing: <http://example.org/test?<> against <about:blank>
+PASS Parsing: <http://example.org/test?>> against <about:blank>
+PASS Parsing: <http://example.org/test?⌣> against <about:blank>
+PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
+PASS Parsing: <http://example.org/test?%GH> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
+PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
+PASS Parsing: <a> against <about:blank>
+PASS Parsing: <a/> against <about:blank>
+PASS Parsing: <a//> against <about:blank>
+FAIL Parsing: <test-a-colon.html> against <a:> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <test-a-colon-b.html> against <a:b> assert_throws_js: function "function() {
+          bURL(expected.input, expected.base)
+        }" did not throw
+FAIL Parsing: <test-a-colon-slash.html> against <a:/> assert_equals: href expected "a:/test-a-colon-slash.html" but got "file:///A:/test-a-colon-slash.html"
+FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> assert_equals: href expected "a:///test-a-colon-slash-slash.html" but got "file:///A://test-a-colon-slash-slash.html"
+FAIL Parsing: <test-a-colon-slash-b.html> against <a:/b> assert_equals: href expected "a:/test-a-colon-slash-b.html" but got "file:///A:/test-a-colon-slash-b.html"
+FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> assert_equals: href expected "a://b/test-a-colon-slash-slash-b.html" but got "file:///A://test-a-colon-slash-slash-b.html"
+PASS Parsing: <http://example.org/test?a#b\0c> against <about:blank>
+FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
+PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
+PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
+PASS Parsing: <#link> against <https://example.org/##link>
+PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
+FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
+FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
+FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
+FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
+PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: host expected "host" but got ""
+PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+FAIL Parsing: <abc:rootless> against <abc://host/path> assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
+FAIL Parsing: <abc:rootless> against <abc:/path> assert_equals: href expected "abc:rootless" but got "abc:/rootless"
+PASS Parsing: <abc:rootless> against <abc:path>
+FAIL Parsing: <abc:/rooted> against <abc://host/path> assert_equals: href expected "abc:/rooted" but got "abc://host/rooted"
+PASS Parsing: <#> against <null>
+PASS Parsing: <?> against <null>
+PASS Parsing: <http://1.2.3.4.5> against <http://other.com/>
+PASS Parsing: <http://1.2.3.4.5.> against <http://other.com/>
+PASS Parsing: <http://0..0x300/> against <about:blank>
+PASS Parsing: <http://0..0x300./> against <about:blank>
+PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
+PASS Parsing: <http://256.256.256.256.256.> against <http://other.com/>
+PASS Parsing: <http://1.2.3.08> against <about:blank>
+PASS Parsing: <http://1.2.3.08.> against <about:blank>
+PASS Parsing: <http://1.2.3.09> against <about:blank>
+PASS Parsing: <http://09.2.3.4> against <about:blank>
+PASS Parsing: <http://09.2.3.4.> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5> against <about:blank>
+PASS Parsing: <http://01.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4> against <about:blank>
+PASS Parsing: <http://0x100.2.3.4.> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5> against <about:blank>
+PASS Parsing: <http://0x1.2.3.4.5.> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.1.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.2.3.4> against <about:blank>
+PASS Parsing: <http://foo.2.3.4.> against <about:blank>
+PASS Parsing: <http://foo.09> against <about:blank>
+PASS Parsing: <http://foo.09.> against <about:blank>
+PASS Parsing: <http://foo.0x4> against <about:blank>
+PASS Parsing: <http://foo.0x4.> against <about:blank>
+PASS Parsing: <http://foo.09..> against <about:blank>
+PASS Parsing: <http://0999999999999999999/> against <about:blank>
+PASS Parsing: <http://foo.0x> against <about:blank>
+PASS Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>
+PASS Parsing: <http://💩.123/> against <about:blank>
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/wpt_internal/cache_storage/padding.https.html.ini b/third_party/blink/web_tests/wpt_internal/cache_storage/padding.https.html.ini
new file mode 100644
index 0000000..a067ca4
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/cache_storage/padding.https.html.ini
@@ -0,0 +1,4 @@
+[padding.https.html]
+  [Code cache padding should be stable.]
+    expected:
+      if product == "chrome": [FAIL, PASS]
diff --git a/third_party/blink/web_tests/wpt_internal/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.ini b/third_party/blink/web_tests/wpt_internal/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.ini
index 3c96a465..7feb5bab9 100644
--- a/third_party/blink/web_tests/wpt_internal/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.ini
@@ -1,3 +1,3 @@
 [reporting-api-report-to-overrides-report-uri-1.https.sub.html]
   expected:
-    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): [OK, TIMEOUT]
+    if (flag_specific == "") and (os == "linux") and (product == "content_shell"): TIMEOUT
diff --git a/third_party/blink/web_tests/wpt_internal/css/css-overflow/scrollbar-gutter-006.html.ini b/third_party/blink/web_tests/wpt_internal/css/css-overflow/scrollbar-gutter-006.html.ini
new file mode 100644
index 0000000..39de71f7
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/css/css-overflow/scrollbar-gutter-006.html.ini
@@ -0,0 +1,3 @@
+[scrollbar-gutter-006.html]
+  expected:
+    if flag_specific == "disable-site-isolation-trials": [OK, CRASH]
diff --git a/third_party/blink/web_tests/wpt_internal/encoding/utf-round-trip.window.js.ini b/third_party/blink/web_tests/wpt_internal/encoding/utf-round-trip.window.js.ini
index 87320c0c..cf532bf3 100644
--- a/third_party/blink/web_tests/wpt_internal/encoding/utf-round-trip.window.js.ini
+++ b/third_party/blink/web_tests/wpt_internal/encoding/utf-round-trip.window.js.ini
@@ -1,3 +1,3 @@
 [utf-round-trip.window.html]
   expected:
-    if (flag_specific == "") and (product == "content_shell"): [OK, CRASH]
+    if (os == "linux") and (flag_specific == "") and (product == "content_shell"): CRASH
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/visual-viewport.https.html.ini b/third_party/blink/web_tests/wpt_internal/fenced_frame/visual-viewport.https.html.ini
index abd881b..bf52466 100644
--- a/third_party/blink/web_tests/wpt_internal/fenced_frame/visual-viewport.https.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/visual-viewport.https.html.ini
@@ -1,4 +1,2 @@
 [visual-viewport.https.html]
-  expected: TIMEOUT
-  [visualViewport values inside fenced frame]
-    expected: TIMEOUT
+  expected: [ERROR, CRASH]
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter.html.ini b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter.html.ini
index c35b594..08c4c451 100644
--- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter.html.ini
@@ -1,6 +1,4 @@
 [file-input-webkitdirectory-key-enter.html]
-  expected:
-    if flag_specific == "disable-site-isolation-trials": TIMEOUT
   [pressing Enter with focus on a webkitdirectory file input element launches a file chooser]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-space.html.ini b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-space.html.ini
index 41ad029..6e4add39 100644
--- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-space.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-space.html.ini
@@ -1,6 +1,6 @@
 [file-input-webkitdirectory-key-space.html]
   expected:
-    if flag_specific == "disable-layout-ng": TIMEOUT
+    if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
   [pressing Space on a focused webkitdirectory file input element launches a file chooser]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/wpt_internal/html/interaction/focus/the-autofocus-attribute/object-fallback.html.ini b/third_party/blink/web_tests/wpt_internal/html/interaction/focus/the-autofocus-attribute/object-fallback.html.ini
index 4e85ae1..c9cf564 100644
--- a/third_party/blink/web_tests/wpt_internal/html/interaction/focus/the-autofocus-attribute/object-fallback.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/html/interaction/focus/the-autofocus-attribute/object-fallback.html.ini
@@ -1,6 +1,4 @@
 [object-fallback.html]
-  expected:
-    if os == "win": [OK, TIMEOUT]
   [An autofocus element in an OBJECT with a loaded frame should not be processed]
     expected:
       if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/force-in-order/async-script.html.ini b/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/force-in-order/async-script.html.ini
index 2f03553..d1ea5cac 100644
--- a/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/force-in-order/async-script.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/force-in-order/async-script.html.ini
@@ -1,5 +1,5 @@
 [async-script.html?reload]
   expected:
-    if product == "chrome": [OK, ERROR]
+    if product == "chrome": ERROR
 
 [async-script.html]
diff --git a/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/selective-in-order/async-script.sub.html.ini b/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/selective-in-order/async-script.sub.html.ini
index c439e28b..dd9e83ee 100644
--- a/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/selective-in-order/async-script.sub.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/in-order-script-scheduling/selective-in-order/async-script.sub.html.ini
@@ -2,4 +2,4 @@
 
 [async-script.sub.html?reload]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [OK, ERROR]
diff --git a/third_party/blink/web_tests/wpt_internal/storage/quota/partitioned-webkitStorageInfo-persistent-quota-usage-details.tentative.sub.html.ini b/third_party/blink/web_tests/wpt_internal/storage/quota/partitioned-webkitStorageInfo-persistent-quota-usage-details.tentative.sub.html.ini
index 1a4f0d6..c1311bd2 100644
--- a/third_party/blink/web_tests/wpt_internal/storage/quota/partitioned-webkitStorageInfo-persistent-quota-usage-details.tentative.sub.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/storage/quota/partitioned-webkitStorageInfo-persistent-quota-usage-details.tentative.sub.html.ini
@@ -1,3 +1,3 @@
 [partitioned-webkitStorageInfo-persistent-quota-usage-details.tentative.sub.html]
   expected:
-    if flag_specific == "disable-layout-ng": [OK, TIMEOUT]
+    if flag_specific == "disable-site-isolation-trials": [OK, TIMEOUT]
diff --git a/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-element-transition.html.ini b/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-element-transition.html.ini
index d0ce9d2..b61af8a 100644
--- a/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-element-transition.html.ini
+++ b/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-element-transition.html.ini
@@ -1,4 +1,4 @@
 [root-element-transition.html]
   expected:
-    if product == "chrome": ERROR
+    if product == "chrome": [FAIL, ERROR]
     FAIL
diff --git a/third_party/nearby/README.chromium b/third_party/nearby/README.chromium
index f2f0880..e4adc03 100644
--- a/third_party/nearby/README.chromium
+++ b/third_party/nearby/README.chromium
@@ -1,7 +1,7 @@
 Name: Nearby Connections Library
 Short Name: Nearby
 URL: https://github.com/google/nearby
-Version: 1f2095a9be808cf41af83424c10de0afe4b85446
+Version: 7e82794d4da4612b1e0409faaf3a96876f11a8de
 License: Apache 2.0
 License File: LICENSE
 Security Critical: yes
diff --git a/tools/binary_size/libsupersize/README.md b/tools/binary_size/libsupersize/README.md
index 0ba221a..9feaea0 100644
--- a/tools/binary_size/libsupersize/README.md
+++ b/tools/binary_size/libsupersize/README.md
@@ -102,7 +102,7 @@
 Example Usage:
 
 ```bash
-tools/binary_size/supersize size_diff before.size after.size out.sizediff
+tools/binary_size/supersize save_diff before.size after.size out.sizediff
 ```
 
 ### supersize diff
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index c2862b0..6985d5e 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -32307,6 +32307,7 @@
   <int value="1052" label="AppStoreRatingEnabled"/>
   <int value="1053" label="KerberosUseCustomPrefilledConfig"/>
   <int value="1054" label="DeviceHindiInscriptLayoutEnabled"/>
+  <int value="1055" label="DeviceLoginScreenExtensionManifestV2Availability"/>
 </enum>
 
 <enum name="EnterprisePoliciesSources">
@@ -82965,6 +82966,8 @@
   <int value="51" label="kActivatedInBackground"/>
   <int value="52" label="kEmbedderHostDisallowed"/>
   <int value="53" label="kActivationNavigationDestroyedBeforeSuccess"/>
+  <int value="54" label="kTabClosedByUserGesture"/>
+  <int value="55" label="kTabClosedWithoutUserGesture"/>
 </enum>
 
 <enum name="PrerenderHoverEvent">
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml
index 3dd8432..83981cf 100644
--- a/tools/metrics/histograms/metadata/android/histograms.xml
+++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -4256,6 +4256,10 @@
 
 <histogram name="Android.WebView.Nonembedded.FirstServiceInProcess"
     enum="WebViewNonembeddedService" expires_after="2022-12-11">
+  <obsolete>
+    We collected the data we need about this, these histograms are no longer
+    needed, see https://crbug.com/1266439#c8. Removed in December 2022.
+  </obsolete>
   <owner>hazems@chromium.org</owner>
   <owner>src/android_webview/OWNERS</owner>
   <summary>
@@ -4269,6 +4273,10 @@
 
 <histogram name="Android.WebView.Nonembedded.IsFreshServiceProcessLaunched"
     enum="Boolean" expires_after="2022-12-11">
+  <obsolete>
+    We collected the data we need about this, these histograms are no longer
+    needed, see https://crbug.com/1266439#c8. Removed in December 2022.
+  </obsolete>
   <owner>hazems@chromium.org</owner>
   <owner>src/android_webview/OWNERS</owner>
   <summary>
diff --git a/ui/base/ime/ash/component_extension_ime_manager.cc b/ui/base/ime/ash/component_extension_ime_manager.cc
index 873034ab..6a2d7d6 100644
--- a/ui/base/ime/ash/component_extension_ime_manager.cc
+++ b/ui/base/ime/ash/component_extension_ime_manager.cc
@@ -13,6 +13,7 @@
 #include "ui/base/ime/ash/extension_ime_util.h"
 
 namespace ash {
+
 namespace {
 
 // Gets the input method category according to the given input method id.
diff --git a/ui/base/ime/ash/component_extension_ime_manager.h b/ui/base/ime/ash/component_extension_ime_manager.h
index 855ff73..fa9a0ae 100644
--- a/ui/base/ime/ash/component_extension_ime_manager.h
+++ b/ui/base/ime/ash/component_extension_ime_manager.h
@@ -104,11 +104,4 @@
 
 }  // namespace ash
 
-// TODO(https://crbug.com/1164001): remove when the migration is finished.
-namespace chromeos {
-using ::ash::ComponentExtensionEngine;
-using ::ash::ComponentExtensionIME;
-using ::ash::ComponentExtensionIMEManager;
-}  // namespace chromeos
-
 #endif  // UI_BASE_IME_ASH_COMPONENT_EXTENSION_IME_MANAGER_H_
diff --git a/ui/base/ime/ash/component_extension_ime_manager_delegate.h b/ui/base/ime/ash/component_extension_ime_manager_delegate.h
index 165a7741..c05ab33 100644
--- a/ui/base/ime/ash/component_extension_ime_manager_delegate.h
+++ b/ui/base/ime/ash/component_extension_ime_manager_delegate.h
@@ -11,6 +11,7 @@
 class Profile;
 
 namespace ash {
+
 struct ComponentExtensionIME;
 
 // Provides an interface to list/load/unload for component extension IME.
@@ -33,9 +34,4 @@
 
 }  // namespace ash
 
-// TODO(https://crbug.com/1164001): remove when the migration is finished.
-namespace chromeos {
-using ::ash::ComponentExtensionIMEManagerDelegate;
-}
-
 #endif  // UI_BASE_IME_ASH_COMPONENT_EXTENSION_IME_MANAGER_DELEGATE_H_
diff --git a/ui/base/ime/ash/extension_ime_util.cc b/ui/base/ime/ash/extension_ime_util.cc
index df9a339..6c648b28 100644
--- a/ui/base/ime/ash/extension_ime_util.cc
+++ b/ui/base/ime/ash/extension_ime_util.cc
@@ -9,6 +9,7 @@
 #include "build/branding_buildflags.h"
 
 namespace ash {
+
 namespace {
 
 const char kExtensionIMEPrefix[] = "_ext_ime_";
diff --git a/ui/base/ime/ash/extension_ime_util.h b/ui/base/ime/ash/extension_ime_util.h
index 28330f2..3ed4d622 100644
--- a/ui/base/ime/ash/extension_ime_util.h
+++ b/ui/base/ime/ash/extension_ime_util.h
@@ -107,13 +107,4 @@
 }  // namespace extension_ime_util
 }  // namespace ash
 
-// TODO(https://crbug.com/1164001): remove when the migration is finished.
-namespace chromeos {
-namespace extension_ime_util {
-using ::ash::extension_ime_util::GetInputMethodIDByEngineID;
-using ::ash::extension_ime_util::kMozcExtensionId;
-using ::ash::extension_ime_util::kXkbExtensionId;
-}  // namespace extension_ime_util
-}  // namespace chromeos
-
 #endif  // UI_BASE_IME_ASH_EXTENSION_IME_UTIL_H_
diff --git a/ui/base/ime/ash/fake_ime_keyboard.h b/ui/base/ime/ash/fake_ime_keyboard.h
index ee489e15..2ecfe89 100644
--- a/ui/base/ime/ash/fake_ime_keyboard.h
+++ b/ui/base/ime/ash/fake_ime_keyboard.h
@@ -42,11 +42,4 @@
 }  // namespace input_method
 }  // namespace ash
 
-// TODO(https://crbug.com/1164001): remove when the migration is finished.
-namespace chromeos {
-namespace input_method {
-using ::ash::input_method::FakeImeKeyboard;
-}
-}  // namespace chromeos
-
 #endif  // UI_BASE_IME_ASH_FAKE_IME_KEYBOARD_H_
diff --git a/ui/base/ime/ash/ime_assistive_window_handler_interface.h b/ui/base/ime/ash/ime_assistive_window_handler_interface.h
index cd8e0608..601c621 100644
--- a/ui/base/ime/ash/ime_assistive_window_handler_interface.h
+++ b/ui/base/ime/ash/ime_assistive_window_handler_interface.h
@@ -20,6 +20,7 @@
 }  // namespace ui
 
 namespace ash {
+
 namespace input_method {
 struct AssistiveWindowProperties;
 }
diff --git a/ui/base/ime/ash/ime_bridge.cc b/ui/base/ime/ash/ime_bridge.cc
index 7c99dc0..8df42fce 100644
--- a/ui/base/ime/ash/ime_bridge.cc
+++ b/ui/base/ime/ash/ime_bridge.cc
@@ -4,7 +4,7 @@
 
 #include "ui/base/ime/ash/ime_bridge.h"
 
-namespace ui {
+namespace ash {
 
 static IMEBridge* g_ime_bridge = nullptr;
 
@@ -39,30 +39,30 @@
   return current_input_context_;
 }
 
-void IMEBridge::AddObserver(ui::IMEBridgeObserver* observer) {
+void IMEBridge::AddObserver(IMEBridgeObserver* observer) {
   observers_.AddObserver(observer);
 }
 
-void IMEBridge::RemoveObserver(ui::IMEBridgeObserver* observer) {
+void IMEBridge::RemoveObserver(IMEBridgeObserver* observer) {
   observers_.RemoveObserver(observer);
 }
 
 void IMEBridge::SetCandidateWindowHandler(
-    ash::IMECandidateWindowHandlerInterface* handler) {
+    IMECandidateWindowHandlerInterface* handler) {
   candidate_window_handler_ = handler;
 }
 
-ash::IMECandidateWindowHandlerInterface* IMEBridge::GetCandidateWindowHandler()
+IMECandidateWindowHandlerInterface* IMEBridge::GetCandidateWindowHandler()
     const {
   return candidate_window_handler_;
 }
 
 void IMEBridge::SetAssistiveWindowHandler(
-    ash::IMEAssistiveWindowHandlerInterface* handler) {
+    IMEAssistiveWindowHandlerInterface* handler) {
   assistive_window_handler_ = handler;
 }
 
-ash::IMEAssistiveWindowHandlerInterface* IMEBridge::GetAssistiveWindowHandler()
+IMEAssistiveWindowHandlerInterface* IMEBridge::GetAssistiveWindowHandler()
     const {
   return assistive_window_handler_;
 }
@@ -75,4 +75,4 @@
   return g_ime_bridge;
 }
 
-}  // namespace ui
+}  // namespace ash
diff --git a/ui/base/ime/ash/ime_bridge.h b/ui/base/ime/ash/ime_bridge.h
index c19c655..47fff347 100644
--- a/ui/base/ime/ash/ime_bridge.h
+++ b/ui/base/ime/ash/ime_bridge.h
@@ -16,7 +16,7 @@
 class IMECandidateWindowHandlerInterface;
 class IMEAssistiveWindowHandlerInterface;
 
-namespace ui {
+namespace ash {
 
 // IMEBridge provides access of each IME related handler. This class
 // is used for IME implementation.
@@ -60,21 +60,19 @@
   const TextInputMethod::InputContext& GetCurrentInputContext() const;
 
   // Add or remove observers of events such as switching engines, etc.
-  void AddObserver(ui::IMEBridgeObserver* observer);
-  void RemoveObserver(ui::IMEBridgeObserver* observer);
+  void AddObserver(IMEBridgeObserver* observer);
+  void RemoveObserver(IMEBridgeObserver* observer);
 
   // Returns current CandidateWindowHandler. This function returns nullptr if
   // current candidate window is not ready to use.
-  ash::IMECandidateWindowHandlerInterface* GetCandidateWindowHandler() const;
+  IMECandidateWindowHandlerInterface* GetCandidateWindowHandler() const;
 
   // Updates current CandidatWindowHandler. If there is no active candidate
   // window service, pass nullptr for |handler|. Caller must release |handler|.
-  void SetCandidateWindowHandler(
-      ash::IMECandidateWindowHandlerInterface* handler);
+  void SetCandidateWindowHandler(IMECandidateWindowHandlerInterface* handler);
 
-  ash::IMEAssistiveWindowHandlerInterface* GetAssistiveWindowHandler() const;
-  void SetAssistiveWindowHandler(
-      ash::IMEAssistiveWindowHandlerInterface* handler);
+  IMEAssistiveWindowHandlerInterface* GetAssistiveWindowHandler() const;
+  void SetAssistiveWindowHandler(IMEAssistiveWindowHandlerInterface* handler);
 
  private:
   IMEBridge();
@@ -86,10 +84,10 @@
   base::ObserverList<IMEBridgeObserver> observers_;
   TextInputMethod::InputContext current_input_context_;
 
-  ash::IMECandidateWindowHandlerInterface* candidate_window_handler_ = nullptr;
-  ash::IMEAssistiveWindowHandlerInterface* assistive_window_handler_ = nullptr;
+  IMECandidateWindowHandlerInterface* candidate_window_handler_ = nullptr;
+  IMEAssistiveWindowHandlerInterface* assistive_window_handler_ = nullptr;
 };
 
-}  // namespace ui
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_IME_BRIDGE_H_
diff --git a/ui/base/ime/ash/ime_bridge_observer.h b/ui/base/ime/ash/ime_bridge_observer.h
index 2993b14..f69c0fd0 100644
--- a/ui/base/ime/ash/ime_bridge_observer.h
+++ b/ui/base/ime/ash/ime_bridge_observer.h
@@ -8,7 +8,7 @@
 #include "base/component_export.h"
 #include "base/observer_list_types.h"
 
-namespace ui {
+namespace ash {
 
 // A interface to observe changes in the IMEBridge.
 class COMPONENT_EXPORT(UI_BASE_IME_ASH) IMEBridgeObserver
@@ -18,6 +18,6 @@
   virtual void OnInputContextHandlerChanged() = 0;
 };
 
-}  // namespace ui
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_IME_BRIDGE_OBSERVER_H_
diff --git a/ui/base/ime/ash/ime_keyboard.cc b/ui/base/ime/ash/ime_keyboard.cc
index 89e7a54..ed2bc294 100644
--- a/ui/base/ime/ash/ime_keyboard.cc
+++ b/ui/base/ime/ash/ime_keyboard.cc
@@ -8,6 +8,7 @@
 
 namespace ash {
 namespace input_method {
+
 namespace {
 
 const char *kISOLevel5ShiftLayoutIds[] = {
diff --git a/ui/base/ime/ash/ime_keyboard.h b/ui/base/ime/ash/ime_keyboard.h
index a3f0577..ce57dc0 100644
--- a/ui/base/ime/ash/ime_keyboard.h
+++ b/ui/base/ime/ash/ime_keyboard.h
@@ -101,10 +101,4 @@
 }  // namespace input_method
 }  // namespace ash
 
-namespace chromeos {
-namespace input_method {
-using ::ash::input_method::AutoRepeatRate;
-}
-}  // namespace chromeos
-
 #endif  // UI_BASE_IME_ASH_IME_KEYBOARD_H_
diff --git a/ui/base/ime/ash/ime_keymap.cc b/ui/base/ime/ash/ime_keymap.cc
index a27bfb9e..7af4105 100644
--- a/ui/base/ime/ash/ime_keymap.cc
+++ b/ui/base/ime/ash/ime_keymap.cc
@@ -9,154 +9,157 @@
 #include <map>
 
 #include "base/lazy_instance.h"
+#include "ui/events/keycodes/keyboard_codes.h"
 
-namespace ui {
+namespace ash {
 
 namespace {
 
+using ::ui::KeyboardCode;
+
 const struct KeyCodeTable {
   KeyboardCode keyboard_code;
   const char* dom_code;
-} kKeyCodeTable[] = {{VKEY_BACK, "Backspace"},
-                     {VKEY_TAB, "Tab"},
-                     {VKEY_RETURN, "Enter"},
-                     {VKEY_MENU, "ContextMenu"},
-                     {VKEY_PAUSE, "Pause"},
-                     {VKEY_CAPITAL, "CapsLock"},
-                     {VKEY_KANA, "KanaMode"},
-                     {VKEY_HANGUL, "HangulMode"},
-                     {VKEY_HANJA, "Hanja"},
-                     {VKEY_KANJI, "Kanji"},
-                     {VKEY_ESCAPE, "Escape"},
-                     {VKEY_CONVERT, "Convert"},
-                     {VKEY_NONCONVERT, "NoConvert"},
-                     {VKEY_SPACE, "Space"},
-                     {VKEY_END, "End"},
-                     {VKEY_HOME, "Home"},
-                     {VKEY_LEFT, "ArrowLeft"},
-                     {VKEY_UP, "ArrowUp"},
-                     {VKEY_RIGHT, "ArrowRight"},
-                     {VKEY_DOWN, "ArrowDown"},
-                     {VKEY_SNAPSHOT, "PrintScreen"},
-                     {VKEY_INSERT, "Insert"},
-                     {VKEY_DELETE, "Delete"},
-                     {VKEY_HELP, "Help"},
-                     {VKEY_0, "Digit0"},
-                     {VKEY_1, "Digit1"},
-                     {VKEY_2, "Digit2"},
-                     {VKEY_3, "Digit3"},
-                     {VKEY_4, "Digit4"},
-                     {VKEY_5, "Digit5"},
-                     {VKEY_6, "Digit6"},
-                     {VKEY_7, "Digit7"},
-                     {VKEY_8, "Digit8"},
-                     {VKEY_9, "Digit9"},
-                     {VKEY_A, "KeyA"},
-                     {VKEY_B, "KeyB"},
-                     {VKEY_C, "KeyC"},
-                     {VKEY_D, "KeyD"},
-                     {VKEY_E, "KeyE"},
-                     {VKEY_F, "KeyF"},
-                     {VKEY_G, "KeyG"},
-                     {VKEY_H, "KeyH"},
-                     {VKEY_I, "KeyI"},
-                     {VKEY_J, "KeyJ"},
-                     {VKEY_K, "KeyK"},
-                     {VKEY_L, "KeyL"},
-                     {VKEY_M, "KeyM"},
-                     {VKEY_N, "KeyN"},
-                     {VKEY_O, "KeyO"},
-                     {VKEY_P, "KeyP"},
-                     {VKEY_Q, "KeyQ"},
-                     {VKEY_R, "KeyR"},
-                     {VKEY_S, "KeyS"},
-                     {VKEY_T, "KeyT"},
-                     {VKEY_U, "KeyU"},
-                     {VKEY_V, "KeyV"},
-                     {VKEY_W, "KeyW"},
-                     {VKEY_X, "KeyX"},
-                     {VKEY_Y, "KeyY"},
-                     {VKEY_Z, "KeyZ"},
-                     {VKEY_LWIN, "OSLeft"},
-                     {VKEY_RWIN, "OSRight"},
-                     {VKEY_NUMPAD0, "Numpad0"},
-                     {VKEY_NUMPAD1, "Numpad1"},
-                     {VKEY_NUMPAD2, "Numpad2"},
-                     {VKEY_NUMPAD3, "Numpad3"},
-                     {VKEY_NUMPAD4, "Numpad4"},
-                     {VKEY_NUMPAD5, "Numpad5"},
-                     {VKEY_NUMPAD6, "Numpad6"},
-                     {VKEY_NUMPAD7, "Numpad7"},
-                     {VKEY_NUMPAD8, "Numpad8"},
-                     {VKEY_NUMPAD9, "Numpad9"},
-                     {VKEY_MULTIPLY, "NumpadMultiply"},
-                     {VKEY_ADD, "NumpadAdd"},
-                     {VKEY_SUBTRACT, "NumpadSubtract"},
-                     {VKEY_DECIMAL, "NumpadDecimal"},
-                     {VKEY_DIVIDE, "NumpadDivide"},
-                     {VKEY_F1, "F1"},
-                     {VKEY_F2, "F2"},
-                     {VKEY_F3, "F3"},
-                     {VKEY_F4, "F4"},
-                     {VKEY_F5, "F5"},
-                     {VKEY_F6, "F6"},
-                     {VKEY_F7, "F7"},
-                     {VKEY_F8, "F8"},
-                     {VKEY_F9, "F9"},
-                     {VKEY_F10, "F10"},
-                     {VKEY_F11, "F11"},
-                     {VKEY_F12, "F12"},
-                     {VKEY_F13, "F13"},
-                     {VKEY_F14, "F14"},
-                     {VKEY_F15, "F15"},
-                     {VKEY_F16, "F16"},
-                     {VKEY_F17, "F17"},
-                     {VKEY_F18, "F18"},
-                     {VKEY_F19, "F19"},
-                     {VKEY_F20, "F20"},
-                     {VKEY_F21, "F21"},
-                     {VKEY_F22, "F22"},
-                     {VKEY_F23, "F23"},
-                     {VKEY_F24, "F24"},
-                     {VKEY_NUMLOCK, "NumLock"},
-                     {VKEY_SCROLL, "ScrollLock"},
-                     {VKEY_LSHIFT, "ShiftLeft"},
-                     {VKEY_RSHIFT, "ShiftRight"},
-                     {VKEY_LCONTROL, "ControlLeft"},
-                     {VKEY_RCONTROL, "ControlRight"},
-                     {VKEY_LMENU, "AltLeft"},
-                     {VKEY_RMENU, "AltRight"},
-                     {VKEY_BROWSER_BACK, "BrowserBack"},
-                     {VKEY_BROWSER_FORWARD, "BrowserForward"},
-                     {VKEY_BROWSER_REFRESH, "BrowserRefresh"},
-                     {VKEY_BROWSER_STOP, "BrowserStop"},
-                     {VKEY_BROWSER_SEARCH, "BrowserSearch"},
-                     {VKEY_BROWSER_HOME, "BrowserHome"},
-                     {VKEY_VOLUME_MUTE, "VolumeMute"},
-                     {VKEY_VOLUME_DOWN, "VolumeDown"},
-                     {VKEY_VOLUME_UP, "VolumeUp"},
-                     {VKEY_BRIGHTNESS_DOWN, "BrightnessDown"},
-                     {VKEY_BRIGHTNESS_UP, "BrightnessUp"},
-                     {VKEY_MEDIA_LAUNCH_APP1, "ChromeOSSwitchWindow"},
+} kKeyCodeTable[] = {{ui::VKEY_BACK, "Backspace"},
+                     {ui::VKEY_TAB, "Tab"},
+                     {ui::VKEY_RETURN, "Enter"},
+                     {ui::VKEY_MENU, "ContextMenu"},
+                     {ui::VKEY_PAUSE, "Pause"},
+                     {ui::VKEY_CAPITAL, "CapsLock"},
+                     {ui::VKEY_KANA, "KanaMode"},
+                     {ui::VKEY_HANGUL, "HangulMode"},
+                     {ui::VKEY_HANJA, "Hanja"},
+                     {ui::VKEY_KANJI, "Kanji"},
+                     {ui::VKEY_ESCAPE, "Escape"},
+                     {ui::VKEY_CONVERT, "Convert"},
+                     {ui::VKEY_NONCONVERT, "NoConvert"},
+                     {ui::VKEY_SPACE, "Space"},
+                     {ui::VKEY_END, "End"},
+                     {ui::VKEY_HOME, "Home"},
+                     {ui::VKEY_LEFT, "ArrowLeft"},
+                     {ui::VKEY_UP, "ArrowUp"},
+                     {ui::VKEY_RIGHT, "ArrowRight"},
+                     {ui::VKEY_DOWN, "ArrowDown"},
+                     {ui::VKEY_SNAPSHOT, "PrintScreen"},
+                     {ui::VKEY_INSERT, "Insert"},
+                     {ui::VKEY_DELETE, "Delete"},
+                     {ui::VKEY_HELP, "Help"},
+                     {ui::VKEY_0, "Digit0"},
+                     {ui::VKEY_1, "Digit1"},
+                     {ui::VKEY_2, "Digit2"},
+                     {ui::VKEY_3, "Digit3"},
+                     {ui::VKEY_4, "Digit4"},
+                     {ui::VKEY_5, "Digit5"},
+                     {ui::VKEY_6, "Digit6"},
+                     {ui::VKEY_7, "Digit7"},
+                     {ui::VKEY_8, "Digit8"},
+                     {ui::VKEY_9, "Digit9"},
+                     {ui::VKEY_A, "KeyA"},
+                     {ui::VKEY_B, "KeyB"},
+                     {ui::VKEY_C, "KeyC"},
+                     {ui::VKEY_D, "KeyD"},
+                     {ui::VKEY_E, "KeyE"},
+                     {ui::VKEY_F, "KeyF"},
+                     {ui::VKEY_G, "KeyG"},
+                     {ui::VKEY_H, "KeyH"},
+                     {ui::VKEY_I, "KeyI"},
+                     {ui::VKEY_J, "KeyJ"},
+                     {ui::VKEY_K, "KeyK"},
+                     {ui::VKEY_L, "KeyL"},
+                     {ui::VKEY_M, "KeyM"},
+                     {ui::VKEY_N, "KeyN"},
+                     {ui::VKEY_O, "KeyO"},
+                     {ui::VKEY_P, "KeyP"},
+                     {ui::VKEY_Q, "KeyQ"},
+                     {ui::VKEY_R, "KeyR"},
+                     {ui::VKEY_S, "KeyS"},
+                     {ui::VKEY_T, "KeyT"},
+                     {ui::VKEY_U, "KeyU"},
+                     {ui::VKEY_V, "KeyV"},
+                     {ui::VKEY_W, "KeyW"},
+                     {ui::VKEY_X, "KeyX"},
+                     {ui::VKEY_Y, "KeyY"},
+                     {ui::VKEY_Z, "KeyZ"},
+                     {ui::VKEY_LWIN, "OSLeft"},
+                     {ui::VKEY_RWIN, "OSRight"},
+                     {ui::VKEY_NUMPAD0, "Numpad0"},
+                     {ui::VKEY_NUMPAD1, "Numpad1"},
+                     {ui::VKEY_NUMPAD2, "Numpad2"},
+                     {ui::VKEY_NUMPAD3, "Numpad3"},
+                     {ui::VKEY_NUMPAD4, "Numpad4"},
+                     {ui::VKEY_NUMPAD5, "Numpad5"},
+                     {ui::VKEY_NUMPAD6, "Numpad6"},
+                     {ui::VKEY_NUMPAD7, "Numpad7"},
+                     {ui::VKEY_NUMPAD8, "Numpad8"},
+                     {ui::VKEY_NUMPAD9, "Numpad9"},
+                     {ui::VKEY_MULTIPLY, "NumpadMultiply"},
+                     {ui::VKEY_ADD, "NumpadAdd"},
+                     {ui::VKEY_SUBTRACT, "NumpadSubtract"},
+                     {ui::VKEY_DECIMAL, "NumpadDecimal"},
+                     {ui::VKEY_DIVIDE, "NumpadDivide"},
+                     {ui::VKEY_F1, "F1"},
+                     {ui::VKEY_F2, "F2"},
+                     {ui::VKEY_F3, "F3"},
+                     {ui::VKEY_F4, "F4"},
+                     {ui::VKEY_F5, "F5"},
+                     {ui::VKEY_F6, "F6"},
+                     {ui::VKEY_F7, "F7"},
+                     {ui::VKEY_F8, "F8"},
+                     {ui::VKEY_F9, "F9"},
+                     {ui::VKEY_F10, "F10"},
+                     {ui::VKEY_F11, "F11"},
+                     {ui::VKEY_F12, "F12"},
+                     {ui::VKEY_F13, "F13"},
+                     {ui::VKEY_F14, "F14"},
+                     {ui::VKEY_F15, "F15"},
+                     {ui::VKEY_F16, "F16"},
+                     {ui::VKEY_F17, "F17"},
+                     {ui::VKEY_F18, "F18"},
+                     {ui::VKEY_F19, "F19"},
+                     {ui::VKEY_F20, "F20"},
+                     {ui::VKEY_F21, "F21"},
+                     {ui::VKEY_F22, "F22"},
+                     {ui::VKEY_F23, "F23"},
+                     {ui::VKEY_F24, "F24"},
+                     {ui::VKEY_NUMLOCK, "NumLock"},
+                     {ui::VKEY_SCROLL, "ScrollLock"},
+                     {ui::VKEY_LSHIFT, "ShiftLeft"},
+                     {ui::VKEY_RSHIFT, "ShiftRight"},
+                     {ui::VKEY_LCONTROL, "ControlLeft"},
+                     {ui::VKEY_RCONTROL, "ControlRight"},
+                     {ui::VKEY_LMENU, "AltLeft"},
+                     {ui::VKEY_RMENU, "AltRight"},
+                     {ui::VKEY_BROWSER_BACK, "BrowserBack"},
+                     {ui::VKEY_BROWSER_FORWARD, "BrowserForward"},
+                     {ui::VKEY_BROWSER_REFRESH, "BrowserRefresh"},
+                     {ui::VKEY_BROWSER_STOP, "BrowserStop"},
+                     {ui::VKEY_BROWSER_SEARCH, "BrowserSearch"},
+                     {ui::VKEY_BROWSER_HOME, "BrowserHome"},
+                     {ui::VKEY_VOLUME_MUTE, "VolumeMute"},
+                     {ui::VKEY_VOLUME_DOWN, "VolumeDown"},
+                     {ui::VKEY_VOLUME_UP, "VolumeUp"},
+                     {ui::VKEY_BRIGHTNESS_DOWN, "BrightnessDown"},
+                     {ui::VKEY_BRIGHTNESS_UP, "BrightnessUp"},
+                     {ui::VKEY_MEDIA_LAUNCH_APP1, "ChromeOSSwitchWindow"},
                      // LaunchApplication2 is calculator.
-                     {VKEY_MEDIA_LAUNCH_APP2, "LaunchApplication2"},
-                     {VKEY_MEDIA_NEXT_TRACK, "MediaTrackNext"},
-                     {VKEY_MEDIA_PREV_TRACK, "MediaTrackPrevious"},
-                     {VKEY_MEDIA_STOP, "MediaStop"},
-                     {VKEY_MEDIA_PLAY_PAUSE, "MediaPlayPause"},
-                     {VKEY_MEDIA_LAUNCH_MAIL, "LaunchMail"},
-                     {VKEY_OEM_1, "Semicolon"},
-                     {VKEY_OEM_PLUS, "Equal"},
-                     {VKEY_OEM_COMMA, "Comma"},
-                     {VKEY_OEM_MINUS, "Minus"},
-                     {VKEY_OEM_PERIOD, "Period"},
-                     {VKEY_OEM_2, "Slash"},
-                     {VKEY_OEM_3, "Backquote"},
-                     {VKEY_OEM_4, "BracketLeft"},
-                     {VKEY_OEM_5, "Backslash"},
-                     {VKEY_OEM_6, "BracketRight"},
-                     {VKEY_OEM_7, "Quote"},
-                     {VKEY_ZOOM, "ChromeOSFullscreen"}};
+                     {ui::VKEY_MEDIA_LAUNCH_APP2, "LaunchApplication2"},
+                     {ui::VKEY_MEDIA_NEXT_TRACK, "MediaTrackNext"},
+                     {ui::VKEY_MEDIA_PREV_TRACK, "MediaTrackPrevious"},
+                     {ui::VKEY_MEDIA_STOP, "MediaStop"},
+                     {ui::VKEY_MEDIA_PLAY_PAUSE, "MediaPlayPause"},
+                     {ui::VKEY_MEDIA_LAUNCH_MAIL, "LaunchMail"},
+                     {ui::VKEY_OEM_1, "Semicolon"},
+                     {ui::VKEY_OEM_PLUS, "Equal"},
+                     {ui::VKEY_OEM_COMMA, "Comma"},
+                     {ui::VKEY_OEM_MINUS, "Minus"},
+                     {ui::VKEY_OEM_PERIOD, "Period"},
+                     {ui::VKEY_OEM_2, "Slash"},
+                     {ui::VKEY_OEM_3, "Backquote"},
+                     {ui::VKEY_OEM_4, "BracketLeft"},
+                     {ui::VKEY_OEM_5, "Backslash"},
+                     {ui::VKEY_OEM_6, "BracketRight"},
+                     {ui::VKEY_OEM_7, "Quote"},
+                     {ui::VKEY_ZOOM, "ChromeOSFullscreen"}};
 
 class KeyCodeMap {
  public:
@@ -169,7 +172,7 @@
 
   KeyboardCode GetKeyboardCode(const std::string& dom_code) const {
     auto it = map_dom_key_.find(dom_code);
-    return (it == map_dom_key_.end()) ? VKEY_UNKNOWN : it->second;
+    return (it == map_dom_key_.end()) ? ui::VKEY_UNKNOWN : it->second;
   }
 
   std::string GetDomKeycode(KeyboardCode key_code) const {
@@ -195,4 +198,4 @@
   return g_keycode_map.Get().GetDomKeycode(code);
 }
 
-}  // namespace ui
+}  // namespace ash
diff --git a/ui/base/ime/ash/ime_keymap.h b/ui/base/ime/ash/ime_keymap.h
index dd527ea..85e03364 100644
--- a/ui/base/ime/ash/ime_keymap.h
+++ b/ui/base/ime/ash/ime_keymap.h
@@ -10,16 +10,16 @@
 #include "base/component_export.h"
 #include "ui/events/keycodes/keyboard_codes.h"
 
-namespace ui {
+namespace ash {
 
 // Translates the DOM4 key code string to ui::KeyboardCode.
 COMPONENT_EXPORT(UI_BASE_IME_ASH)
-KeyboardCode DomKeycodeToKeyboardCode(const std::string& code);
+ui::KeyboardCode DomKeycodeToKeyboardCode(const std::string& code);
 
 // Translates the ui::KeyboardCode to DOM4 key code string.
 COMPONENT_EXPORT(UI_BASE_IME_ASH)
-std::string KeyboardCodeToDomKeycode(KeyboardCode code);
+std::string KeyboardCodeToDomKeycode(ui::KeyboardCode code);
 
-}  // namespace ui
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_IME_KEYMAP_H_
diff --git a/ui/base/ime/ash/input_method_ash.cc b/ui/base/ime/ash/input_method_ash.cc
index 9acf59b..0379428 100644
--- a/ui/base/ime/ash/input_method_ash.cc
+++ b/ui/base/ime/ash/input_method_ash.cc
@@ -34,9 +34,13 @@
 #include "ui/events/keycodes/dom/keycode_converter.h"
 #include "ui/gfx/geometry/rect.h"
 
-namespace ui {
+namespace ash {
+
 namespace {
 
+using ::ui::CompositionText;
+using ::ui::TextInputClient;
+
 template <typename T>
 T ConvertTextInputFlagToEnum(int flags, int flag_on_value, int flag_off_value) {
   if (flags & flag_on_value) {
@@ -62,13 +66,14 @@
 
 }  // namespace
 
-ui::TextInputMethod* GetEngine() {
-  auto* bridge = ui::IMEBridge::Get();
+TextInputMethod* GetEngine() {
+  auto* bridge = IMEBridge::Get();
   return bridge ? bridge->GetCurrentEngineHandler() : nullptr;
 }
 
 // InputMethodAsh implementation -----------------------------------------
-InputMethodAsh::InputMethodAsh(ImeKeyEventDispatcher* ime_key_event_dispatcher)
+InputMethodAsh::InputMethodAsh(
+    ui::ImeKeyEventDispatcher* ime_key_event_dispatcher)
     : InputMethodBase(ime_key_event_dispatcher),
       typing_session_manager_(base::DefaultClock::GetInstance()) {
   ResetContext();
@@ -79,9 +84,8 @@
   // We are dead, so we need to ask the client to stop relying on us.
   OnInputMethodChanged();
 
-  if (ui::IMEBridge::Get() &&
-      ui::IMEBridge::Get()->GetInputContextHandler() == this) {
-    ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  if (IMEBridge::Get() && IMEBridge::Get()->GetInputContextHandler() == this) {
+    IMEBridge::Get()->SetInputContextHandler(nullptr);
   }
   typing_session_manager_.EndAndRecordSession();
 }
@@ -110,10 +114,10 @@
   // For OS_CHROMEOS build of Chrome running on Linux, the IME keyboard cannot
   // track the Caps Lock state by itself, so need to call SetCapsLockEnabled()
   // method to reflect the Caps Lock state by the key event.
-  auto* manager = ash::input_method::InputMethodManager::Get();
+  auto* manager = input_method::InputMethodManager::Get();
   if (manager) {
-    ash::input_method::ImeKeyboard* keyboard = manager->GetImeKeyboard();
-    if (keyboard && event->type() == ET_KEY_PRESSED &&
+    input_method::ImeKeyboard* keyboard = manager->GetImeKeyboard();
+    if (keyboard && event->type() == ui::ET_KEY_PRESSED &&
         event->key_code() != ui::VKEY_CAPITAL &&
         keyboard->CapsLockIsEnabled() != event->IsCapsLockOn()) {
       // Synchronize the keyboard state with event's state if they do not
@@ -127,9 +131,9 @@
     // VKEY_CONVERT: Henkan key
     // VKEY_NONCONVERT: Muhenkan key
     // VKEY_DBE_SBCSCHAR/VKEY_DBE_DBCSCHAR: ZenkakuHankaku key
-    ash::input_method::InputMethodManager::State* state =
+    input_method::InputMethodManager::State* state =
         manager->GetActiveIMEState().get();
-    if (event->type() == ET_KEY_PRESSED && state) {
+    if (event->type() == ui::ET_KEY_PRESSED && state) {
       bool language_input_key = true;
       switch (event->key_code()) {
         case ui::VKEY_CONVERT:
@@ -162,7 +166,7 @@
   // Note: We need to send the key event to ibus even if the |context_| is not
   // enabled, so that ibus can have a chance to enable the |context_|.
   if (IsPasswordOrNoneInputFieldFocused() || !GetEngine()) {
-    if (event->type() == ET_KEY_PRESSED) {
+    if (event->type() == ui::ET_KEY_PRESSED) {
       if (ExecuteCharacterComposer(*event)) {
         // Treating as PostIME event if character composer handles key event and
         // generates some IME event,
@@ -198,7 +202,7 @@
     ui::ime::KeyEventHandledState handled_state) {
   DCHECK(event);
   bool is_handled_by_char_composer = false;
-  if (event->type() == ET_KEY_PRESSED) {
+  if (event->type() == ui::ET_KEY_PRESSED) {
     if (handled_state != ui::ime::KeyEventHandledState::kNotHandled) {
       // IME event has a priority to be handled, so that character composer
       // should be reset.
@@ -209,7 +213,7 @@
       is_handled_by_char_composer = ExecuteCharacterComposer(*event);
 
       if (!is_handled_by_char_composer &&
-          !KeycodeConverter::IsDomKeyForModifier(event->GetDomKey())) {
+          !ui::KeycodeConverter::IsDomKeyForModifier(event->GetDomKey())) {
         // If the character composer didn't handle it either, then confirm any
         // composition text before forwarding the key event. We ignore modifier
         // keys because, for example, if the IME handles Shift+A, then we don't
@@ -219,7 +223,8 @@
       }
     }
   }
-  if (event->type() == ET_KEY_PRESSED || event->type() == ET_KEY_RELEASED) {
+  if (event->type() == ui::ET_KEY_PRESSED ||
+      event->type() == ui::ET_KEY_RELEASED) {
     ui::ime::KeyEventHandledState handled_state_to_process =
         is_handled_by_char_composer
             ? ui::ime::KeyEventHandledState::kHandledByIME
@@ -236,9 +241,9 @@
 
   UpdateContextFocusState();
 
-  ui::TextInputMethod* engine = GetEngine();
+  TextInputMethod* engine = GetEngine();
   if (engine) {
-    const ui::TextInputMethod::InputContext context = GetInputContext();
+    const TextInputMethod::InputContext context = GetInputContext();
     // When focused input client is not changed, a text input type change
     // should cause blur/focus events to engine. The focus in to or out from
     // password field should also notify engine.
@@ -264,16 +269,16 @@
   DCHECK(client == GetTextInputClient());
   DCHECK(!IsTextInputTypeNone());
 
-  ui::TextInputMethod* engine = GetEngine();
+  TextInputMethod* engine = GetEngine();
   if (engine) {
     engine->SetCompositionBounds(GetCompositionBounds(client));
     engine->SetCaretBounds(client->GetCaretBounds());
   }
 
-  ash::IMECandidateWindowHandlerInterface* candidate_window =
-      ui::IMEBridge::Get()->GetCandidateWindowHandler();
-  ash::IMEAssistiveWindowHandlerInterface* assistive_window =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+  IMECandidateWindowHandlerInterface* candidate_window =
+      IMEBridge::Get()->GetCandidateWindowHandler();
+  IMEAssistiveWindowHandlerInterface* assistive_window =
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (!candidate_window && !assistive_window)
     return;
 
@@ -291,7 +296,7 @@
     candidate_window->SetCursorBounds(caret_rect, composition_head);
 
   if (assistive_window) {
-    ash::Bounds bounds;
+    Bounds bounds;
     bounds.caret = caret_rect;
     bounds.autocorrect = client->GetAutocorrectCharacterBounds();
     assistive_window->SetBounds(bounds);
@@ -342,7 +347,7 @@
   return false;
 }
 
-VirtualKeyboardController* InputMethodAsh::GetVirtualKeyboardController() {
+ui::VirtualKeyboardController* InputMethodAsh::GetVirtualKeyboardController() {
   if (auto* engine = GetEngine()) {
     if (auto* controller = engine->GetVirtualKeyboardController())
       return controller;
@@ -351,7 +356,7 @@
 }
 
 void InputMethodAsh::OnFocus() {
-  ui::IMEBridge* bridge = ui::IMEBridge::Get();
+  auto* bridge = IMEBridge::Get();
   if (bridge) {
     bridge->SetInputContextHandler(this);
   }
@@ -362,16 +367,16 @@
   if (!client || !IsTextInputClientFocused(client)) {
     return;
   }
-  ui::TextInputMethod* engine = GetEngine();
+  TextInputMethod* engine = GetEngine();
   if (engine) {
     engine->OnTouch(pointerType);
   }
 }
 
 void InputMethodAsh::OnBlur() {
-  if (ui::IMEBridge::Get() &&
-      ui::IMEBridge::Get()->GetInputContextHandler() == this)
-    ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
+  if (IMEBridge::Get() && IMEBridge::Get()->GetInputContextHandler() == this) {
+    IMEBridge::Get()->SetInputContextHandler(nullptr);
+  }
 }
 
 void InputMethodAsh::OnWillChangeFocusedClient(TextInputClient* focused_before,
@@ -509,7 +514,8 @@
   }
 }
 
-absl::optional<GrammarFragment> InputMethodAsh::GetGrammarFragmentAtCursor() {
+absl::optional<ui::GrammarFragment>
+InputMethodAsh::GetGrammarFragmentAtCursor() {
   if (IsTextInputTypeNone())
     return absl::nullopt;
   return GetTextInputClient()->GetGrammarFragmentAtCursor();
@@ -522,7 +528,7 @@
 }
 
 bool InputMethodAsh::AddGrammarFragments(
-    const std::vector<GrammarFragment>& fragments) {
+    const std::vector<ui::GrammarFragment>& fragments) {
   if (IsTextInputTypeNone())
     return false;
   return GetTextInputClient()->AddGrammarFragments(fragments);
@@ -579,18 +585,18 @@
 
   // Propagate the focus event to the candidate window handler which also
   // manages the input method mode indicator.
-  ash::IMECandidateWindowHandlerInterface* candidate_window =
-      ui::IMEBridge::Get()->GetCandidateWindowHandler();
+  IMECandidateWindowHandlerInterface* candidate_window =
+      IMEBridge::Get()->GetCandidateWindowHandler();
   if (candidate_window)
     candidate_window->FocusStateChanged(!IsPasswordOrNoneInputFieldFocused());
 
   // Propagate focus event to assistive window handler.
-  ash::IMEAssistiveWindowHandlerInterface* assistive_window =
-      ui::IMEBridge::Get()->GetAssistiveWindowHandler();
+  IMEAssistiveWindowHandlerInterface* assistive_window =
+      IMEBridge::Get()->GetAssistiveWindowHandler();
   if (assistive_window)
     assistive_window->FocusStateChanged();
 
-  ui::IMEBridge::Get()->SetCurrentInputContext(GetInputContext());
+  IMEBridge::Get()->SetCurrentInputContext(GetInputContext());
 }
 
 ui::EventDispatchDetails InputMethodAsh::ProcessKeyEventPostIME(
@@ -605,7 +611,7 @@
     return DispatchKeyEventPostIME(event);
   }
 
-  if (event->type() == ET_KEY_PRESSED && handled) {
+  if (event->type() == ui::ET_KEY_PRESSED && handled) {
     bool only_dispatch_vkey_processkey =
         (handled_state ==
          ui::ime::KeyEventHandledState::kHandledByAssistiveSuggester);
@@ -633,11 +639,13 @@
   if (handled)
     return dispatch_details;  // IME handled the key event. do not forward.
 
-  if (event->type() == ET_KEY_PRESSED)
+  if (event->type() == ui::ET_KEY_PRESSED) {
     return ProcessUnfilteredKeyPressEvent(event);
+  }
 
-  if (event->type() == ET_KEY_RELEASED)
+  if (event->type() == ui::ET_KEY_RELEASED) {
     return DispatchKeyEventPostIME(event);
+  }
   return dispatch_details;
 }
 
@@ -647,9 +655,9 @@
   if (!only_dispatch_vkey_processkey && NeedInsertChar())
     return DispatchKeyEventPostIME(event);
 
-  ui::KeyEvent fabricated_event(ET_KEY_PRESSED, VKEY_PROCESSKEY, event->code(),
-                                event->flags(), DomKey::PROCESS,
-                                event->time_stamp());
+  ui::KeyEvent fabricated_event(ui::ET_KEY_PRESSED, ui::VKEY_PROCESSKEY,
+                                event->code(), event->flags(),
+                                ui::DomKey::PROCESS, event->time_stamp());
   ui::EventDispatchDetails dispatch_details =
       DispatchKeyEventPostIME(&fabricated_event);
   if (fabricated_event.stopped_propagation())
@@ -695,7 +703,8 @@
   if (pending_commit_) {
     if (handled && NeedInsertChar()) {
       for (const auto& ch : pending_commit_->text) {
-        KeyEvent ch_event(ET_KEY_PRESSED, VKEY_UNKNOWN, EF_NONE);
+        ui::KeyEvent ch_event(ui::ET_KEY_PRESSED, ui::VKEY_UNKNOWN,
+                              ui::EF_NONE);
         ch_event.set_character(ch);
         client->InsertChar(ch_event);
       }
@@ -771,7 +780,7 @@
     const std::u16string& text,
     TextInputClient::InsertTextCursorBehavior cursor_behavior) {
   // We need to receive input method result even if the text input type is
-  // TEXT_INPUT_TYPE_NONE, to make sure we can always send correct
+  // `ui::TEXT_INPUT_TYPE_NONE`, to make sure we can always send correct
   // character for each key event to the focused text input client.
   if (!GetTextInputClient())
     return;
@@ -811,8 +820,8 @@
     return;
 
   if (!GetTextInputClient()->CanComposeInline()) {
-    ash::IMECandidateWindowHandlerInterface* candidate_window =
-        ui::IMEBridge::Get()->GetCandidateWindowHandler();
+    IMECandidateWindowHandlerInterface* candidate_window =
+        IMEBridge::Get()->GetCandidateWindowHandler();
     if (candidate_window)
       candidate_window->UpdatePreeditText(text.text, cursor_pos, visible);
   }
@@ -895,7 +904,7 @@
   return input_context;
 }
 
-void InputMethodAsh::SendKeyEvent(KeyEvent* event) {
+void InputMethodAsh::SendKeyEvent(ui::KeyEvent* event) {
   ui::EventDispatchDetails details = DispatchKeyEvent(event);
   DCHECK(!details.dispatcher_destroyed);
 }
@@ -932,7 +941,8 @@
   if (!character_composer_.FilterKeyPress(event))
     return false;
 
-  // CharacterComposer consumed the key event. Update the composition text.
+  // `ui::CharacterComposer` consumed the key event. Update the composition
+  // text.
   CompositionText preedit;
   preedit.text = character_composer_.preedit_string();
   UpdateCompositionText(preedit, preedit.text.size(), !preedit.text.empty());
@@ -971,18 +981,18 @@
 
   composition.selection = gfx::Range(cursor_offset);
 
-  const ImeTextSpans text_ime_text_spans = text.ime_text_spans;
+  const ui::ImeTextSpans text_ime_text_spans = text.ime_text_spans;
   if (!text_ime_text_spans.empty()) {
     for (const auto& text_ime_text_span : text_ime_text_spans) {
       const uint32_t start = text_ime_text_span.start_offset;
       const uint32_t end = text_ime_text_span.end_offset;
       if (start >= end)
         continue;
-      ImeTextSpan ime_text_span(ui::ImeTextSpan::Type::kComposition,
-                                char16_offsets[start], char16_offsets[end],
-                                text_ime_text_span.thickness,
-                                ui::ImeTextSpan::UnderlineStyle::kSolid,
-                                text_ime_text_span.background_color);
+      ui::ImeTextSpan ime_text_span(ui::ImeTextSpan::Type::kComposition,
+                                    char16_offsets[start], char16_offsets[end],
+                                    text_ime_text_span.thickness,
+                                    ui::ImeTextSpan::UnderlineStyle::kSolid,
+                                    text_ime_text_span.background_color);
       ime_text_span.underline_color = text_ime_text_span.underline_color;
       composition.ime_text_spans.push_back(ime_text_span);
     }
@@ -995,7 +1005,7 @@
         std::min(text.selection.start(), static_cast<size_t>(char_length));
     const size_t end =
         std::min(text.selection.end(), static_cast<size_t>(char_length));
-    ImeTextSpan ime_text_span(
+    ui::ImeTextSpan ime_text_span(
         ui::ImeTextSpan::Type::kComposition, char16_offsets[start],
         char16_offsets[end], ui::ImeTextSpan::Thickness::kThick,
         ui::ImeTextSpan::UnderlineStyle::kSolid, SK_ColorTRANSPARENT);
@@ -1015,7 +1025,7 @@
 
   // Use a thin underline with text color by default.
   if (composition.ime_text_spans.empty()) {
-    composition.ime_text_spans.push_back(ImeTextSpan(
+    composition.ime_text_spans.push_back(ui::ImeTextSpan(
         ui::ImeTextSpan::Type::kComposition, 0, length,
         ui::ImeTextSpan::Thickness::kThin,
         ui::ImeTextSpan::UnderlineStyle::kSolid, SK_ColorTRANSPARENT));
@@ -1025,8 +1035,9 @@
 }
 
 bool InputMethodAsh::IsPasswordOrNoneInputFieldFocused() {
-  TextInputType type = GetTextInputType();
-  return type == TEXT_INPUT_TYPE_NONE || type == TEXT_INPUT_TYPE_PASSWORD;
+  ui::TextInputType type = GetTextInputType();
+  return type == ui::TEXT_INPUT_TYPE_NONE ||
+         type == ui::TEXT_INPUT_TYPE_PASSWORD;
 }
 
 bool InputMethodAsh::HasCompositionText() {
@@ -1053,7 +1064,7 @@
   return client ? client->GetClientSourceForMetrics() : ukm::kInvalidSourceId;
 }
 
-InputMethod* InputMethodAsh::GetInputMethod() {
+ui::InputMethod* InputMethodAsh::GetInputMethod() {
   return this;
 }
 
@@ -1075,10 +1086,11 @@
 }
 
 bool InputMethodAsh::SendFakeProcessKeyEvent(bool pressed) const {
-  KeyEvent evt(pressed ? ET_KEY_PRESSED : ET_KEY_RELEASED,
-               pressed ? VKEY_PROCESSKEY : VKEY_UNKNOWN, EF_IME_FABRICATED_KEY);
+  ui::KeyEvent evt(pressed ? ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED,
+                   pressed ? ui::VKEY_PROCESSKEY : ui::VKEY_UNKNOWN,
+                   ui::EF_IME_FABRICATED_KEY);
   std::ignore = DispatchKeyEventPostIME(&evt);
   return evt.stopped_propagation();
 }
 
-}  // namespace ui
+}  // namespace ash
diff --git a/ui/base/ime/ash/input_method_ash.h b/ui/base/ime/ash/input_method_ash.h
index d6e46a1..762540c 100644
--- a/ui/base/ime/ash/input_method_ash.h
+++ b/ui/base/ime/ash/input_method_ash.h
@@ -24,45 +24,45 @@
 #include "ui/base/ime/text_input_client.h"
 #include "ui/events/event_dispatcher.h"
 
-namespace ui {
-
-namespace ime {
+namespace ui::ime {
 enum class KeyEventHandledState;
 }
 
+namespace ash {
+
 // A `ui::InputMethod` implementation for Ash.
 class COMPONENT_EXPORT(UI_BASE_IME_ASH) InputMethodAsh
-    : public InputMethodBase,
+    : public ui::InputMethodBase,
       public TextInputTarget {
  public:
-  explicit InputMethodAsh(ImeKeyEventDispatcher* ime_key_event_dispatcher);
+  explicit InputMethodAsh(ui::ImeKeyEventDispatcher* ime_key_event_dispatcher);
 
   InputMethodAsh(const InputMethodAsh&) = delete;
   InputMethodAsh& operator=(const InputMethodAsh&) = delete;
 
   ~InputMethodAsh() override;
 
-  // Overridden from InputMethod:
+  // Overridden from ui::InputMethod:
   ui::EventDispatchDetails DispatchKeyEvent(ui::KeyEvent* event) override;
-  void OnTextInputTypeChanged(TextInputClient* client) override;
-  void OnCaretBoundsChanged(const TextInputClient* client) override;
-  void CancelComposition(const TextInputClient* client) override;
+  void OnTextInputTypeChanged(ui::TextInputClient* client) override;
+  void OnCaretBoundsChanged(const ui::TextInputClient* client) override;
+  void CancelComposition(const ui::TextInputClient* client) override;
   bool IsCandidatePopupOpen() const override;
-  VirtualKeyboardController* GetVirtualKeyboardController() override;
+  ui::VirtualKeyboardController* GetVirtualKeyboardController() override;
 
   // Overridden from InputMethodBase:
   void OnFocus() override;
   void OnBlur() override;
   void OnTouch(ui::EventPointerType pointerType) override;
-  void OnWillChangeFocusedClient(TextInputClient* focused_before,
-                                 TextInputClient* focused) override;
-  void OnDidChangeFocusedClient(TextInputClient* focused_before,
-                                TextInputClient* focused) override;
+  void OnWillChangeFocusedClient(ui::TextInputClient* focused_before,
+                                 ui::TextInputClient* focused) override;
+  void OnDidChangeFocusedClient(ui::TextInputClient* focused_before,
+                                ui::TextInputClient* focused) override;
 
-  // ui::TextInputTarget overrides:
+  // TextInputTarget overrides:
   void CommitText(
       const std::u16string& text,
-      TextInputClient::InsertTextCursorBehavior cursor_behavior) override;
+      ui::TextInputClient::InsertTextCursorBehavior cursor_behavior) override;
   bool SetCompositionRange(
       uint32_t before,
       uint32_t after,
@@ -76,27 +76,27 @@
   gfx::Rect GetTextFieldBounds() override;
   void SetAutocorrectRange(const gfx::Range& range,
                            SetAutocorrectRangeDoneCallback callback) override;
-  absl::optional<GrammarFragment> GetGrammarFragmentAtCursor() override;
+  absl::optional<ui::GrammarFragment> GetGrammarFragmentAtCursor() override;
   bool ClearGrammarFragments(const gfx::Range& range) override;
   bool AddGrammarFragments(
-      const std::vector<GrammarFragment>& fragments) override;
-  void UpdateCompositionText(const CompositionText& text,
+      const std::vector<ui::GrammarFragment>& fragments) override;
+  void UpdateCompositionText(const ui::CompositionText& text,
                              uint32_t cursor_pos,
                              bool visible) override;
   void DeleteSurroundingText(uint32_t num_char16s_before_cursor,
                              uint32_t num_char16s_after_cursor) override;
   SurroundingTextInfo GetSurroundingTextInfo() override;
-  void SendKeyEvent(KeyEvent* event) override;
-  InputMethod* GetInputMethod() override;
+  void SendKeyEvent(ui::KeyEvent* event) override;
+  ui::InputMethod* GetInputMethod() override;
   void ConfirmComposition(bool reset_engine) override;
   bool HasCompositionText() override;
   std::u16string GetCompositionText() override;
   ukm::SourceId GetClientSourceForMetrics() override;
 
  protected:
-  // Converts |text| into CompositionText.
-  CompositionText ExtractCompositionText(const CompositionText& text,
-                                         uint32_t cursor_position) const;
+  // Converts `text` into `ui::CompositionText`.
+  ui::CompositionText ExtractCompositionText(const ui::CompositionText& text,
+                                             uint32_t cursor_position) const;
 
   // Process a key returned from the input method.
   [[nodiscard]] virtual ui::EventDispatchDetails ProcessKeyEventPostIME(
@@ -183,7 +183,8 @@
   bool IsPasswordOrNoneInputFieldFocused();
 
   // Gets the bounds of the composition text or cursor in |client|.
-  std::vector<gfx::Rect> GetCompositionBounds(const TextInputClient* client);
+  std::vector<gfx::Rect> GetCompositionBounds(
+      const ui::TextInputClient* client);
 
   // Sends a fake key event for IME composing without physical key events.
   // Returns true if the faked key event is stopped propagation.
@@ -192,7 +193,7 @@
   // Pending composition text generated by the current pending key event.
   // It'll be sent to the focused text input client as soon as we receive the
   // processing result of the pending key event.
-  absl::optional<CompositionText> pending_composition_;
+  absl::optional<ui::CompositionText> pending_composition_;
 
   // Pending result text generated by the current pending key event.
   // It'll be sent to the focused text input client as soon as we receive the
@@ -215,7 +216,7 @@
 
   // An object to compose a character from a sequence of key presses
   // including dead key etc.
-  CharacterComposer character_composer_;
+  ui::CharacterComposer character_composer_;
 
   // Indicates whether currently is handling a physical key event.
   // This is used in CommitText/UpdateCompositionText/etc.
@@ -226,12 +227,12 @@
   // Use by `DispatchKeyEvent` to return a proper event dispatch details
   // when IME engine's `ProcessKeyEvent` invokes `ProcessKeyEventDone`
   // synchronously.
-  absl::optional<EventDispatchDetails> dispatch_details_;
+  absl::optional<ui::EventDispatchDetails> dispatch_details_;
 
   // Used for making callbacks.
   base::WeakPtrFactory<InputMethodAsh> weak_ptr_factory_{this};
 };
 
-}  // namespace ui
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_INPUT_METHOD_ASH_H_
diff --git a/ui/base/ime/ash/input_method_ash_unittest.cc b/ui/base/ime/ash/input_method_ash_unittest.cc
index b6b6885..c930d8f 100644
--- a/ui/base/ime/ash/input_method_ash_unittest.cc
+++ b/ui/base/ime/ash/input_method_ash_unittest.cc
@@ -36,11 +36,15 @@
 #include "ui/events/test/keyboard_layout.h"
 #include "ui/gfx/geometry/rect.h"
 
-using base::UTF16ToUTF8;
+namespace ash {
 
-namespace ui {
 namespace {
 
+using ::base::UTF16ToUTF8;
+using ::ui::CompositionText;
+using ::ui::FakeTextInputClient;
+using ::ui::TextInputClient;
+
 const std::u16string kSampleText = u"あいうえお";
 
 using KeyEventCallback = TextInputMethod::KeyEventDoneCallback;
@@ -59,13 +63,16 @@
 class TestableInputMethodAsh : public InputMethodAsh {
  public:
   explicit TestableInputMethodAsh(
-      ImeKeyEventDispatcher* ime_key_event_dispatcher)
+      ui::ImeKeyEventDispatcher* ime_key_event_dispatcher)
       : InputMethodAsh(ime_key_event_dispatcher),
         process_key_event_post_ime_call_count_(0) {}
 
   struct ProcessKeyEventPostIMEArgs {
     ProcessKeyEventPostIMEArgs()
-        : event(ET_UNKNOWN, VKEY_UNKNOWN, DomCode::NONE, EF_NONE),
+        : event(ui::ET_UNKNOWN,
+                ui::VKEY_UNKNOWN,
+                ui::DomCode::NONE,
+                ui::EF_NONE),
           handled_state(ui::ime::KeyEventHandledState::kNotHandled) {}
     ui::KeyEvent event;
     ui::ime::KeyEventHandledState handled_state;
@@ -143,8 +150,7 @@
   const uint32_t expected_anchor_position_;
 };
 
-class TestInputMethodManager
-    : public ash::input_method::MockInputMethodManager {
+class TestInputMethodManager : public input_method::MockInputMethodManager {
   class TestState : public MockInputMethodManager::State {
    public:
     TestState() { Reset(); }
@@ -203,7 +209,7 @@
   }
 };
 
-class NiceMockIMEEngine : public ash::MockIMEEngineHandler {
+class NiceMockIMEEngine : public MockIMEEngineHandler {
  public:
   MOCK_METHOD1(Focus, void(const InputContext&));
   MOCK_METHOD0(Blur, void());
@@ -211,9 +217,9 @@
                void(const std::u16string&, uint32_t, uint32_t, uint32_t));
 };
 
-class InputMethodAshTest : public ImeKeyEventDispatcher,
+class InputMethodAshTest : public ui::ImeKeyEventDispatcher,
                            public testing::Test,
-                           public DummyTextInputClient {
+                           public ui::DummyTextInputClient {
  public:
   InputMethodAshTest()
       : dispatched_key_event_(ui::ET_UNKNOWN, ui::VKEY_UNKNOWN, ui::EF_NONE),
@@ -227,11 +233,11 @@
   ~InputMethodAshTest() override = default;
 
   void SetUp() override {
-    mock_ime_engine_handler_ = std::make_unique<ash::MockIMEEngineHandler>();
+    mock_ime_engine_handler_ = std::make_unique<MockIMEEngineHandler>();
     IMEBridge::Get()->SetCurrentEngineHandler(mock_ime_engine_handler_.get());
 
     mock_ime_candidate_window_handler_ =
-        std::make_unique<ash::MockIMECandidateWindowHandler>();
+        std::make_unique<MockIMECandidateWindowHandler>();
     IMEBridge::Get()->SetCandidateWindowHandler(
         mock_ime_candidate_window_handler_.get());
 
@@ -240,7 +246,7 @@
 
     // InputMethodManager owns and delete it in InputMethodManager::Shutdown().
     input_method_manager_ = new TestInputMethodManager();
-    ash::input_method::InputMethodManager::Initialize(input_method_manager_);
+    input_method::InputMethodManager::Initialize(input_method_manager_);
   }
 
   void TearDown() override {
@@ -251,7 +257,7 @@
     IMEBridge::Get()->SetCandidateWindowHandler(nullptr);
     mock_ime_engine_handler_.reset();
     mock_ime_candidate_window_handler_.reset();
-    ash::input_method::InputMethodManager::Shutdown();
+    input_method::InputMethodManager::Shutdown();
 
     ResetFlags();
   }
@@ -285,12 +291,12 @@
       TextInputClient::InsertTextCursorBehavior cursor_behavior) override {
     inserted_text_ = text;
   }
-  void InsertChar(const KeyEvent& event) override {
+  void InsertChar(const ui::KeyEvent& event) override {
     inserted_char_ = event.GetCharacter();
     inserted_char_flags_ = event.flags();
   }
-  TextInputType GetTextInputType() const override { return input_type_; }
-  TextInputMode GetTextInputMode() const override { return input_mode_; }
+  ui::TextInputType GetTextInputType() const override { return input_type_; }
+  ui::TextInputMode GetTextInputMode() const override { return input_mode_; }
   bool CanComposeInline() const override { return can_compose_inline_; }
   gfx::Rect GetCaretBounds() const override { return caret_bounds_; }
   bool HasCompositionText() const override {
@@ -322,9 +328,10 @@
   bool SetAutocorrectRange(const gfx::Range& range) override {
     // TODO(crbug.com/1277388): This is a workaround to ensure that the range is
     // valid in the text. Change to use FakeTextInputClient instead of
-    // DummyTextInputClient so that the text contents can be queried accurately.
+    // `ui::DummyTextInputClient` so that the text contents can be queried
+    // accurately.
     if (!inserted_text_.empty() || inserted_char_ != 0) {
-      return DummyTextInputClient::SetAutocorrectRange(range);
+      return ui::DummyTextInputClient::SetAutocorrectRange(range);
     }
     return range.is_empty();
   }
@@ -342,8 +349,8 @@
     inserted_char_flags_ = 0;
     on_input_method_changed_call_count_ = 0;
 
-    input_type_ = TEXT_INPUT_TYPE_NONE;
-    input_mode_ = TEXT_INPUT_MODE_DEFAULT;
+    input_type_ = ui::TEXT_INPUT_TYPE_NONE;
+    input_mode_ = ui::TEXT_INPUT_MODE_DEFAULT;
     can_compose_inline_ = true;
     caret_bounds_ = gfx::Rect();
 
@@ -366,16 +373,16 @@
   int inserted_char_flags_;
 
   // Variables that will be returned from the ui::TextInputClient functions.
-  TextInputType input_type_;
-  TextInputMode input_mode_;
+  ui::TextInputType input_type_;
+  ui::TextInputMode input_mode_;
   bool can_compose_inline_;
   gfx::Rect caret_bounds_;
   gfx::Range text_range_;
   gfx::Range selection_range_;
   std::u16string surrounding_text_;
 
-  std::unique_ptr<ash::MockIMEEngineHandler> mock_ime_engine_handler_;
-  std::unique_ptr<ash::MockIMECandidateWindowHandler>
+  std::unique_ptr<MockIMEEngineHandler> mock_ime_engine_handler_;
+  std::unique_ptr<MockIMECandidateWindowHandler>
       mock_ime_candidate_window_handler_;
 
   bool stop_propagation_post_ime_;
@@ -385,27 +392,27 @@
   base::test::TaskEnvironment task_environment_;
 };
 
-// Tests public APIs in ui::InputMethod first.
+// Tests public APIs in `ui::InputMethod` first.
 
 TEST_F(InputMethodAshTest, GetInputTextType) {
   InputMethodAsh ime(this);
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
-  EXPECT_EQ(ime.GetTextInputType(), TEXT_INPUT_TYPE_TEXT);
+  EXPECT_EQ(ime.GetTextInputType(), ui::TEXT_INPUT_TYPE_TEXT);
 
   ime.SetFocusedTextInputClient(nullptr);
 }
 
 TEST_F(InputMethodAshTest, OnTextInputTypeChangedChangesInputType) {
   InputMethodAsh ime(this);
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
-  fake_text_input_client.set_text_input_type(TEXT_INPUT_TYPE_PASSWORD);
+  fake_text_input_client.set_text_input_type(ui::TEXT_INPUT_TYPE_PASSWORD);
 
   ime.OnTextInputTypeChanged(&fake_text_input_client);
 
-  EXPECT_EQ(ime.GetTextInputType(), TEXT_INPUT_TYPE_PASSWORD);
+  EXPECT_EQ(ime.GetTextInputType(), ui::TEXT_INPUT_TYPE_PASSWORD);
 
   ime.SetFocusedTextInputClient(nullptr);
 }
@@ -417,21 +424,22 @@
 }
 
 TEST_F(InputMethodAshTest, GetInputTextType_WithoutFocusedClient) {
-  EXPECT_EQ(TEXT_INPUT_TYPE_NONE, input_method_ash_->GetTextInputType());
+  EXPECT_EQ(ui::TEXT_INPUT_TYPE_NONE, input_method_ash_->GetTextInputType());
   input_method_ash_->SetFocusedTextInputClient(nullptr);
-  input_type_ = TEXT_INPUT_TYPE_PASSWORD;
+  input_type_ = ui::TEXT_INPUT_TYPE_PASSWORD;
   input_method_ash_->OnTextInputTypeChanged(this);
   // The OnTextInputTypeChanged() call above should be ignored since |this| is
   // not the current focused client.
-  EXPECT_EQ(TEXT_INPUT_TYPE_NONE, input_method_ash_->GetTextInputType());
+  EXPECT_EQ(ui::TEXT_INPUT_TYPE_NONE, input_method_ash_->GetTextInputType());
 
   input_method_ash_->SetFocusedTextInputClient(this);
   input_method_ash_->OnTextInputTypeChanged(this);
-  EXPECT_EQ(TEXT_INPUT_TYPE_PASSWORD, input_method_ash_->GetTextInputType());
+  EXPECT_EQ(ui::TEXT_INPUT_TYPE_PASSWORD,
+            input_method_ash_->GetTextInputType());
 }
 
 TEST_F(InputMethodAshTest, OnWillChangeFocusedClientClearAutocorrectRange) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->SetFocusedTextInputClient(this);
   input_method_ash_->CommitText(
       u"hello",
@@ -449,14 +457,14 @@
   // A context shouldn't be created since the daemon is not running.
   EXPECT_EQ(0U, on_input_method_changed_call_count_);
   // Click a text input form.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   // Since a form has focus, IBusClient::Focus() should be called.
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(1,
             mock_ime_candidate_window_handler_->set_cursor_bounds_call_count());
   // ui::TextInputClient::OnInputMethodChanged() should be called when
-  // ui::InputMethodAsh connects/disconnects to/from ibus-daemon and the
+  // `InputMethodAsh` connects/disconnects to/from ibus-daemon and the
   // current text input type is not NONE.
   EXPECT_EQ(1U, on_input_method_changed_call_count_);
 }
@@ -465,7 +473,7 @@
 // input_type_ is PASSWORD.
 TEST_F(InputMethodAshTest, Focus_Password) {
   EXPECT_EQ(0U, on_input_method_changed_call_count_);
-  input_type_ = TEXT_INPUT_TYPE_PASSWORD;
+  input_type_ = ui::TEXT_INPUT_TYPE_PASSWORD;
   input_method_ash_->OnTextInputTypeChanged(this);
   // InputMethodEngine::Focus() should be called even for password field.
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_in_call_count());
@@ -474,11 +482,11 @@
 
 // Confirm that IBusClient::Blur is called as expected.
 TEST_F(InputMethodAshTest, Blur_None) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(0, mock_ime_engine_handler_->focus_out_call_count());
-  input_type_ = TEXT_INPUT_TYPE_NONE;
+  input_type_ = ui::TEXT_INPUT_TYPE_NONE;
   input_method_ash_->OnTextInputTypeChanged(this);
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_out_call_count());
@@ -486,11 +494,11 @@
 
 // Confirm that IBusClient::Blur is called as expected.
 TEST_F(InputMethodAshTest, Blur_Password) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(0, mock_ime_engine_handler_->focus_out_call_count());
-  input_type_ = TEXT_INPUT_TYPE_PASSWORD;
+  input_type_ = ui::TEXT_INPUT_TYPE_PASSWORD;
   input_method_ash_->OnTextInputTypeChanged(this);
   EXPECT_EQ(2, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_out_call_count());
@@ -501,42 +509,42 @@
   // Confirm that both Focus and Blur are NOT called.
   EXPECT_EQ(0, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(0, mock_ime_engine_handler_->focus_out_call_count());
-  EXPECT_EQ(TEXT_INPUT_TYPE_NONE,
+  EXPECT_EQ(ui::TEXT_INPUT_TYPE_NONE,
             mock_ime_engine_handler_->last_text_input_context().type);
-  EXPECT_EQ(TEXT_INPUT_MODE_DEFAULT,
+  EXPECT_EQ(ui::TEXT_INPUT_MODE_DEFAULT,
             mock_ime_engine_handler_->last_text_input_context().mode);
 
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
-  input_mode_ = TEXT_INPUT_MODE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
+  input_mode_ = ui::TEXT_INPUT_MODE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   // Confirm that only Focus is called, the TextInputType is TEXT and the
   // TextInputMode is LATIN..
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(0, mock_ime_engine_handler_->focus_out_call_count());
-  EXPECT_EQ(TEXT_INPUT_TYPE_TEXT,
+  EXPECT_EQ(ui::TEXT_INPUT_TYPE_TEXT,
             mock_ime_engine_handler_->last_text_input_context().type);
-  EXPECT_EQ(TEXT_INPUT_MODE_TEXT,
+  EXPECT_EQ(ui::TEXT_INPUT_MODE_TEXT,
             mock_ime_engine_handler_->last_text_input_context().mode);
 
-  input_mode_ = TEXT_INPUT_MODE_SEARCH;
+  input_mode_ = ui::TEXT_INPUT_MODE_SEARCH;
   input_method_ash_->OnTextInputTypeChanged(this);
   // Confirm that both Focus and Blur are called for mode change.
   EXPECT_EQ(2, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(1, mock_ime_engine_handler_->focus_out_call_count());
-  EXPECT_EQ(TEXT_INPUT_TYPE_TEXT,
+  EXPECT_EQ(ui::TEXT_INPUT_TYPE_TEXT,
             mock_ime_engine_handler_->last_text_input_context().type);
-  EXPECT_EQ(TEXT_INPUT_MODE_SEARCH,
+  EXPECT_EQ(ui::TEXT_INPUT_MODE_SEARCH,
             mock_ime_engine_handler_->last_text_input_context().mode);
 
-  input_type_ = TEXT_INPUT_TYPE_URL;
+  input_type_ = ui::TEXT_INPUT_TYPE_URL;
   input_method_ash_->OnTextInputTypeChanged(this);
   // Confirm that both Focus and Blur are called and the TextInputType is
   // changed to URL.
   EXPECT_EQ(3, mock_ime_engine_handler_->focus_in_call_count());
   EXPECT_EQ(2, mock_ime_engine_handler_->focus_out_call_count());
-  EXPECT_EQ(TEXT_INPUT_TYPE_URL,
+  EXPECT_EQ(ui::TEXT_INPUT_TYPE_URL,
             mock_ime_engine_handler_->last_text_input_context().type);
-  EXPECT_EQ(TEXT_INPUT_MODE_SEARCH,
+  EXPECT_EQ(ui::TEXT_INPUT_MODE_SEARCH,
             mock_ime_engine_handler_->last_text_input_context().mode);
 
   // Confirm that Blur is called when set focus to NULL client.
@@ -551,7 +559,7 @@
 
 // Test if the new |caret_bounds_| is correctly sent to ibus-daemon.
 TEST_F(InputMethodAshTest, OnCaretBoundsChanged) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   EXPECT_EQ(1,
             mock_ime_candidate_window_handler_->set_cursor_bounds_call_count());
@@ -596,10 +604,10 @@
 
 TEST_F(InputMethodAshTest, SetCompositionTextFails) {
   InputMethodAsh ime(this);
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
-  EXPECT_EQ(ime.GetTextInputType(), TEXT_INPUT_TYPE_TEXT);
+  EXPECT_EQ(ime.GetTextInputType(), ui::TEXT_INPUT_TYPE_TEXT);
   // Intentionally have a range start that does not exist.
   EXPECT_FALSE(ime.SetCompositionRange(10000, 5, {}));
 
@@ -612,10 +620,10 @@
   // Set up Ash composition text with one underline attribute.
   CompositionText composition_text;
   composition_text.text = kSampleText;
-  ImeTextSpan underline(ImeTextSpan::Type::kComposition, 1UL, 4UL,
-                        ui::ImeTextSpan::Thickness::kThin,
-                        ui::ImeTextSpan::UnderlineStyle::kSolid,
-                        SK_ColorTRANSPARENT);
+  ui::ImeTextSpan underline(ui::ImeTextSpan::Type::kComposition, 1UL, 4UL,
+                            ui::ImeTextSpan::Thickness::kThin,
+                            ui::ImeTextSpan::UnderlineStyle::kSolid,
+                            SK_ColorTRANSPARENT);
   composition_text.ime_text_spans.push_back(underline);
 
   CompositionText composition_text2 =
@@ -644,10 +652,10 @@
   // Set up Ash composition text with one underline attribute.
   CompositionText composition_text;
   composition_text.text = kSampleText;
-  ImeTextSpan underline(ImeTextSpan::Type::kComposition, 1UL, 4UL,
-                        ui::ImeTextSpan::Thickness::kThick,
-                        ui::ImeTextSpan::UnderlineStyle::kSolid,
-                        SK_ColorTRANSPARENT);
+  ui::ImeTextSpan underline(ui::ImeTextSpan::Type::kComposition, 1UL, 4UL,
+                            ui::ImeTextSpan::Thickness::kThick,
+                            ui::ImeTextSpan::UnderlineStyle::kSolid,
+                            SK_ColorTRANSPARENT);
   composition_text.ime_text_spans.push_back(underline);
 
   CompositionText composition_text2 =
@@ -676,10 +684,10 @@
   // Set up Ash composition text with one underline attribute.
   CompositionText composition_text;
   composition_text.text = kSampleText;
-  ImeTextSpan underline(ImeTextSpan::Type::kComposition, 1UL, 4UL,
-                        ui::ImeTextSpan::Thickness::kThin,
-                        ui::ImeTextSpan::UnderlineStyle::kSolid,
-                        SK_ColorTRANSPARENT);
+  ui::ImeTextSpan underline(ui::ImeTextSpan::Type::kComposition, 1UL, 4UL,
+                            ui::ImeTextSpan::Thickness::kThin,
+                            ui::ImeTextSpan::UnderlineStyle::kSolid,
+                            SK_ColorTRANSPARENT);
   underline.underline_color = SK_ColorRED;
   composition_text.ime_text_spans.push_back(underline);
 
@@ -791,7 +799,7 @@
 
 TEST_F(InputMethodAshTest, SurroundingText_NoSelectionTest) {
   // Click a text input form.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   // Set the TextInputClient behaviors.
@@ -814,7 +822,7 @@
 
 TEST_F(InputMethodAshTest, SurroundingText_SelectionTest) {
   // Click a text input form.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   // Set the TextInputClient behaviors.
@@ -837,7 +845,7 @@
 
 TEST_F(InputMethodAshTest, SurroundingText_PartialText) {
   // Click a text input form.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   // Set the TextInputClient behaviors.
@@ -858,7 +866,7 @@
 
 TEST_F(InputMethodAshTest, SurroundingText_BecomeEmptyText) {
   // Click a text input form.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   // Set the TextInputClient behaviors.
@@ -893,7 +901,7 @@
     text_range_ = gfx::Range(0, 1);
     selection_range_ = gfx::Range(0, 0);
 
-    input_type_ = TEXT_INPUT_TYPE_TEXT;
+    input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
     input_method_ash_->OnWillChangeFocusedClient(nullptr, this);
     input_method_ash_->OnDidChangeFocusedClient(nullptr, this);
   }
@@ -909,7 +917,7 @@
     text_range_ = gfx::Range(0, 1);
     selection_range_ = gfx::Range(0, 0);
 
-    input_type_ = TEXT_INPUT_TYPE_EMAIL;
+    input_type_ = ui::TEXT_INPUT_TYPE_EMAIL;
     input_method_ash_->OnTextInputTypeChanged(this);
   }
   IMEBridge::Get()->SetCurrentEngineHandler(nullptr);
@@ -917,7 +925,7 @@
 
 TEST_F(InputMethodAshTest, SetCompositionRange_InvalidRange) {
   // Focus on a text field.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   // Insert some text and place the cursor.
@@ -931,7 +939,7 @@
 
 TEST_F(InputMethodAshTest,
        SetCompositionRangeWithSelectedTextAccountsForSelection) {
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   fake_text_input_client.SetTextAndSelection(u"01234", gfx::Range(1, 4));
   InputMethodAsh ime(this);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
@@ -948,7 +956,7 @@
 
 TEST_F(InputMethodAshTest, ConfirmComposition_NoComposition) {
   // Focus on a text field.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   input_method_ash_->ConfirmComposition(/* reset_engine */ true);
@@ -959,7 +967,7 @@
 
 TEST_F(InputMethodAshTest, ConfirmComposition_SetComposition) {
   // Focus on a text field.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   CompositionText composition_text;
@@ -973,7 +981,7 @@
 
 TEST_F(InputMethodAshTest, ConfirmComposition_SetCompositionRange) {
   // Focus on a text field.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   // Place some text.
@@ -989,7 +997,7 @@
 }
 
 TEST_F(InputMethodAshTest, SetAutocorrectRange_SuccessfulSet) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   InsertText(u"a",
@@ -1012,7 +1020,7 @@
 }
 
 TEST_F(InputMethodAshTest, SetAutocorrectRange_FailedSet) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   bool callback_called = false;
@@ -1048,7 +1056,7 @@
   ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_A, kFlags);
 
   // Do key event.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   input_method_ash_->DispatchKeyEvent(&event);
 
@@ -1087,7 +1095,7 @@
   ui::ScopedKeyboardLayout keyboard_layout(ui::KEYBOARD_LAYOUT_ENGLISH_US);
 
   // Preparation
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   const int kFlags = ui::EF_SHIFT_DOWN;
@@ -1155,12 +1163,12 @@
 
 TEST_F(InputMethodAshKeyEventTest, StopPropagationTest) {
   // Preparation
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
   // Do key event with event being stopped propagation.
   stop_propagation_post_ime_ = true;
-  ui::KeyEvent eventA(ui::ET_KEY_PRESSED, ui::VKEY_A, EF_NONE);
+  ui::KeyEvent eventA(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
   eventA.set_character(L'A');
   input_method_ash_->DispatchKeyEvent(&eventA);
   mock_ime_engine_handler_->last_passed_callback().Run(
@@ -1184,31 +1192,31 @@
 
 TEST_F(InputMethodAshKeyEventTest, DeadKeyPressTest) {
   // Preparation.
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
 
-  ui::KeyEvent eventA(ET_KEY_PRESSED,
-                      VKEY_OEM_4,  // '['
-                      DomCode::BRACKET_LEFT, 0,
-                      DomKey::DeadKeyFromCombiningCharacter('^'),
-                      EventTimeForNow());
+  ui::KeyEvent eventA(ui::ET_KEY_PRESSED,
+                      ui::VKEY_OEM_4,  // '['
+                      ui::DomCode::BRACKET_LEFT, 0,
+                      ui::DomKey::DeadKeyFromCombiningCharacter('^'),
+                      ui::EventTimeForNow());
   input_method_ash_->ProcessKeyEventPostIME(
       &eventA, ui::ime::KeyEventHandledState::kHandledByIME, true);
 
   const ui::KeyEvent& key_event = dispatched_key_event_;
 
-  EXPECT_EQ(ET_KEY_PRESSED, key_event.type());
-  EXPECT_EQ(VKEY_PROCESSKEY, key_event.key_code());
+  EXPECT_EQ(ui::ET_KEY_PRESSED, key_event.type());
+  EXPECT_EQ(ui::VKEY_PROCESSKEY, key_event.key_code());
   EXPECT_EQ(eventA.code(), key_event.code());
   EXPECT_EQ(eventA.flags(), key_event.flags());
-  EXPECT_EQ(DomKey::PROCESS, key_event.GetDomKey());
+  EXPECT_EQ(ui::DomKey::PROCESS, key_event.GetDomKey());
   EXPECT_EQ(eventA.time_stamp(), key_event.time_stamp());
 }
 
 TEST_F(InputMethodAshKeyEventTest,
        SingleCharAssistiveSuggesterKeyEventDispatchesProcessKey) {
-  ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_A, EF_NONE);
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
 
   input_method_ash_->OnTextInputTypeChanged(this);
   input_method_ash_->DispatchKeyEvent(&event);
@@ -1220,38 +1228,41 @@
       .Run(ui::ime::KeyEventHandledState::kHandledByAssistiveSuggester);
 
   const ui::KeyEvent& key_event = dispatched_key_event_;
-  EXPECT_EQ(ET_KEY_PRESSED, key_event.type());
-  EXPECT_EQ(VKEY_PROCESSKEY, key_event.key_code());
+  EXPECT_EQ(ui::ET_KEY_PRESSED, key_event.type());
+  EXPECT_EQ(ui::VKEY_PROCESSKEY, key_event.key_code());
   EXPECT_EQ(event.code(), key_event.code());
   EXPECT_EQ(event.flags(), key_event.flags());
-  EXPECT_EQ(DomKey::PROCESS, key_event.GetDomKey());
+  EXPECT_EQ(ui::DomKey::PROCESS, key_event.GetDomKey());
   EXPECT_EQ(event.time_stamp(), key_event.time_stamp());
 }
 
 TEST_F(InputMethodAshKeyEventTest, JP106KeyTest) {
-  ui::KeyEvent eventConvert(ET_KEY_PRESSED, VKEY_CONVERT, EF_NONE);
+  ui::KeyEvent eventConvert(ui::ET_KEY_PRESSED, ui::VKEY_CONVERT, ui::EF_NONE);
   input_method_ash_->DispatchKeyEvent(&eventConvert);
   EXPECT_FALSE(input_method_manager_->state()->is_jp_kbd());
   EXPECT_TRUE(input_method_manager_->state()->is_jp_ime());
 
-  ui::KeyEvent eventNonConvert(ET_KEY_PRESSED, VKEY_NONCONVERT, EF_NONE);
+  ui::KeyEvent eventNonConvert(ui::ET_KEY_PRESSED, ui::VKEY_NONCONVERT,
+                               ui::EF_NONE);
   input_method_ash_->DispatchKeyEvent(&eventNonConvert);
   EXPECT_TRUE(input_method_manager_->state()->is_jp_kbd());
   EXPECT_FALSE(input_method_manager_->state()->is_jp_ime());
 
-  ui::KeyEvent eventDbeSbc(ET_KEY_PRESSED, VKEY_DBE_SBCSCHAR, EF_NONE);
+  ui::KeyEvent eventDbeSbc(ui::ET_KEY_PRESSED, ui::VKEY_DBE_SBCSCHAR,
+                           ui::EF_NONE);
   input_method_ash_->DispatchKeyEvent(&eventDbeSbc);
   EXPECT_FALSE(input_method_manager_->state()->is_jp_kbd());
   EXPECT_TRUE(input_method_manager_->state()->is_jp_ime());
 
-  ui::KeyEvent eventDbeDbc(ET_KEY_PRESSED, VKEY_DBE_DBCSCHAR, EF_NONE);
+  ui::KeyEvent eventDbeDbc(ui::ET_KEY_PRESSED, ui::VKEY_DBE_DBCSCHAR,
+                           ui::EF_NONE);
   input_method_ash_->DispatchKeyEvent(&eventDbeDbc);
   EXPECT_TRUE(input_method_manager_->state()->is_jp_kbd());
   EXPECT_FALSE(input_method_manager_->state()->is_jp_ime());
 }
 
 TEST_F(InputMethodAshKeyEventTest, SetAutocorrectRangeRunsAfterKeyEvent) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   input_method_ash_->CommitText(
       u"a", TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
@@ -1280,7 +1291,7 @@
 }
 
 TEST_F(InputMethodAshKeyEventTest, SetAutocorrectRangeRunsAfterCommitText) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
   input_method_ash_->DispatchKeyEvent(&event);
@@ -1305,7 +1316,7 @@
 
 TEST_F(InputMethodAshKeyEventTest,
        SetAutocorrectRangeCallsCallbackOnFailureAfterKeyEvent) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   input_method_ash_->CommitText(
       u"a", TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
@@ -1339,7 +1350,7 @@
 TEST_F(
     InputMethodAshKeyEventTest,
     LatestSetAutocorrectRangeOverridesPreviousRequestsWhileHandlingKeyEvent) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
   input_method_ash_->OnTextInputTypeChanged(this);
   input_method_ash_->CommitText(
       u"a", TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
@@ -1381,7 +1392,7 @@
 
 TEST_F(InputMethodAshKeyEventTest,
        MultipleCommitTextsWhileHandlingKeyEventCoalescesIntoOne) {
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   InputMethodAsh ime(this);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
@@ -1402,7 +1413,7 @@
 
 TEST_F(InputMethodAshKeyEventTest,
        MultipleCommitTextsWhileHandlingKeyEventCoalescesByCaretBehavior) {
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   InputMethodAsh ime(this);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
@@ -1426,7 +1437,7 @@
 }
 
 TEST_F(InputMethodAshKeyEventTest, CommitTextEmptyRunsAfterKeyEvent) {
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   InputMethodAsh ime(this);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
   ui::CompositionText composition;
@@ -1446,7 +1457,7 @@
 }
 
 TEST_F(InputMethodAshTest, CommitTextReplacesSelection) {
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   fake_text_input_client.SetTextAndSelection(u"hello", gfx::Range(0, 5));
   InputMethodAsh ime(this);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
@@ -1458,7 +1469,7 @@
 }
 
 TEST_F(InputMethodAshTest, ResetsEngineWithComposition) {
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   fake_text_input_client.SetTextAndSelection(u"hello ", gfx::Range(6, 6));
   InputMethodAsh ime(this);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
@@ -1472,7 +1483,7 @@
 }
 
 TEST_F(InputMethodAshTest, DoesNotResetEngineWithNoComposition) {
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   InputMethodAsh ime(this);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
@@ -1485,13 +1496,13 @@
 }
 
 TEST_F(InputMethodAshTest, CommitTextThenKeyEventOnlyInsertsOnce) {
-  FakeTextInputClient fake_text_input_client(TEXT_INPUT_TYPE_TEXT);
+  FakeTextInputClient fake_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
   InputMethodAsh ime(this);
   ime.SetFocusedTextInputClient(&fake_text_input_client);
 
   ime.CommitText(
       u"a", TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
-  ui::KeyEvent key(ET_KEY_PRESSED, VKEY_A, EF_NONE);
+  ui::KeyEvent key(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
   ime.DispatchKeyEvent(&key);
   std::move(mock_ime_engine_handler_->last_passed_callback())
       .Run(ui::ime::KeyEventHandledState::kHandledByIME);
@@ -1500,8 +1511,8 @@
 }
 
 TEST_F(InputMethodAshTest, AddsAndClearsGrammarFragments) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
-  std::vector<GrammarFragment> fragments;
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
+  std::vector<ui::GrammarFragment> fragments;
   fragments.emplace_back(gfx::Range(0, 1), "fake");
   fragments.emplace_back(gfx::Range(3, 10), "test");
   input_method_ash_->AddGrammarFragments(fragments);
@@ -1511,8 +1522,8 @@
 }
 
 TEST_F(InputMethodAshTest, GetsGrammarFragments) {
-  input_type_ = TEXT_INPUT_TYPE_TEXT;
-  GrammarFragment fragment(gfx::Range(0, 5), "fake");
+  input_type_ = ui::TEXT_INPUT_TYPE_TEXT;
+  ui::GrammarFragment fragment(gfx::Range(0, 5), "fake");
   input_method_ash_->AddGrammarFragments({fragment});
 
   input_method_ash_->SetEditableSelectionRange(gfx::Range(3, 3));
@@ -1526,4 +1537,4 @@
   EXPECT_EQ(input_method_ash_->GetGrammarFragmentAtCursor(), absl::nullopt);
 }
 
-}  // namespace ui
+}  // namespace ash
diff --git a/ui/base/ime/ash/input_method_descriptor.h b/ui/base/ime/ash/input_method_descriptor.h
index 40fb4c7..4f69b81 100644
--- a/ui/base/ime/ash/input_method_descriptor.h
+++ b/ui/base/ime/ash/input_method_descriptor.h
@@ -82,12 +82,4 @@
 }  // namespace input_method
 }  // namespace ash
 
-// TODO(https://crbug.com/1164001): remove when the migration is finished.
-namespace chromeos {
-namespace input_method {
-using ::ash::input_method::InputMethodDescriptor;
-using ::ash::input_method::InputMethodDescriptors;
-}  // namespace input_method
-}  // namespace chromeos
-
 #endif  // UI_BASE_IME_ASH_INPUT_METHOD_DESCRIPTOR_H_
diff --git a/ui/base/ime/ash/input_method_descriptor_unittest.cc b/ui/base/ime/ash/input_method_descriptor_unittest.cc
index 16b7af6..4d859dd 100644
--- a/ui/base/ime/ash/input_method_descriptor_unittest.cc
+++ b/ui/base/ime/ash/input_method_descriptor_unittest.cc
@@ -15,8 +15,6 @@
 namespace input_method {
 namespace {
 
-using ::base::ASCIIToUTF16;
-
 InputMethodDescriptor CreateDesc(const std::string& id,
                                  const std::string& layout,
                                  const std::vector<std::string>& language_codes,
diff --git a/ui/base/ime/ash/input_method_manager.cc b/ui/base/ime/ash/input_method_manager.cc
index b9042c8..a57ec6ea 100644
--- a/ui/base/ime/ash/input_method_manager.cc
+++ b/ui/base/ime/ash/input_method_manager.cc
@@ -10,7 +10,9 @@
 namespace input_method {
 
 namespace {
+
 InputMethodManager* g_input_method_manager = nullptr;
+
 }  // namespace
 
 InputMethodManager::State::~State() = default;
diff --git a/ui/base/ime/ash/input_method_manager.h b/ui/base/ime/ash/input_method_manager.h
index d34e4db..8ac4bb8 100644
--- a/ui/base/ime/ash/input_method_manager.h
+++ b/ui/base/ime/ash/input_method_manager.h
@@ -21,13 +21,13 @@
 
 class Profile;
 
-namespace ui {
-class TextInputMethod;
-}  // namespace ui
-
 namespace ash {
+
 class ComponentExtensionIMEManager;
+class TextInputMethod;
+
 namespace input_method {
+
 class InputMethodUtil;
 class ImeKeyboard;
 
@@ -138,7 +138,7 @@
     virtual void AddInputMethodExtension(
         const std::string& extension_id,
         const InputMethodDescriptors& descriptors,
-        ui::TextInputMethod* instance) = 0;
+        TextInputMethod* instance) = 0;
 
     // Removes an input method extension.
     virtual void RemoveInputMethodExtension(
@@ -388,11 +388,4 @@
 }  // namespace input_method
 }  // namespace ash
 
-// TODO(https://crbug.com/1164001): remove when the migration is finished.
-namespace chromeos {
-namespace input_method {
-using ::ash::input_method::InputMethodManager;
-}
-}  // namespace chromeos
-
 #endif  // UI_BASE_IME_ASH_INPUT_METHOD_MANAGER_H_
diff --git a/ui/base/ime/ash/input_method_ukm.cc b/ui/base/ime/ash/input_method_ukm.cc
index e293fc7..df48101e 100644
--- a/ui/base/ime/ash/input_method_ukm.cc
+++ b/ui/base/ime/ash/input_method_ukm.cc
@@ -7,13 +7,13 @@
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "ui/base/ui_base_features.h"
 
-namespace ui {
+namespace ash {
 
 void RecordUkmNonCompliantApi(
     ukm::SourceId source,
-    const ash::ime::mojom::InputMethodApiOperation operation) {
+    const ime::mojom::InputMethodApiOperation operation) {
   if (source == ukm::kInvalidSourceId ||
-      operation == ash::ime::mojom::InputMethodApiOperation::kUnknown) {
+      operation == ime::mojom::InputMethodApiOperation::kUnknown) {
     return;
   }
 
@@ -33,4 +33,4 @@
       ukm::UkmRecorder::Get());
 }
 
-}  // namespace ui
+}  // namespace ash
diff --git a/ui/base/ime/ash/input_method_ukm.h b/ui/base/ime/ash/input_method_ukm.h
index 5fb19d4..3470a54 100644
--- a/ui/base/ime/ash/input_method_ukm.h
+++ b/ui/base/ime/ash/input_method_ukm.h
@@ -10,14 +10,13 @@
 #include "services/metrics/public/cpp/ukm_source_id.h"
 #include "ui/base/ime/text_input_type.h"
 
-namespace ui {
+namespace ash {
 
 // Records an event in UKM, under the InputMethod.NonCompliantApi metric.
 // Ignores invalid sources.
 COMPONENT_EXPORT(UI_BASE_IME_ASH)
-void RecordUkmNonCompliantApi(
-    ukm::SourceId source,
-    ash::ime::mojom::InputMethodApiOperation operation);
+void RecordUkmNonCompliantApi(ukm::SourceId source,
+                              ime::mojom::InputMethodApiOperation operation);
 
 // Records an event in UKM, under the InputMethod.Assistive.Match metric.
 // Ignores invalid sources.
@@ -25,6 +24,6 @@
 COMPONENT_EXPORT(UI_BASE_IME_ASH)
 void RecordUkmAssistiveMatch(ukm::SourceId source, int64_t type);
 
-}  // namespace ui
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_INPUT_METHOD_UKM_H_
diff --git a/ui/base/ime/ash/input_method_util.h b/ui/base/ime/ash/input_method_util.h
index 0a32f67..9e6ba13c 100644
--- a/ui/base/ime/ash/input_method_util.h
+++ b/ui/base/ime/ash/input_method_util.h
@@ -182,12 +182,4 @@
 }  // namespace input_method
 }  // namespace ash
 
-// TODO(https://crbug.com/1164001): remove when the migration is finished.
-namespace chromeos {
-namespace input_method {
-using ::ash::input_method::InputMethodUtil;
-using ::ash::input_method::kKeyboardLayoutsOnly;
-}  // namespace input_method
-}  // namespace chromeos
-
 #endif  // UI_BASE_IME_ASH_INPUT_METHOD_UTIL_H_
diff --git a/ui/base/ime/ash/mock_component_extension_ime_manager_delegate.h b/ui/base/ime/ash/mock_component_extension_ime_manager_delegate.h
index 841a96b..728eecf 100644
--- a/ui/base/ime/ash/mock_component_extension_ime_manager_delegate.h
+++ b/ui/base/ime/ash/mock_component_extension_ime_manager_delegate.h
@@ -53,11 +53,4 @@
 }  // namespace input_method
 }  // namespace ash
 
-// TODO(https://crbug.com/1164001): remove when the migration is finished.
-namespace chromeos {
-namespace input_method {
-using ::ash::input_method::MockComponentExtensionIMEManagerDelegate;
-}
-}  // namespace chromeos
-
 #endif  // UI_BASE_IME_ASH_MOCK_COMPONENT_EXTENSION_IME_MANAGER_DELEGATE_H_
diff --git a/ui/base/ime/ash/mock_ime_engine_handler.h b/ui/base/ime/ash/mock_ime_engine_handler.h
index e111fff0..a835412e 100644
--- a/ui/base/ime/ash/mock_ime_engine_handler.h
+++ b/ui/base/ime/ash/mock_ime_engine_handler.h
@@ -14,17 +14,18 @@
 #include "ui/events/event.h"
 
 namespace ash {
+
 namespace ime {
 struct AssistiveWindow;
 }  // namespace ime
 
 class COMPONENT_EXPORT(UI_BASE_IME_ASH) MockIMEEngineHandler
-    : public ui::TextInputMethod {
+    : public TextInputMethod {
  public:
   MockIMEEngineHandler();
   ~MockIMEEngineHandler() override;
 
-  // ui::TextInputMethod:
+  // TextInputMethod:
   void Focus(const InputContext& input_context) override;
   void Blur() override;
   void OnTouch(ui::EventPointerType pointerType) override;
diff --git a/ui/base/ime/ash/mock_ime_input_context_handler.cc b/ui/base/ime/ash/mock_ime_input_context_handler.cc
index a4fc592..20b047b 100644
--- a/ui/base/ime/ash/mock_ime_input_context_handler.cc
+++ b/ui/base/ime/ash/mock_ime_input_context_handler.cc
@@ -11,7 +11,7 @@
 #include "ui/base/ime/input_method.h"
 #include "ui/gfx/range/range.h"
 
-namespace ui {
+namespace ash {
 
 MockIMEInputContextHandler::MockIMEInputContextHandler()
     : commit_text_call_count_(0),
@@ -22,13 +22,13 @@
 
 void MockIMEInputContextHandler::CommitText(
     const std::u16string& text,
-    TextInputClient::InsertTextCursorBehavior cursor_behavior) {
+    ui::TextInputClient::InsertTextCursorBehavior cursor_behavior) {
   ++commit_text_call_count_;
   last_commit_text_ = text;
 }
 
 void MockIMEInputContextHandler::UpdateCompositionText(
-    const CompositionText& text,
+    const ui::CompositionText& text,
     uint32_t cursor_pos,
     bool visible) {
   ++update_preedit_text_call_count_;
@@ -77,7 +77,7 @@
   std::move(callback).Run(autocorrect_enabled_);
 }
 
-absl::optional<GrammarFragment>
+absl::optional<ui::GrammarFragment>
 MockIMEInputContextHandler::GetGrammarFragmentAtCursor() {
   for (const auto& fragment : grammar_fragments_) {
     if (fragment.range.Contains(cursor_range_)) {
@@ -89,8 +89,8 @@
 
 bool MockIMEInputContextHandler::ClearGrammarFragments(
     const gfx::Range& range) {
-  std::vector<GrammarFragment> updated_fragments;
-  for (const GrammarFragment& fragment : grammar_fragments_) {
+  std::vector<ui::GrammarFragment> updated_fragments;
+  for (const ui::GrammarFragment& fragment : grammar_fragments_) {
     if (!range.Contains(fragment.range)) {
       updated_fragments.push_back(fragment);
     }
@@ -100,7 +100,7 @@
 }
 
 bool MockIMEInputContextHandler::AddGrammarFragments(
-    const std::vector<GrammarFragment>& fragments) {
+    const std::vector<ui::GrammarFragment>& fragments) {
   grammar_fragments_.insert(grammar_fragments_.end(), fragments.begin(),
                             fragments.end());
   return true;
@@ -131,11 +131,11 @@
   sent_key_events_.clear();
 }
 
-void MockIMEInputContextHandler::SendKeyEvent(KeyEvent* event) {
+void MockIMEInputContextHandler::SendKeyEvent(ui::KeyEvent* event) {
   sent_key_events_.emplace_back(*event);
 }
 
-InputMethod* MockIMEInputContextHandler::GetInputMethod() {
+ui::InputMethod* MockIMEInputContextHandler::GetInputMethod() {
   return nullptr;
 }
 
@@ -146,8 +146,9 @@
   if (!HasCompositionText())
     return;
 
-  CommitText(last_update_composition_arg_.composition_text.text,
-             TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
+  CommitText(
+      last_update_composition_arg_.composition_text.text,
+      ui::TextInputClient::InsertTextCursorBehavior::kMoveCursorAfterText);
   last_update_composition_arg_.composition_text.text = std::u16string();
 }
 
@@ -163,4 +164,4 @@
   return ukm::kInvalidSourceId;
 }
 
-}  // namespace ui
+}  // namespace ash
diff --git a/ui/base/ime/ash/mock_ime_input_context_handler.h b/ui/base/ime/ash/mock_ime_input_context_handler.h
index 27f7543..7375f0a 100644
--- a/ui/base/ime/ash/mock_ime_input_context_handler.h
+++ b/ui/base/ime/ash/mock_ime_input_context_handler.h
@@ -17,12 +17,15 @@
 
 namespace ui {
 class InputMethod;
+}
+
+namespace ash {
 
 class COMPONENT_EXPORT(UI_BASE_IME_ASH) MockIMEInputContextHandler
     : public TextInputTarget {
  public:
   struct UpdateCompositionTextArg {
-    CompositionText composition_text;
+    ui::CompositionText composition_text;
     gfx::Range selection;
     bool is_visible;
   };
@@ -37,8 +40,8 @@
 
   void CommitText(
       const std::u16string& text,
-      TextInputClient::InsertTextCursorBehavior cursor_behavior) override;
-  void UpdateCompositionText(const CompositionText& text,
+      ui::TextInputClient::InsertTextCursorBehavior cursor_behavior) override;
+  void UpdateCompositionText(const ui::CompositionText& text,
                              uint32_t cursor_pos,
                              bool visible) override;
 
@@ -56,20 +59,20 @@
   void SetAutocorrectRange(const gfx::Range& range,
                            SetAutocorrectRangeDoneCallback callback) override;
   bool ClearGrammarFragments(const gfx::Range& range) override;
-  absl::optional<GrammarFragment> GetGrammarFragmentAtCursor() override;
+  absl::optional<ui::GrammarFragment> GetGrammarFragmentAtCursor() override;
   bool AddGrammarFragments(
-      const std::vector<GrammarFragment>& fragments) override;
+      const std::vector<ui::GrammarFragment>& fragments) override;
   void DeleteSurroundingText(uint32_t num_char16s_before_cursor,
                              uint32_t num_char16s_after_cursor) override;
   SurroundingTextInfo GetSurroundingTextInfo() override;
-  void SendKeyEvent(KeyEvent* event) override;
-  InputMethod* GetInputMethod() override;
+  void SendKeyEvent(ui::KeyEvent* event) override;
+  ui::InputMethod* GetInputMethod() override;
   void ConfirmComposition(bool reset_engine) override;
   bool HasCompositionText() override;
   std::u16string GetCompositionText() override;
   ukm::SourceId GetClientSourceForMetrics() override;
 
-  std::vector<GrammarFragment> get_grammar_fragments() const {
+  std::vector<ui::GrammarFragment> get_grammar_fragments() const {
     return grammar_fragments_;
   }
 
@@ -119,9 +122,10 @@
   DeleteSurroundingTextArg last_delete_surrounding_text_arg_;
   gfx::Range autocorrect_range_;
   bool autocorrect_enabled_ = true;
-  std::vector<GrammarFragment> grammar_fragments_;
+  std::vector<ui::GrammarFragment> grammar_fragments_;
   gfx::Range cursor_range_;
 };
-}  // namespace ui
+
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_MOCK_IME_INPUT_CONTEXT_HANDLER_H_
diff --git a/ui/base/ime/ash/mock_input_method_manager.cc b/ui/base/ime/ash/mock_input_method_manager.cc
index 5c82cfd..4c508835 100644
--- a/ui/base/ime/ash/mock_input_method_manager.cc
+++ b/ui/base/ime/ash/mock_input_method_manager.cc
@@ -19,7 +19,7 @@
 void MockInputMethodManager::State::AddInputMethodExtension(
     const std::string& extension_id,
     const InputMethodDescriptors& descriptors,
-    ui::TextInputMethod* instance) {}
+    TextInputMethod* instance) {}
 
 void MockInputMethodManager::State::RemoveInputMethodExtension(
     const std::string& extension_id) {}
diff --git a/ui/base/ime/ash/mock_input_method_manager.h b/ui/base/ime/ash/mock_input_method_manager.h
index 315e791..232a4d76 100644
--- a/ui/base/ime/ash/mock_input_method_manager.h
+++ b/ui/base/ime/ash/mock_input_method_manager.h
@@ -32,7 +32,7 @@
     scoped_refptr<InputMethodManager::State> Clone() const override;
     void AddInputMethodExtension(const std::string& extension_id,
                                  const InputMethodDescriptors& descriptors,
-                                 ui::TextInputMethod* instance) override;
+                                 TextInputMethod* instance) override;
     void RemoveInputMethodExtension(const std::string& extension_id) override;
     void ChangeInputMethod(const std::string& input_method_id,
                            bool show_message) override;
diff --git a/ui/base/ime/ash/text_input_method.h b/ui/base/ime/ash/text_input_method.h
index 630c71ae..ce1ab51e 100644
--- a/ui/base/ime/ash/text_input_method.h
+++ b/ui/base/ime/ash/text_input_method.h
@@ -23,14 +23,7 @@
 class Rect;
 }  // namespace gfx
 
-namespace ash {
-namespace ime {
-struct AssistiveWindow;
-}  // namespace ime
-}  // namespace ash
-
 namespace ui {
-
 class VirtualKeyboardController;
 class KeyEvent;
 
@@ -42,6 +35,13 @@
   kHandledByAssistiveSuggester = 2,
 };
 }  // namespace ime
+}  // namespace ui
+
+namespace ash {
+
+namespace ime {
+struct AssistiveWindow;
+}
 
 enum class PersonalizationMode {
   // The input method MUST not use anything from the input field to update any
@@ -81,10 +81,10 @@
   // A type of each member is based on the html spec, but InputContext can be
   // used to specify about a non html text field like Omnibox.
   struct InputContext {
-    explicit InputContext(TextInputType type) : type(type) {}
+    explicit InputContext(ui::TextInputType type) : type(type) {}
 
-    TextInputType type = ui::TEXT_INPUT_TYPE_NONE;
-    TextInputMode mode = ui::TEXT_INPUT_MODE_DEFAULT;
+    ui::TextInputType type = ui::TEXT_INPUT_TYPE_NONE;
+    ui::TextInputMode mode = ui::TEXT_INPUT_MODE_DEFAULT;
     AutocompletionMode autocompletion_mode = AutocompletionMode::kUnspecified;
     AutocorrectionMode autocorrection_mode = AutocorrectionMode::kUnspecified;
     SpellcheckMode spellcheck_mode = SpellcheckMode::kUnspecified;
@@ -92,8 +92,8 @@
         AutocapitalizationMode::kUnspecified;
     bool has_been_password = false;
     // How this input field was focused.
-    TextInputClient::FocusReason focus_reason =
-        TextInputClient::FOCUS_REASON_NONE;
+    ui::TextInputClient::FocusReason focus_reason =
+        ui::TextInputClient::FOCUS_REASON_NONE;
     // Whether text entered in this field should be used to improve typing
     // suggestions for the user.
     PersonalizationMode personalization_mode = PersonalizationMode::kDisabled;
@@ -122,7 +122,7 @@
 
   // Called when the key event is received.
   // Actual implementation must call |callback| after key event handling.
-  virtual void ProcessKeyEvent(const KeyEvent& key_event,
+  virtual void ProcessKeyEvent(const ui::KeyEvent& key_event,
                                KeyEventDoneCallback callback) = 0;
 
   // Called when a new surrounding text is set. The |text| is surrounding text
@@ -157,13 +157,12 @@
       const ui::ime::AssistiveWindowButton& button) {}
 
   // Called when an input's assistive window state is updated.
-  virtual void AssistiveWindowChanged(
-      const ash::ime::AssistiveWindow& window) = 0;
+  virtual void AssistiveWindowChanged(const ime::AssistiveWindow& window) = 0;
 
   // Returns whether the IME is ready to accept key events for testing.
   virtual bool IsReadyForTesting() = 0;
 };
 
-}  // namespace ui
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_TEXT_INPUT_METHOD_H_
diff --git a/ui/base/ime/ash/text_input_target.h b/ui/base/ime/ash/text_input_target.h
index 1a7910e..2504441 100644
--- a/ui/base/ime/ash/text_input_target.h
+++ b/ui/base/ime/ash/text_input_target.h
@@ -16,7 +16,7 @@
 #include "ui/base/ime/text_input_client.h"
 #include "ui/events/event.h"
 
-namespace ui {
+namespace ash {
 
 struct SurroundingTextInfo {
   std::u16string surrounding_text;
@@ -35,7 +35,7 @@
   // Called when the engine commit a text.
   virtual void CommitText(
       const std::u16string& text,
-      TextInputClient::InsertTextCursorBehavior cursor_behavior) = 0;
+      ui::TextInputClient::InsertTextCursorBehavior cursor_behavior) = 0;
 
   // Called when the engine changes the composition range.
   // Returns true if the operation was successful.
@@ -59,13 +59,13 @@
   virtual void SetAutocorrectRange(
       const gfx::Range& range,
       SetAutocorrectRangeDoneCallback callback) = 0;
-  virtual absl::optional<GrammarFragment> GetGrammarFragmentAtCursor() = 0;
+  virtual absl::optional<ui::GrammarFragment> GetGrammarFragmentAtCursor() = 0;
   virtual bool ClearGrammarFragments(const gfx::Range& range) = 0;
   virtual bool AddGrammarFragments(
-      const std::vector<GrammarFragment>& fragements) = 0;
+      const std::vector<ui::GrammarFragment>& fragements) = 0;
 
   // Called when the engine updates composition text.
-  virtual void UpdateCompositionText(const CompositionText& text,
+  virtual void UpdateCompositionText(const ui::CompositionText& text,
                                      uint32_t cursor_pos,
                                      bool visible) = 0;
 
@@ -76,15 +76,15 @@
   // Called from the extension API.
   // WARNING: This could return a stale cache that doesn't reflect reality, due
   // to async-ness between browser-process IMF and render-process
-  // TextInputClient.
+  // `ui::TextInputClient`.
   // TODO(crbug/1194424): Ensure this always returns accurate result.
   virtual SurroundingTextInfo GetSurroundingTextInfo() = 0;
 
   // Called when the engine sends a key event.
-  virtual void SendKeyEvent(KeyEvent* event) = 0;
+  virtual void SendKeyEvent(ui::KeyEvent* event) = 0;
 
   // Gets the input method pointer.
-  virtual InputMethod* GetInputMethod() = 0;
+  virtual ui::InputMethod* GetInputMethod() = 0;
 
   // Commits the current composition and keeps the selection unchanged.
   // Set |reset_engine| to false if this was triggered from the extension.
@@ -99,6 +99,6 @@
   virtual ukm::SourceId GetClientSourceForMetrics() = 0;
 };
 
-}  // namespace ui
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_TEXT_INPUT_TARGET_H_
diff --git a/ui/base/ime/ash/typing_session_manager.cc b/ui/base/ime/ash/typing_session_manager.cc
index 797307c..ee92779f 100644
--- a/ui/base/ime/ash/typing_session_manager.cc
+++ b/ui/base/ime/ash/typing_session_manager.cc
@@ -4,9 +4,6 @@
 
 #include "ui/base/ime/ash/typing_session_manager.h"
 
-#include "base/metrics/histogram_functions.h"
-#include "base/time/clock.h"
-
 #include <stddef.h>
 
 #include <algorithm>
@@ -14,7 +11,10 @@
 #include <set>
 #include <utility>
 
-namespace ui {
+#include "base/metrics/histogram_functions.h"
+#include "base/time/clock.h"
+
+namespace ash {
 
 const uint64_t INACTIVITY_TIMEOUT_FOR_SESSION_IN_MS = 3000;
 const uint64_t MIN_CHARACTERS_COMMITTED = 10;
@@ -83,4 +83,4 @@
   last_user_action_time_ = clock_->Now();
 }
 
-}  // namespace ui
+}  // namespace ash
diff --git a/ui/base/ime/ash/typing_session_manager.h b/ui/base/ime/ash/typing_session_manager.h
index 9517e77..87f7770 100644
--- a/ui/base/ime/ash/typing_session_manager.h
+++ b/ui/base/ime/ash/typing_session_manager.h
@@ -10,7 +10,7 @@
 #include "base/time/default_clock.h"
 #include "base/time/time.h"
 
-namespace ui {
+namespace ash {
 
 class TypingSessionManager {
  public:
@@ -43,6 +43,6 @@
   bool is_active_;
 };
 
-}  // namespace ui
+}  // namespace ash
 
 #endif  // UI_BASE_IME_ASH_TYPING_SESSION_MANAGER_H_
diff --git a/ui/base/ime/ash/typing_session_manager_unittest.cc b/ui/base/ime/ash/typing_session_manager_unittest.cc
index 1d746ee..ad3cf14d 100644
--- a/ui/base/ime/ash/typing_session_manager_unittest.cc
+++ b/ui/base/ime/ash/typing_session_manager_unittest.cc
@@ -27,7 +27,7 @@
   TypingSessionManagerTest() : typing_session_manager_(&test_clock_) {}
 
   base::SimpleTestClock test_clock_;
-  ui::TypingSessionManager typing_session_manager_;
+  TypingSessionManager typing_session_manager_;
 };
 
 TEST_F(TypingSessionManagerTest, RecordMetricsForSimpleTypingSession) {
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
index 74547275..2da8f58a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
@@ -179,7 +179,7 @@
 <translation id="2470939964922472929">잘못된 PIN을 너무 여러 번 입력했습니다. 새 PIN을 설정하려면 이동통신사에서 제공한 8자리 PUK(Personal Unblocking Key)를 입력하세요.</translation>
 <translation id="2500392669976258912">구자라트어(표음)</translation>
 <translation id="2515586267016047495">Alt</translation>
-<translation id="2517472476991765520">검색</translation>
+<translation id="2517472476991765520">스캔</translation>
 <translation id="252641322760726369">실행기에서 파일에 빠르게 액세스하려면 파일을 길게 터치하고 <ph name="ICON" /> 아이콘을 탭한 다음 "<ph name="PIN_COMMAND" />"을 선택합니다.</translation>
 <translation id="2534460670861217804">보안 HTTP 프록시</translation>
 <translation id="2541377937973966830">이 폴더의 콘텐츠는 읽기 전용입니다. 일부 활동이 지원되지 않습니다.</translation>
diff --git a/ui/ozone/platform/drm/ozone_platform_drm.cc b/ui/ozone/platform/drm/ozone_platform_drm.cc
index 7e56a53..0def61f 100644
--- a/ui/ozone/platform/drm/ozone_platform_drm.cc
+++ b/ui/ozone/platform/drm/ozone_platform_drm.cc
@@ -176,7 +176,7 @@
       ImeKeyEventDispatcher* ime_key_event_dispatcher,
       gfx::AcceleratedWidget) override {
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-    return std::make_unique<InputMethodAsh>(ime_key_event_dispatcher);
+    return std::make_unique<ash::InputMethodAsh>(ime_key_event_dispatcher);
 #else
     return std::make_unique<InputMethodMinimal>(ime_key_event_dispatcher);
 #endif
diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
index 7e93d25..c51bf1fe 100644
--- a/ui/ozone/platform/x11/ozone_platform_x11.cc
+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
@@ -133,7 +133,7 @@
       ImeKeyEventDispatcher* ime_key_event_dispatcher,
       gfx::AcceleratedWidget) override {
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-    return std::make_unique<InputMethodAsh>(ime_key_event_dispatcher);
+    return std::make_unique<ash::InputMethodAsh>(ime_key_event_dispatcher);
 #else
     return std::make_unique<InputMethodAuraLinux>(ime_key_event_dispatcher);
 #endif